Oleg Frolkov пишет:
В общем-то сейчас попробовал.... это не лечится, или лечится переписыванием ferm/либо правкой генерируемых им скриптов.Alexey Boyko пишет:Нет, ну если сделать кучу подпорок то можно и с ferm извратиться..... т.е. самому написать исходный скрипт, и сделать в каждой из дефолтных цепочек INPUT, FORWARD, OUTPUT переход например на INPUT-FERM, FORWARD-FERM,OUTPUT-FERM и их перегружать ferm_ом.... в принципе надо подумать..... потому как другие варианты (типа include) немного не то.... он все объявленные цепочки тупо чистит и впрочем правильно делает.Monday 02 June 2008 08:56:17 Oleg Frolkov написав:[axed] Тоже им пользуюсь с давних пор, но ищу замену. Он хорош, но только как препроцессор для генерации скрипта iptables, а хочется порой чего-то более гибкого. Например надо еще добавить правил - в случае с ferm это полный рестарт файрволла который например в моем случае - требует переинициализации всех правил которые добавлены не с помощью ferm (у меня при поднятии ppp интерфейсов приписываются дополнительные строчки для NAT в зависимости от адресов с которымиподнимается ppp,у ferm есть @include 'файл';Как на счёт добавления правил не сразу в iptabes, а в дополнительный файлс правилами ferm, а потом рестарт ferm ?Олег.
ferm в скрипт безусловно вставляет преамбулу: /sbin/iptables -t mangle -P FORWARD ACCEPT /sbin/iptables -t mangle -P INPUT ACCEPT /sbin/iptables -t mangle -P OUTPUT ACCEPT /sbin/iptables -t mangle -P PREROUTING ACCEPT /sbin/iptables -t mangle -P POSTROUTING ACCEPT /sbin/iptables -t mangle -F /sbin/iptables -t mangle -X /sbin/iptables -t nat -P OUTPUT ACCEPT /sbin/iptables -t nat -P PREROUTING ACCEPT /sbin/iptables -t nat -P POSTROUTING ACCEPT /sbin/iptables -t nat -F /sbin/iptables -t nat -X /sbin/iptables -t filter -P FORWARD ACCEPT /sbin/iptables -t filter -P INPUT ACCEPT /sbin/iptables -t filter -P OUTPUT ACCEPT /sbin/iptables -t filter -F /sbin/iptables -t filter -X даже если эти цепочки не определены в конфиге. Мало того: /sbin/iptables -t filter -P INPUT ACCEPT Вставляется даже если в конфиге определено: table filter { chain INPUT { policy DROP; } Уже потом после преамбулы появляется строчка: /sbin/iptables -t filter -P INPUT DROPТут в общем-то дыра в безопасности. Конечно между строчками доли секунды и атака маловероятна, но
тем не менее считаю что это не правильно.В общем резюманс следующий: Как препроцессор правил iptables - ferm лучший инструмент (маленький, удобный, позволяет делать маленькие конфиги разворачивающиеся в толстые скрипты). Но только как препроцессор в простых условиях - когда позволительно тупо перезагрузить все правила и правила создаются
только с помощью этого скрипта.Если есть правила добавляемые другими подсистемами - то ferm не годится к использованию без переделки или
подпорок потому что при инициализации правил сносит корневые цепочки. Олег.P.S. Но тем не менее на данный момент это то чем я пользуюсь.... стараясь не лазить много в правила :) а если уж их поменял то требуется рестарт всего что добавляет свои правила со всеми вытекающими типа кратковременного перерыва сервиса для пользователей в конторе. Более легкого инструмента (это-ж просто perl скрипт) работающего везде и всегда простым копированием и запуском я пока не
нашел.P.P.S. Использую я его в режиме генерации скрипта, а потом скрипт исполняю, в режиме самостоятельного применения правил не использую... и в автозагрузку тоже не ставлю... предпочитаю запустить сгенеренный скрипт посмотрев туда глазами а потом сделать iptables-save >/etc/network/iptables.rules