LINUX.ORG.RU

Выход ferm - инструмента для работы с netfilter

 , , ,


0

2

ferm - это инструмент для управления файерволлом в Linux , который облегчает работу с ним путём создания правил на специальном языке, с последующей трансляцией в обычный для netfilter формат. Специальный язык, используемый в нём, имеет интуитивно понятный синтаксис, легко читаем и достаточно прост, с его помощью можно формировать как уровни, так и списки в правилах.

>>> Подробности



Проверено: mono ()

Ответ на: комментарий от Pronin

>Так вот. Можно писать сценарии.

Вы всё ещё пишете свои велосипеды? А мы уже настроили через ferm и работаем! :)

AX ★★★★★ ()
Ответ на: комментарий от AX

>Вы всё ещё пишете свои велосипеды? А мы уже настроили через ferm и работаем! :)
А зато я писать умею!
И думать.
А работать - сами работайте! А я лучше ещё пару скриптов налабаю - и книжку читать буду.

Pronin ★★★★ ()

умрите в корчах

>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

Все так сделали, пральна?

По сабжу - нинужен.

nacmyx ()

Canonical уже изобрела велосипед ufw. Неплохой, в общем.

mao-tm ()
Ответ на: комментарий от AX

> нацарапаешь десять строчек с указанием порта 88888, случайно напишешь

в четвёртой строчке 8888 и потом две недели будешь разбираться,

почему не работает… :)



А что сложного в том, чтобы определить что именно не работает и найти правило, которое за это отвечает?...

Единственный недостаток iptables я вижу в том, что невозможно написать комментарий к правилу, чтобы потом находить и удалять правила, которые уже не нужны. Ну, и ещё, пожалуй, невозможность добавлять сразу несколько правил одной командой (типа iptables -A FORWARD -p tcp,udp -o eth0 -d 1.1.1.1 -j REJECT).

anonymous ()
Ответ на: Прекрасная вещь от AX

а какой смысл в этих псевдоупрощениях? Учитывая, что iptables есть везде, а эту поделку надо всюду руками переносить?

Принципиально ведь ничего не изменилось.

AVL2 ★★★★★ ()
Ответ на: комментарий от anonymous

А что сложного в том, чтобы определить что именно не работает и найти правило, которое за это отвечает?...

А нафига вообще провоцировать ошибки? Почему юзер должен несколько раз копипастить одну и ту же строку? Не проще ли всё описать одной?

Это тоже самое как если бы во всех ЯП отменили циклы и заставили обходить массивы методом

m[0]=n;
m[1]=n+1;
m[2]=n+2;
m[3]=n+3;
…

Единственный недостаток iptables я вижу в том … и ещё, пожалуй, невозможность добавлять сразу несколько правил одной командой (типа iptables -A FORWARD -p tcp,udp -o eth0 -d 1.1.1.1 -j REJECT).

Дык, сабж как-раз для этого и предназначен!

AX ★★★★★ ()
Ответ на: комментарий от AVL2

>а какой смысл в этих псевдоупрощениях?

Если тебе нравится копипастить одно и тоже по десять раз, то никакого. :)

AX ★★★★★ ()
Ответ на: комментарий от anonymous

Единственный недостаток iptables я вижу в том, что невозможно написать комментарий к правилу, чтобы потом находить и удалять правила, которые уже не нужны.


zimniy@cyberbrain:~$ man iptables

<-skipped->

   comment
       Allows you to add comments (up to 256 characters) to any rule.

       --comment comment

       Example:
              iptables -A INPUT -s 192.168.0.0/16 -m comment --comment "A privatized IP block"

<-skipped->
Оно, не? =)

dhameoelin ★★★★★ ()
Ответ на: комментарий от dhameoelin

> Оно, не? =)

Оно, спасибо :)
А вот man у меня в дистре старый, не отражено там этого :(

anonymous ()
Ответ на: комментарий от AX

> >Единственный недостаток iptables я вижу в том … и ещё, пожалуй, невозможность добавлять сразу несколько правил одной командой (типа iptables -A FORWARD -p tcp,udp -o eth0 -d 1.1.1.1 -j REJECT).


Дык, сабж как-раз для этого и предназначен!

Но при этом он вводит лишнюю сущность: файл. Т.е. теперь вместо одной команды, которая на лету добавит правило, надо сначала внести изменения в файл. И каким образом потом вносятся изменения? - наверняка сначала удаляются все правила, а затем создаются по новой из файла...

Кроме того, непонятно где искать ошибку в случае чего - в файле или в выводе iptables?

anonymous ()
Ответ на: Прекрасная вещь от AX

Re: Прекрасная вещь

>Очевидно, что второй вариант не просто куда приятнее читать, но позволяет избавиться от груды лишних ACCEPT, которые только замусоривают экран.
О! :-)

anonymous ()
Ответ на: комментарий от anonymous

>И что? Любитель однострочников?
Нет, это ты - профи локалхостов :-)

anonymous ()
Ответ на: комментарий от AVL2

>а какой смысл в этих псевдоупрощениях? Учитывая, что iptables есть везде, а эту поделку надо всюду руками переносить?

pacman -Ql ferm
ferm /usr/
ferm /usr/sbin/
ferm /usr/sbin/ferm
ferm /usr/sbin/import-ferm

Остальное - документация. Обычный скрипт на PERL.

Принципиально ведь ничего не изменилось.


Почти :-) пример ошибки:

Error occurred at line: 54
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
Failed to run /usr/sbin/iptables-restore

Firewall rules rolled back.

anonymous ()

>Специальный язык, используемый в нём, имеет интуитивно понятный синтаксис

chain INPUT {
    policy DROP;
#iptables -P INPUT DROP
    mod state  state (RELATED ESTABLISHED)  ACCEPT;
#iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    proto tcp  dport (http ftp ssh)  ACCEPT;
#iptables -A INPUT -m multiport --proto tcp --dports 80,21,22 -j ACCEPT
}

Итого -m заменили на --mod, списки в скобках вместо запятых и текстовые алиасы для нескольких популярных сервисов, и у нас в руках «инструмент, облегчающий работу»? Я еще понимаю, если бы там было «allow incoming ssh, disallow outgoing http», а это полная фигня.

linuxfan ()
Ответ на: комментарий от anonymous

Ну я вообще-то думал, что интуитивность навроде той, что в веб-интерфейсах у роутеров: «закрыть тот порт, закрыть этот». Как избавление от "-" и "--" увеличивает эффективность я не понял.

linuxfan ()
Ответ на: комментарий от linuxfan

>Ну я вообще-то думал, что интуитивность навроде той, что в веб-интерфейсах у роутеров: «закрыть тот порт, закрыть этот». Как избавление от "-" и "--" увеличивает эффективность я не понял.

Он не только избавляет от "-" и "--". Если групп роутеров/хостов/портов/сетей >1. Плюс возможность отката в случае ошибки.

anonymous ()
Ответ на: комментарий от anonymous

>Он не только избавляет от "-" и "--". Если групп роутеров/хостов/портов/сетей >1. Плюс возможность отката в случае ошибки.

Да, и когда админов > 1, помогает тоже :-)

anonymous ()
Ответ на: комментарий от anonymous

>Но при этом он вводит лишнюю сущность: файл.

Аноним, я тебе один секрет скажу, только никому ни слова, хорошо?

*шёпотом* Сносить iptables тебя никто не заставляет. Более того, без него сабж вообще работать не будет! Ну ты понял, да? ;)

AX ★★★★★ ()
Ответ на: комментарий от linuxfan

Итого -m заменили на --mod, списки в скобках вместо запятых и текстовые алиасы для нескольких популярных сервисов, и у нас в руках «инструмент, облегчающий работу»? Я еще понимаю, если бы там было «allow incoming ssh, disallow outgoing http», а это полная фигня.

Ты забыл написать про @resolve(hostname) и собственные функции типа

@def &FORWARD_TCP($proto, $port, $dest) = {
    table filter chain FORWARD interface $DEV_WORLD outerface $DEV_DMZ daddr $dest proto $proto dport $port ACCEPT;
    table nat chain PREROUTING interface $DEV_WORLD daddr $HOST_STATIC proto $proto dport $port DNAT to $dest;
}
&FORWARD_TCP(tcp, http, 192.168.1.2);
&FORWARD_TCP(tcp, smtp, 192.168.1.3);
&FORWARD_TCP((tcp udp), domain, 192.168.1.4);

списки в скобках вместо запятых

Хочу добавить одно правило для нескольких цепочек и протоколов (как в первом притмере). Где запятые ставить? :)

AX ★★★★★ ()
Ответ на: комментарий от AX

>Хочу добавить одно правило для нескольких цепочек и протоколов (как в первом притмере). Где запятые ставить? :)

Уровень абстракции не повышается => плохо. Как по мне, так вообще пофиг, в каком виде правила задавать, ибо, задав один раз, делается /etc/init.d/iptables save и не парится мозг.

linuxfan ()
Ответ на: комментарий от anonymous

>proto tcp dport (telnet ssh http https ftp ftp-data) saddr $HOST_ADMIN ACCEPT;

аналог на iptables сколько строк займет?

iptables -A INPUT -s $HOST_ADMIN -p tcp -m multiport --dports telnet,ssh,http,https,ftp,ftp-data -j ACCEPT

anonymous ()
Ответ на: комментарий от anonymous

>iptables -A INPUT -s $HOST_ADMIN -p tcp -m multiport --dports telnet,ssh,http,https,ftp,ftp-data -j ACCEPT

Угу, особенно если:
@def $HOST_ADMIN = (192.168.0.1/30 192.168.0.101 192.168.11.1/24);

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.