LINUX.ORG.RU
ФорумAdmin

вопрос по iptables

 , ,


0

2

есть шлюз с linux 3.3.5, транзитный трафик режется (-P FORWARD DROP). чтобы открыть доступ к какому либо хосту или ресурсу, делаю, например так:

iptables -A FORWARD -s 192.168.0.0/16 -d 213.243.98.114/32 -j ACCEPT
iptables -A FORWARD -s 213.243.98.114/32 -d 192.168.0.0/16 -j ACCEPT
т.е. разрешаю трафик с локальной сети к конкретному хосту, и с конкретного хоста в локальную сеть.
вопрос наверное странный, но как то же самое сделать одним правилом, а не двумя?

с таким условием никак
а если добавить правило
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

то разрешать можно будет одной коммандой
iptables -A FORWARD -m state --state NEW -s 192.168.0.0/16 -d 213.243.98.114/32 -j ACCEPT

ae1234 ★★ ()
Ответ на: комментарий от dorsett_case

Если я правильно понял, имелось в виду, что изначально дропаются все пакеты кроме тех, что принадлежат установленным сессиям. До того, как ты разрешишь какому-нибудь узлу устанавливать сессию, трафик с него и к нему ходить не будет. Как только ты разрешаешь хосту утсанавливать сессию, разрешенным становится весь трафик, принадлежащий этой сессии.

winlook38 ★★ ()
Ответ на: комментарий от dorsett_case

это правило аналогично тем двум? трафик с 213.243.98.114/32 всё равно же будет дропаться

да ты прав только в том случае если хост 213.243.98.114 будет инициировать сетевое соединение с каким нибудь хостом из под сети 192.168.0.0/16 - у него это не получится.

Если же сетевое соединение будет инициировано из любого хоста из под сети 192.168.0.0/16 к хосту 213.243.98.114, то тогда обмен пакетами будет нормально проходить как от хоста из под сети 192.168.0.0/16 к хосту 213.243.98.114, так и от хоста 213.243.98.114 к хосту из под сети 192.168.0.0/16.

v4567 ★★ ()
Ответ на: комментарий от dorsett_case

-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
вот это надо в одином экземпляре

а
iptables -A FORWARD -m state --state NEW -s 192.168.0.0/16 -d 213.243.98.114/32 -j ACCEPT
на каждого нового

дропаться небудет - эт называеться STATE-FULL фаервол - ядро помнит что такието установили связь с темито в инете - и уже по первому правилу пропускает туда и оттуда траффик - то что записано в этом соединении

а у тебя был STATE-LESS фервол - без надобности запоминания сессий

ae1234 ★★ ()
Ответ на: комментарий от ae1234

-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

только я бы сделал не -A FORWARD, а -I FORWARD 1 так проще :)

Marchael ()
Ответ на: комментарий от ae1234

Так же правило

-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

можно поменять на

-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED,DNAT -j ACCEPT
если планируется «проброс» портов на хосты в внутренней сети.

BOOBLIK ★★ ()
Ответ на: комментарий от dorsett_case

разумееться пускает - но с NEW красивше и идеологически правильно :)
я его приписал чтоб ты попробовал разобраться - для чего оно - и зачем было добавлено - логику ее

ae1234 ★★ ()
Ответ на: комментарий от dorsett_case

у тебя NAT, поэтому не критично. А вот для белых IP-адресов такое не очень канает, ибо Netfilter НЕ БУДЕТ пускать для них трафик, если кто-то снаружи на них постучиться(например на порт 80)...

Pinkbyte ★★★★★ ()

разобрался со всем, кроме IP-телефонии.
у шлюза два IP-адреса: 192.168.100.1/24 и 192.168.40.1/21
192.168.100.0/24 — локальная сеть предприятия, 192.168.40.0/21 — сетка для IP-телефонии, cервер 192.168.40.2, остальное адресное пространство для IP-телефонов (так сделал для того, чтобы была возможность фильтровать трафик между этими сетями).
сервер IP-телефонии, 192.168.40.2/21, географически расположен в серверной нашего предприятия, но предоставляет и администрирует его другая компания, поэтому на него доступа никаго нет.
всё это внедрение IP-телефонии у нас только начинается, IP-телефоны в процессе покупки, пользователи звонят с рабочих компов использую eyeBeam.
делаю так:

iptables -t filter -4 -A FORWARD -p UDP -m state --state NEW -s 192.168.100.0/24 -d 192.168.40.2/32 -m multiport --dport 5060,14570 -j ACCEPT
не работает. а вот так:
iptables -t filter -4 -A FORWARD -p UDP -m state --state NEW -s 192.168.100.0/24 -d 192.168.40.2/32 -j ACCEPT
работает, но весь трафик разрешать бы не хотелось, только порты, необходимые для работы IP-телефонии

dorsett_case ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.