|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Wladimir Mutel 2:5020/400 09 Jul 2006 11:38:28 To : All Subject : iptables & dynamic interfaces -------------------------------------------------------------------------------- Привет, Иногда сталкиваюсь со странной проблемой. Если создать правила iptables с указанием в них интерфейса, который ещё не существует, то после появления этого интерфейса правила могут произвольным образом не работать. К примеру, создаём *nat :PREROUTING ACCEPT :POSTROUTING ACCEPT :OUTPUT ACCEPT -A POSTROUTING -o ippp+ -j MASQUERADE COMMIT *filter :INPUT DROP :FORWARD DROP :OUTPUT DROP -A FORWARD -i eth0 -o ippp+ -p tcp -m multiport --dports \ 22,53,110,119,993,995 -m state --state NEW -j ACCEPT -A FORWARD -i eth0 -o ippp+ -p udp -m udp --dport 53 -j ACCEPT -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -j LOG --log-prefix "IPT FORWARD packet DROP: " COMMIT И после поднятия интерфейса ippp0 (ISDN) оказывается, что маскарад вовсе не работает, пока не перезагрузим все правила iptables (iptables-save | iptables-restore, но думаю, хватило бы пересоздания только одного маскарадного правила). Или другой простой пример - *filter :INPUT DROP :FORWARD DROP :OUTPUT DROP -A INPUT -s 192.168.x.0/255.255.255.0 -i eth0 -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -i dvb0_0 -p udp -j ACCEPT -A INPUT -j LOG --log-prefix "IPT INPUT packet DROP: " COMMIT И после создания dvb0_0 (szap, dvbnet, ifconfig) может оказаться, что пакетики идут на интерфейс по показаниям tcpdumpa, но не идут дальше на tcp/ip-стек и на процесс, открывший сокет (globax). Также недоходящие пакетики не попадают и на последнее правило LOG. Всё это тоже длится до тех пор, пока правила не перезагрузишь в их неизменном виде (пересоздавать только одно правило про dvb0_0 не пробовал). В других, менее экзотических системах, где интерфейсы только eth+ и ppp+ (serial/modem/pppoe/pptp), такой похабщины не наблюдается. Может быть, Harald Welte и разработчики ядра предусмотрели только их поведение (появление, исчезновение, смена IP-адреса), но не других ? А может быть, дело в политике DROP? (на других системах она ACCEPT, с явным LOG/DROP в конце каждой цепочки). В общем, кто глубоко копал, поделитесь своими находками. Заранее благодарен. --- ifmail v.2.15dev5.3 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/6577217b43ad.html, оценка из 5, голосов 10
|