Re: загрузка правил iptables
28 февраля 2009 г. 21:37 пользователь Alexey Boyko <alexey@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. По крайней
мере - не усложняя восприятие при этом.
Reply to: