Eugene Berdnikov пишет:
On Fri, Jun 06, 2008 at 07:33:54PM +0400, Artem Chuprina wrote:Eugene Berdnikov -> debian-russian@lists.debian.org @ Fri, 6 Jun 2008 18:35:59 +0400: EB> ... EB> iptables -A fw:int <какие-то условия> -j fw::limit EB> iptables -A fw:dmz <какие-то условия> -j fw::limit EB> iptables -A fw:ext <какие-то условия> -j fw::limit EB> ... EB> iptables -A fw::limit <какое-то групповое ограничение лимитов> EB> ... А это нам не свернет все лимиты в _одну_ группу? Насколько я понимаю принцип работы линуксового файрвола, произойдет именно это - лимит будет один на все пакеты, прошедшие по этой цепочке. А мне надо _несколько одинаковых_. Местами даже не одинаковых - параметры limit для разных пакетов различны.А, в таком случае скриптом удобней, конечно.
Да во многих случаях удобнее. Я честно говоря не совсем понял про: iptables -A FORWARD -i int -j fw:int т.е у Вас интерфейсы переименованы? Я честно говоря подобным не пользуюсь... и точно не знаю можно-ли переименовать vlanы. Скрипт на ferm мне удобен тем что просто копируется с другой машины, потом правятся переменные, запускается ferm и получается скрипт на выходе. В принципе там все так-же как и в iptables но есть возможность задавать переменные как по отдельности так и списком, например есть несколько списков внутренних хостов с разным доступом. Кому-то одни сервисы кому-то другие. Так вот удобно создать список и оперировать им для перечисления всех возможных вариантов. Типа: chain CASHIERS { def $ALLOWED = ( www.xxx.ru www.yyy.ru www.zzz.ru ); daddr $ALLOWED goto COUNT-ULOG; saddr $ALLOWED goto COUNT-ULOG; #Разрешим ICQ proto (tcp udp) dport aol goto COUNT-ULOG; proto (tcp udp) sport aol goto COUNT-ULOG; #Все остальное запрещаем DROP; } #Бухгалтерский трафик обработаем в CASHIERS saddr $CASHIERS goto CASHIERS; daddr $CASHIERS goto CASHIERS; ----------------------- Когда надо добавить еще что-то для доступа через год-другой, не вспоминаем мучительно логику работыфайрволла на данном сервере а тупо добавляем еще один адрес в список и он добавится везде где фигурирует этот список.
Ну и сами правила нагляднее, типа: table filter { chain INPUT { policy DROP; #Отправим пакеты входящие на компьютер в ULOG ULOG; # connection tracking mod state state INVALID DROP; mod state state (ESTABLISHED RELATED) ACCEPT; # allow local packets interface lo ACCEPT; # allow local interfaces interface $LANIF ACCEPT; # respond to icmp proto icmp ACCEPT; # allow BIND connections proto (tcp udp) dport domain ACCEPT; # allow IPsec proto udp dport 500 ACCEPT; proto (esp ah) ACCEPT; # allow SSH connections proto tcp dport ssh ACCEPT; # allow pptp connections proto (tcp udp) dport 1723 ACCEPT; proto 47 ACCEPT; # allow dxcluster connections proto (tcp udp) dport 8000 ACCEPT; } Удобно и наглядно во многих случаях, но конечно как было уже замечено именно ferm умеет только полностью перегружать правила :( Олег.