The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Простое управление сложным фаерволом (netfilter/iptables) (iptables firewall linux)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: iptables, firewall, linux,  (найти похожие документы)
From: SG <sg@sg.tomsk.ru.> Newsgroups: email Date: Mon, 1 May 2006 18:21:07 +0000 (UTC) Subject: Простое управление сложным фаерволом (netfilter/iptables) Наверное каждый системный администратор хотя бы раз сталкивался с громоздкими настройками фаервола. Не несколько строчек для защиты своего персонального компьютера или сервера приложений, а сотни строк в каждой таблице на маршрутизаторе сети. Кто сталкивался - тот знает, как "удобно" править и как "легко" окинуть взором структуру этого нагромождения правил в разных таблицах и цепочках. Кроме этого довольно часто встречается ситуация, когда нужно добавить созданные скриптами правила в netfilter. Обычно, в таких ситуациях получаются размазанные по различным скриптам, хранящихся в невообразимых местах (у кого какая фантазия :) наборы правил. И что же делать с этим ужасом, когда требуется внести какие-то изменения и применить их? Каждый решает эту проблему по-своему, но обычно каждое изменение уникально в том смысле, что администратор забудет запустить вон тот скрипт или не в том порядке. И неизвестно, что будет после ребута... А если вдруг этот администратор куда-то делся и его заменяет другой... Какая до боли знакомая ситуация? :) В большинстве основанных на rpm дистрибутивах для пакета iptables существует набор стартовых скриптов и конфигов типа: /etc/init.d/iptables /etc/sysconfig/iptables-ipv4.d/* /etc/sysconfig/iptables* В других дистрибутивах тоже должна быть какая-то точка отсчета. Но проблема заключается в том, что правила netfilter загружаются с помощью утилиты iptables-restore, которая крайне примитивная и например не понимает присоединение дополнительных файлов правил с помощью директивы include. Я решил все эти проблемы простым способом: организовал дерево каталогов и файлов с правилами, а собирается все это в стандартный конфиг, который используется стартовым скриптом /etc/init.d/iptables. В результате получилась удобная структура конфигов, которую можно легко понять, в которую можно быстро вносить изменения и в которую могут добавляться правила, сгенеренные какими-то скриптами. Вот пример этого: /etc/sysconfig/iptables-ipv4.d/ rules.create - скрипт для создания конфига start - стандартный конфиг, который создается этим скриптом и используется стандартным стартовым скриптом (/etc/init.d/iptables) /etc/sysconfig/iptables-ipv4.d/filter/ begin end forward input output /etc/sysconfig/iptables-ipv4.d/mangle/ begin end forward input output postrouting prerouting /etc/sysconfig/iptables-ipv4.d/nat/ begin end output postrouting prerouting Это шаблон, который должен быть всегда. Пусть большая часть файлов будет поначалу пустая, но они должны быть. begin - начало таблицы, тут описываются дефолтные правила. Пример для filter: *filter :INPUT ACCEPT :FORWARD ACCEPT :OUTPUT ACCEPT end - этот файл завершает таблицу. Обычно там: COMMIT Остальные файлы по имени стандартных цепочек. Ну и разумеется, вы можете там создавать свои файлы с таким же именем, как и название цепочки. Так же можно поделить большую стандартную цепочку на несколько мелких. Например: forward.begin forward.net1 forward.net2 forward.netXX forward.end Другие скрипты могут создавать свои файлы-правила и все они будут собраны в одном конфиге. Вот мой пример таблицы filter: begin drop-and-log-it end external forward input noexternal noexternal-in output tomsknet tomsknet-in Ну а теперь сам скрипт, который собирает это дерево. Ничего сложного. Разумеется, каждый должен сам его доделывать под свои дополнительные цепочки: #!/bin/bash path="/etc/sysconfig/iptables-ipv4.d" rules="$path/start" cat $path/mangle/begin >$rules cat $path/mangle/prerouting >>$rules cat $path/mangle/postrouting >>$rules cat $path/mangle/input >>$rules cat $path/mangle/output >>$rules cat $path/mangle/forward >>$rules cat $path/mangle/end >>$rules cat $path/nat/begin >>$rules cat $path/nat/prerouting >>$rules cat $path/nat/postrouting >>$rules cat $path/nat/output >>$rules cat $path/nat/end >>$rules cat $path/filter/begin >>$rules cat $path/filter/input >>$rules cat $path/filter/output >>$rules cat $path/filter/forward >>$rules cat $path/filter/end >>$rules В этот скрипт можно добавить какие-то дополнительные действия. Например, у меня там генерится цепочка, которая пропускает трафик в городские сети (бесплатный). Попробуйте и часть ваших проблем и проблем ваших заместителей уйдет в прошлое.

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Обсуждение [ RSS ]
 
  • 1, UserAd, 09:27, 05/05/2006 [ответить] [смотреть все]
  • +/
    Очередной костыль ... делал бы уж тогда по принципу redhat like init вместо того чтоб добавлять везде строчки ...
     
  • 2, a, 06:40, 06/05/2006 [ответить] [смотреть все]
  • +/
    Можно сильно не мудрить, а поставить firehol.
    http://firehol.sourceforge.net/
     
     
  • 3, Andrey Mitrofanov, 13:42, 06/05/2006 [^] [ответить] [смотреть все]
  • +/
    Присоединяюсь к предыдущему оратору...
    http://google.ru/search?q=firehol+site:opennet.ru
    http://google.ru/search?hl=ru&q=firehol+"Andrey+Mitrofanov" -- ссылки на linux.ru.net aka lrn.ru и debian.linuxrulez.ru придётся смотреть по "Сохранено в кеше" или в Web Archive идти :((( -- эти форумы не настолько "живучи", как OpenNET)
    // http://google.ru/search?q=firehol+site:www.lrn.ru http://web.archive.org/web/20050313190720/debian.linuxrulez.ru/forum/software
     
  • 4, Аноним, 18:38, 09/05/2006 [ответить] [смотреть все]
  • +/
    Фигня все это при грамотном распределении рулей по цепочкам, нормальном их имено... весь текст скрыт [показать]
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:





      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor