[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Генератор правил файрвола



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 умеет только
полностью перегружать правила :(

Олег.



Reply to: