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

Построение скрипта правил с использованием символьных подстановок


Можно создать файл, содержащий правила, таким образом, чтобы выполнять его в качестве скрипта с использованием символьных подстановок. Главное преимущество заключается в том, что в случае необходимости можно отредактировать только значение символьного имени, и при выполнении скрипта все правила, содержащие символьное имя, будут иметь новое значение. Тем самым можно использовать символьные подстановки для значений, которые могут когда-либо измениться.

Синтаксис скрипта совместим с sh, csh и tcsh.

Поле символьной подстановки начинается с символа $.

Определение символьного поля не имеет в качестве префикса символ $.

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

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

############# Start of IPF rules script ######################## oif="dc0" # name of the outbound interface odns="192.0.2.11" # ISP's DNS server IP address myip="192.0.2.7" # my static IP address from ISP ks="keep state" fks="flags S keep state"

# You can choose between building /etc/ipf.rules file # from this script or running this script "as is". # # Uncomment only one line and comment out another. # # 1) This can be used for building /etc/ipf.rules: #cat > /etc/ipf.rules << EOF # # 2) This can be used to run script "as is": /sbin/ipf -Fa -f - << EOF

# Allow out access to my ISP's Domain name server. pass out quick on $oif proto tcp from any to $odns port = 53 $fks pass out quick on $oif proto udp from any to $odns port = 53 $ks

# Allow out non-secure standard www function pass out quick on $oif proto tcp from $myip to any port = 80 $fks

# Allow out secure www function https over TLS SSL pass out quick on $oif proto tcp from $myip to any port = 443 $fks EOF ############### End of IPF rules script ##################

В данном примере правила не важны. Здесь показано, как символьные подстановки обозначаются и как используются. Если приведенный выше пример поместить в файл /etc/ipf.rules.script, можно загрузить эти правила, введя команду

# sh /etc/ipf.rules.script

Данный скрипт можно использовать и другим способом:

Раскомментировать строку, начинающуюся с cat, и закомментировать строку, начинающиюся с /sbin/ipf. Указать, как обычно, ipfilter_enable="YES" в /etc/rc.conf и выполнять скрипт после каждой модификации /etc/ipf.rules.



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