28 февраля 2009 г. 21:37 пользователь Alexey Boyko <ale...@boyko.km.ua> написал: >> AB> А я бы не придумал лучше. ferm дишь транслирует правила с некого >> AB> иерархического языка на язык таблиц iptables. по сути ferm то же >> AB> самое, что и iptables, но позволяет групировать правила по общим >> AB> полям. можно на шелле делать также, только язык ferm красивее шелла >> >> Эээ... А (поскольку мне, в общем, лениво читать доку на то, что мне >> вроде как не необходимо) можно привести _реальный_ пример, где ferm, по >> твоему мнению, выигрывает у прямого применения iptables? > > Пример из хелпа по ferm: > > текст > chain (INPUT OUTPUT) { > proto (udp tcp) ACCEPT; > } > > разворачивается им в: > > iptables -A INPUT -p tcp -j ACCEPT > iptables -A OUTPUT -p tcp -j ACCEPT > iptables -A INPUT -p udp -j ACCEPT > iptables -A OUTPUT -p udp -j ACCEPT > > Мне первое читать проще. А вам?
А мне представляется, что это неправильное правило. > Подобные сокращения он может делать и в других местах. > > table filter { > chain INPUT { > policy DROP; > > mod state state INVALID DROP; > mod state state (ESTABLISHED RELATED) ACCEPT; > > interface lo ACCEPT; > > proto icmp ACCEPT; > > proto tcp dport (ssh smtp ftp http) ACCEPT; > } > } > > разворачивается в: > > iptables -A INPUT -P DROP > iptables -A INPUT -m state --state INVALID -j DROP > iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT > iptables -A INPUT -i lo -j ACCEPT > iptables -A INPUT -p icmp -j ACCEPT > iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT > iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT > iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT > iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT > > Лично мне первый вариант читать проще. Полезного тут только разворачивание списка портов в несколько отдельных команд. Но читать мне как раз удобнее вариант с прямыми командами - в варианте ferm трудно разобрать, где что (где предикат, где его параметры). Ну и да, я бы предпочел генератор файла для iptables-restore. Который "все или ничего". >> Потому как в моих файрволах мне не видно, что можно заметно улучшить в >> языке, не ослабляя выразительных возможностей... > > Надеюсь приведённых примеров хватит, чтобы сделать вывод. Угу. Вывод: оно мне не полезно. > Выразительных возможностей ferm нисколько не ослабляет, так как весь его язык > однозначно транслируется в iptables. "Не ослабляет" - это если есть обратная трансляция. Если любое выражение на iptables можно перевести в выражение на ferm. По крайней мере - не усложняя восприятие при этом.