Re: Действие DROP в nat/POSTROUTING и nat/PREROUTING
Alexander Tyurin -> debian-russian @ Tue, 29 Jul 2008 01:13:13 +0400:
AT> Приветствую!
AT> Есть хост 192,168,1,20. Все последующие правила прописаны именно на этом
AT> хосте.
AT> При правиле
AT> iptables -A INPUT -p tcp -d 192.168.1.20 -j DROP
AT> доступа к сетевым ресурсам нет. Логично.
AT> При
AT> iptables -A OUTPUT -p tcp -s 192.168.1.20 -j DROP
AT> нет доступа к ресурсм сети. Логично.
AT> При
AT> iptables -t nat -A POSTROUTING -p tcp -s 192.168.1.20 -j DROP
AT> доступа нет. Вот тут уже интересно т.к. не понятно почему.
AT> При iptables -t nat -A PREROUTING -p tcp -d 192.168.1.20 -j DROP
AT> а вот это правило не понятно почему не действует. Никаких проблем с коннектом
AT> у хоста не возникает. Кто-нить может объяснить такую разницу в поведении 2х
AT> последних правил?
Правило в цепочке nat срабатывает только на первый пакет "соединения" (в
кавычках, потому что имеется в виду соединение в понимании conntrack, а
не в строгом; т.е. ответ на DNS-запрос будет считаться вторым пакетом
соединения). Просторечное "доступ к сетевым ресурсам" переводится как
"первый пакет - исходящий". Через цепочку POSTROUTING он в силу этого
пройдет, а через цепочку PREROUTING - нет.
Интересно, почему до меня этого никто не сказал?.. Впрочем, я и сам
как-то не прямо сразу сообразил.
Вообще же дропать пакеты в цепочках nat и mangle без крайней
необходимости не рекомендуется. Но для экспериментов и осознания
принципов работы, конечно, можно и полезно.
А самое лучшее изложение, которое я видел -
http://iptables-tutorial.frozentux.net/
Заняться, что ли, переводом?..
--
Artem Chuprina
RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru
Don't worry about what anybody else is going to do. The best way to
predict the future is to invent it.
-- Alan Kay
Reply to: