FireawallD и маршрутизация между сетями только по разрешенным портам
Модераторы: SLEDopit, Модераторы разделов
-
- Сообщения: 1116
- ОС: Rosa Fresh, Debian, RELS
FireawallD и маршрутизация между сетями только по разрешенным портам
Добрый день.
Есть две сети.
10.10.24.0/24 - сервера
192.168.24.0/24 - клиенты (ПК, смартфоны)
Есть между ними шлюз с адресом 10.10.24.1 и 192.168.24.1, адаптером eth0 и eth1 в соответствующих сетях. Можно считать, что он прописан, как шлюз по-умолчанию.
В firewall были созданы зоны server и clients, для которых были назначены source и interface соответствующих сетей. Для зоны servers было произведено сужение доступных адресов путем указания конкретных конечных адресов
В сети 10.10.24.0/24 есть сервера:
10.10.24.2 - DNS
10.10.24.5 - NTP
10.10.24.12 - Proxy
И много других.
Задача. Разрешить маршрутизацию из сети 192.168.24.0/24 до указанных хостов и указанных (!) портов
10.10.24.2 - 53
10.10.24.5 - 123
10.10.24.12 - 3128
запретив доступ по остальным портам на уровне шлюза.
Проброс портов мне не нужен.
Попытке врубить маскарадинг для зоны servers, клиенты могут получить доступ ко всем портам хостов, разрешенных в зоне.
Если я добавляю в зоне clients правила rich-rules с указанием хостов назначения и указываю действие маскарадинг, то клиенты могут получить доступ ко всем портам на источнике назначения.
На ум пришла мысль сделать так.
1. Включить маскарадинг для зоны server.
2. Рич-рулами дроппить все запросы в эту зону.
3. Разрешить нужные порты на нужные хосты.
Это правильное решение, или есть тиной путь?
Есть две сети.
10.10.24.0/24 - сервера
192.168.24.0/24 - клиенты (ПК, смартфоны)
Есть между ними шлюз с адресом 10.10.24.1 и 192.168.24.1, адаптером eth0 и eth1 в соответствующих сетях. Можно считать, что он прописан, как шлюз по-умолчанию.
В firewall были созданы зоны server и clients, для которых были назначены source и interface соответствующих сетей. Для зоны servers было произведено сужение доступных адресов путем указания конкретных конечных адресов
В сети 10.10.24.0/24 есть сервера:
10.10.24.2 - DNS
10.10.24.5 - NTP
10.10.24.12 - Proxy
И много других.
Задача. Разрешить маршрутизацию из сети 192.168.24.0/24 до указанных хостов и указанных (!) портов
10.10.24.2 - 53
10.10.24.5 - 123
10.10.24.12 - 3128
запретив доступ по остальным портам на уровне шлюза.
Проброс портов мне не нужен.
Попытке врубить маскарадинг для зоны servers, клиенты могут получить доступ ко всем портам хостов, разрешенных в зоне.
Если я добавляю в зоне clients правила rich-rules с указанием хостов назначения и указываю действие маскарадинг, то клиенты могут получить доступ ко всем портам на источнике назначения.
На ум пришла мысль сделать так.
1. Включить маскарадинг для зоны server.
2. Рич-рулами дроппить все запросы в эту зону.
3. Разрешить нужные порты на нужные хосты.
Это правильное решение, или есть тиной путь?
Понимание - это меч с тремя кромками: ваша правда, наша правда и Истина.
Жизнь - игра: сюжет задуман фигова, но графика хорошая...
Лучший игровой сервер - Земля: карта всего одна, но на 7 миллиардов игроков; читеров нет, админ терпеливый, но если уж забанит...
Жизнь - игра: сюжет задуман фигова, но графика хорошая...
Лучший игровой сервер - Земля: карта всего одна, но на 7 миллиардов игроков; читеров нет, админ терпеливый, но если уж забанит...
-
- Модератор
- Сообщения: 21033
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: FireawallD и маршрутизация между сетями только по разрешенным портам
Взаимоисключающие параграфы, однако. Не нужен Вам маскарадинг.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 1116
- ОС: Rosa Fresh, Debian, RELS
Re: FireawallD и маршрутизация между сетями только по разрешенным портам
Может я не правильно формулирую.
В моем понимание проброс портов это: при обращении к хосту 192.168.24.1 на порт 123, скажем, файервол втихую отправит запрос на хост 10.10.24.5 на порт 123, а потом возвращает ответ от своего адреса. То есть клиент ничего не знает о хосте 10.10.24.5 и думает, что ему отвечает 192.168.24.1.
Мне же нужно, чтобы клиент отправил запрос на адрес 10.10.24.5 (маршрут к которому идет через шлюз 192.168.24.1) на порт 123, и ответ он получил так же от 10.10.24.5
Понимание - это меч с тремя кромками: ваша правда, наша правда и Истина.
Жизнь - игра: сюжет задуман фигова, но графика хорошая...
Лучший игровой сервер - Земля: карта всего одна, но на 7 миллиардов игроков; читеров нет, админ терпеливый, но если уж забанит...
Жизнь - игра: сюжет задуман фигова, но графика хорошая...
Лучший игровой сервер - Земля: карта всего одна, но на 7 миллиардов игроков; читеров нет, админ терпеливый, но если уж забанит...
-
- Модератор
- Сообщения: 21033
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: FireawallD и маршрутизация между сетями только по разрешенным портам
Это я, похоже, неправильно формулирую. Маршрутизация и маскарадинг — разные вещи. Маскарадинг Вам не нужен.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 1116
- ОС: Rosa Fresh, Debian, RELS
Re: FireawallD и маршрутизация между сетями только по разрешенным портам
Тогда я не понимаю.Bizdelnick писал: ↑12.08.2021 21:11Это я, похоже, неправильно формулирую. Маршрутизация и маскарадинг — разные вещи. Маскарадинг Вам не нужен.
Делаю на шлюзе:
Код: Выделить всё
firewall-cmd --zone=servers --add-asquarading --permanent
firewall-cmd --reload
Код: Выделить всё
traceroute 10.10.24.5
traceroute to 10.10.24.5 (10.10.24.5), 30 hops max, 60 bytes packets
1 _gateway (192.168.24.1) 0.350 ms 0.320 ms 0.295 ms
2 10.10.24.5 (10.10.24.5) 3/509 ms 3.503 ms 3.489 ms
Делаю на шлюзе:
Код: Выделить всё
firewall-cmd --zone=servers --remove-asquarading --permanent
firewall-cmd --reload
Код: Выделить всё
traceroute 10.10.24.5
traceroute to 10.10.24.5 (10.10.24.5), 30 hops max, 60 bytes packets
1 _gateway (192.168.24.1) 0.392 ms 0.373 ms 0.358 ms
2 _gateway (192.168.24.1) 0.327 ms 0.303 ms 0.285 ms
При попытке прописать:
Код: Выделить всё
# firewall-cmd --permanent --zone=samba --add-rich-rule='rule family=ipv4 source address=192.168.24.0/24 destination address=10.10.24.5 port port=123 protocol=udp masquerade'
Код: Выделить всё
Error: INVALID_RULE: more than one element. There cannot be both 'masquerade' and 'port port="123" protocol="udp"' in one rule.
Понимание - это меч с тремя кромками: ваша правда, наша правда и Истина.
Жизнь - игра: сюжет задуман фигова, но графика хорошая...
Лучший игровой сервер - Земля: карта всего одна, но на 7 миллиардов игроков; читеров нет, админ терпеливый, но если уж забанит...
Жизнь - игра: сюжет задуман фигова, но графика хорошая...
Лучший игровой сервер - Земля: карта всего одна, но на 7 миллиардов игроков; читеров нет, админ терпеливый, но если уж забанит...
-
- Модератор
- Сообщения: 21033
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: FireawallD и маршрутизация между сетями только по разрешенным портам
Вам нужно разрешить форвардинг (--add-forward для обеих зон, если я правильно понимаю).
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 2079
Re: FireawallD и маршрутизация между сетями только по разрешенным портам
А дистрибутив-то какой?
/etc/hosts.* настроить на серваке?
/etc/hosts.* настроить на серваке?
-
- Сообщения: 1116
- ОС: Rosa Fresh, Debian, RELS
Re: FireawallD и маршрутизация между сетями только по разрешенным портам
Спасибо. Попробую.Bizdelnick писал: ↑12.08.2021 22:23Вам нужно разрешить форвардинг (--add-forward для обеих зон, если я правильно понимаю).
Дистрибутив, будем считать, СentOS 7.3
э-э... А как мне настройки /etc/hosts.* помогут в маршрутизации трафик между сетями?
Понимание - это меч с тремя кромками: ваша правда, наша правда и Истина.
Жизнь - игра: сюжет задуман фигова, но графика хорошая...
Лучший игровой сервер - Земля: карта всего одна, но на 7 миллиардов игроков; читеров нет, админ терпеливый, но если уж забанит...
Жизнь - игра: сюжет задуман фигова, но графика хорошая...
Лучший игровой сервер - Земля: карта всего одна, но на 7 миллиардов игроков; читеров нет, админ терпеливый, но если уж забанит...
-
- Сообщения: 2079
Re: FireawallD и маршрутизация между сетями только по разрешенным портам
В маршрутизации никак.
Доступ к портам/сервисам можно тут разрешить/запретить.
Доступ к портам/сервисам можно тут разрешить/запретить.
-
- Сообщения: 1116
- ОС: Rosa Fresh, Debian, RELS
Re: FireawallD и маршрутизация между сетями только по разрешенным портам
Моя цель именно маршрутизация, но не всего трафика, а только разрешенного.
Фактически мне нужен аналог этого правила
Код: Выделить всё
iptables -A FORWARD -s 192.268.24.0/24 -d 10.10.24.5 -p UDP -m multiport --dports 123 -j ACCEPT
iptables -A FORWARD -s 10.10.24.5 -d 192.268.24.0/24 -p UDP --sport 123 -m state --state ESTABLISHED -j ACCEPT
Понимание - это меч с тремя кромками: ваша правда, наша правда и Истина.
Жизнь - игра: сюжет задуман фигова, но графика хорошая...
Лучший игровой сервер - Земля: карта всего одна, но на 7 миллиардов игроков; читеров нет, админ терпеливый, но если уж забанит...
Жизнь - игра: сюжет задуман фигова, но графика хорошая...
Лучший игровой сервер - Земля: карта всего одна, но на 7 миллиардов игроков; читеров нет, админ терпеливый, но если уж забанит...
-
- Сообщения: 2079
Re: FireawallD и маршрутизация между сетями только по разрешенным портам
Понятно.
Я, возможно, упускаю какие-то нюансы, но на мой взгляд маршрутизация и сервисное обслуживание это задачи разного уровня.
Достаточно иметь маршрут до сервера, а кого и как он будет обслуживать настраивать на самом сервере. Это просто и понятно.
И я не знаю, есть ли на CentOS /etc/hosts.*
Updated
На всякий случай напишу сюда:
Есть примочка к iptables - ipset. В set'ы можно прописывать сети, сегменты сетей\диапазоны адресов, отдельные хосты. Соответственно, отсекать ненужное.
У меня в iptables на сервачке есть правила типа:
-A INPUT -i eth1 -p udp -m set --match-set dnsnet src -m udp --dport 53 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
Хосты из dnsnet достучатся до сервиса, а остальным ДРОП.
Я, возможно, упускаю какие-то нюансы, но на мой взгляд маршрутизация и сервисное обслуживание это задачи разного уровня.
Достаточно иметь маршрут до сервера, а кого и как он будет обслуживать настраивать на самом сервере. Это просто и понятно.
И я не знаю, есть ли на CentOS /etc/hosts.*
Updated
На всякий случай напишу сюда:
Есть примочка к iptables - ipset. В set'ы можно прописывать сети, сегменты сетей\диапазоны адресов, отдельные хосты. Соответственно, отсекать ненужное.
У меня в iptables на сервачке есть правила типа:
-A INPUT -i eth1 -p udp -m set --match-set dnsnet src -m udp --dport 53 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
Хосты из dnsnet достучатся до сервиса, а остальным ДРОП.
-
- Сообщения: 1116
- ОС: Rosa Fresh, Debian, RELS
Re: FireawallD и маршрутизация между сетями только по разрешенным портам
Это вопрос безопасности.
Лишний трафик вообще не должен выходить за пределы сети. Именно поэтому на аппаратных маршрутизаторах определяется не только доступ к узлу, но и доступные порты. Особенно, когда сети управляются разными командами людей.
Гарантий, что на укзанном хосте не будет поднят скажем псевдо-smb сервер, для воровства учетных данных, нет.
С IPTables проблем нет. У меня куча готовых решений есть для настройки правил маршрутизации и доступа. ОТ Bash-скриптов до программ (былокода) на c++ с хранением параметров в СУБД.chitatel писал: ↑13.08.2021 07:13Есть примочка к iptables - ipset. В set'ы можно прописывать сети, сегменты сетей\диапазоны адресов, отдельные хосты. Соответственно, отсекать ненужное.
У меня в iptables на сервачке есть правила типа:
-A INPUT -i eth1 -p udp -m set --match-set dnsnet src -m udp --dport 53 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
Хосты из dnsnet достучатся до сервиса, а остальным ДРОП.
Понимание - это меч с тремя кромками: ваша правда, наша правда и Истина.
Жизнь - игра: сюжет задуман фигова, но графика хорошая...
Лучший игровой сервер - Земля: карта всего одна, но на 7 миллиардов игроков; читеров нет, админ терпеливый, но если уж забанит...
Жизнь - игра: сюжет задуман фигова, но графика хорошая...
Лучший игровой сервер - Земля: карта всего одна, но на 7 миллиардов игроков; читеров нет, админ терпеливый, но если уж забанит...
Спасибо сказали:
-
- Модератор
- Сообщения: 21033
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: FireawallD и маршрутизация между сетями только по разрешенным портам
Кстати, вообще форвардинг (/proc/sys/net/ipv4/ip_forward) включён? Как я понял из документации, firewalld сам его включает вместе с маскарадингом. Возможно, надо включить в sysctl.conf на постоянку.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 1116
- ОС: Rosa Fresh, Debian, RELS
Re: FireawallD и маршрутизация между сетями только по разрешенным портам
Настроил, чтобы он был включен по умолчанию.Bizdelnick писал: ↑13.08.2021 09:16Кстати, вообще форвардинг (/proc/sys/net/ipv4/ip_forward) включён? Как я понял из документации, firewalld сам его включает вместе с маскарадингом. Возможно, надо включить в sysctl.conf на постоянку.
Понимание - это меч с тремя кромками: ваша правда, наша правда и Истина.
Жизнь - игра: сюжет задуман фигова, но графика хорошая...
Лучший игровой сервер - Земля: карта всего одна, но на 7 миллиардов игроков; читеров нет, админ терпеливый, но если уж забанит...
Жизнь - игра: сюжет задуман фигова, но графика хорошая...
Лучший игровой сервер - Земля: карта всего одна, но на 7 миллиардов игроков; читеров нет, админ терпеливый, но если уж забанит...