Лекция: Создание набора правил с использованием символьной подстановки

Некоторые опытные пользователи IPF создают файл правил, поддерживающий использование символьной подстановки. Основное преимущество использования такого подхода заключается в возможности изменения значения, присваиваемого символьному имени, в результате чего во всех правилах, содержащих эту символьную подстановку, будет использоваться новое значение. В начале скрипта вы можете поместить часто используемые переменные, а затем использовать их сразу в нескольких правилах. Ниже дан пример такого использования.

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

Символьная подстановка предваряется знаком доллара: $.

Для присвоения значения символьным переменным знак $ не используется.

Присваиваемое символической переменной значение должно быть заключено в двойные кавычки (").

Начните файл правил примерно так:

############# 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

С использованием в правилах символьной подстановки связана одна проблема: IPF не понимает символьную подстановку и не может обработать такой скрипт непосредственно.

Скрипт может использоваться одним из следующих двух способов:

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

• Отключите IPFILTER в стартовых скриптах системы, поместив строку ipfilter_enable=«NO» (это значение по умолчанию) в файл /etc/rc.conf.

Поместите скрипт, подобный нижеприведенному, в каталог /usr/local/etc/rc.d/. У него должно быть однозначно говорящее о его назначении имя, например ipf.loadrules.sh. Расширение .sh обязательно.

#!/bin/sh

sh /etc/ipf.rules.script

Права, установленные на этот файл, должны разрешать чтение, запись и выполнение владельцу root.

# chmod 700 /usr/local/etc/rc.d/ipf.loadrules.sh

Теперь, правила IPF будут загружаться при загрузке системы.

еще рефераты
Еще работы по информатике