Как применять таблицы в ipfw я понял с помощью
http://wiki.slavka.kiev.ua/index.php/%D0%A2%D...а вот как список таблицы вынести в отдельный файл, т.е. чтобы после перезагрузки таблица не очищалась - сохранялась в этом файле.
>Как применять таблицы в ipfw я понял с помощью
>http://wiki.slavka.kiev.ua/index.php/%D0%A2%D...
>
>а вот как список таблицы вынести в отдельный файл, т.е. чтобы после
>перезагрузки таблица не очищалась - сохранялась в этом файле.Прописать в скрипт старта файрволла (/etc/rc.firewall) заполнение таблиц.
Можно использовать стандартный способ:
внести изменения в файл /etc/rc.firewall
в этом файле несколько наборов правил, которые обозначены: [Cc][Ll][Ii][Ee][Nn][Tt])...
вносятся изменения в правила
для применения исправленного набора в файл /etc/rc.conf нужно добавить строчку
firewall_type="здесь указывается тот раздел правил, который был правлен"
пример: firewall_type="client"
а можно самому сделать файл с набором правил:
------------rc.ipfw.rules-----------------
#!/bin/sh
fwcmd="/sbin/ipfw"
${fwcmd} -f flush
${fwcmd} add 100 allow all from any to any via lo0
${fwcmd} add 200 deny all from any to 127.0.0.0/8
${fwcmd} add 300 deny all from 127.0.0.0/8 to any
...
------------rc.ipfw.rules-----------------
а в файл /etc/rc.conf добавить строчку
firewall_script="/etc/rc.ipfw.rules"
после перезагрузки правила должны быть на месте
выхлоп не в тему - речь про таблицы
>Как применять таблицы в ipfw я понял с помощью
>http://wiki.slavka.kiev.ua/index.php/%D0%A2%D...
>
>а вот как список таблицы вынести в отдельный файл, т.е. чтобы после
>перезагрузки таблица не очищалась - сохранялась в этом файле.дописать прямо в самом /etc/rc.firewall
цикл подгрузки таблицы из файла (если считать что айпи(подсети) там разделеный пробелами или \n)
(пешу чисто схематично, такчто на ошибки не смотрим)
for loop in `cat /etc/table1.conf`
do
${ipfw} add allow all from $loop to any
doneэто загрузка
для выгрузке нужно написать ОТДЕЛЬНЫЙ скриптик, который при шутдауне будет выплевы листинг таблицы в выщеобозначенный файл (файлы)
и разместить его в rc.d директории, настроив реакцию на stop