Межсетевое экранирование

         

Построение скрипта правила


Опытные администраторы IPFW создают файл, содержащий правила и код, который затем выполняется в виде скрипта. Основное преимущество состоит в том, что правила пакетного фильтра могут быть изменены без необходимости перезапуска системы. Этот метод очень удобен при тестировании новых правил, так как данная процедура может быть выполнена много раз. При написании скрипта можно создавать символьные подстановки для обозначения часто используемых значений и затем указывать их в нескольких правилах. Синтаксис скрипта совместим с sh, csh и tcsh shell’ами. Поля символьной подстановки должны начинаться со знака $. Символьные поля не имеют префикса $. Значение, которое принимает символьное поле, должно быть заключено в двойные кавычки.

Файл правил должен начинаться примерно так:

############### start of example ipfw rules script ############# # ipfw -q -f flush # Delete all rules # Set defaults oif="tun0" # out interface odns="192.0.2.11" # ISP's DNS server IP address cmd="ipfw -q add " # build rule prefix ks="keep-state" # just too lazy to key this each time $cmd 00500 check-state $cmd 00502 deny all from any to any frag $cmd 00501 deny tcp from any to any established $cmd 00600 allow tcp from any to any 80 out via $oif setup $ks $cmd 00610 allow tcp from any to $odns 53 out via $oif setup $ks $cmd 00611 allow udp from any to $odns 53 out via $oif $ks ################### End of example ipfw rules script ############

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

Если приведенный выше пример находится в файле /etc/ipfw.rules, то эти правила могут быть загружены с помощью следующего ввода в командной строке:

# sh /etc/ipfw.rules

То же самое можно сделать, выполнив вручную следующие команды:

# ipfw -q -f flush # ipfw -q add check-state # ipfw -q add deny all from any to any frag # ipfw -q add deny tcp from any to any established # ipfw -q add allow tcp from any to any 80 out via tun0 setup keep-state # ipfw -q add allow tcp from any to 192.0.2.11 53 out via tun0 setup keep-state # ipfw -q add 00611 allow udp from any to 192.0.2.11 53 out via tun0 keep-state



Содержание раздела