Формат протоколируемых сообщений



Сообщения, генерируемые ipmon, состоят из полей данных, разделенных пробелами. Поля, общие для всех сообщений:

1. Дата получения пакета.

2. Время получения пакета. Формат времени HH:MM:SS.F для часов, минут, секунд и долей секунд (последнее поле может состоять из нескольких цифр).

3. Имя интерфейса, через который прошел пакет, например dc0.

4. Группа и номер правила, например @0:17.

Эти сообщения могут быть просмотрены командой ipfstat -in.

1. Действие: p для пропущенных, b для заблокированных, S для пакетов с неполным заголовком (short packet), n для пакетов, не соответствующих какому-либо правилу, L для соответствующих правилу протоколирования. Порядок следования по флагам: S, p, b, n, L. Знаки P или B в верхнем регистре означают, что пакет был протоколирован в соответствии с общими настройками, а не каким-то конкретным правилом.

2. Адреса. Всего три поля: адрес и порт источника (разделенные запятой), ->, адрес и порт назначения. 209.53.17.22,80 -> 198.73.220.17,1722.

3. PR, с последующим именем или номером протокола, например PR tcp.

4. len, с последующей длиной заголовка и общей длиной пакета, например len 20 40.

Для TCP пакетов добавляется дополнительное поле, начинающееся с дефиса, за которым следуют буквы, соответствующие установленным флагам. На странице справочника ipf(5) находится список букв и флагов.

Для пакетов ICMP, в конце находятся два поля, одно всегда ''ICMP'', а второе содержит тип и подтип ICMP сообщения (message и sub-message), разделенные символом косой черты, например ICMP 3/3 для сообщения ''port unreachable''.

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

Некоторые опытные пользователи 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 будут загружаться при загрузке системы.

Наборы правил IPF

Набор правил ipf это группа правил, составленных для пропускания или блокирования пакетов на основе их содержимого. Двусторонний обмен пакетами между хостами составляет сессию. Межсетевой экран обрабатывает как входящие из Интернет пакеты, так и исходящие пакеты, которые сгенерированы самой системой в ответ на входящий трафик. Для каждой службы TCP/IP (например, telnet, www, mail, и т.п.) назначен протокол и номер привилегированного (прослушиваемого) порта. Пакеты, предназначенные для определенного сервиса, порождаются с некоторым исходящим адресом и портом из непривилегированного диапазона и направляются на определенный адрес и определенный порт назначения. Все упомянутые параметры (номера портов и адреса) могут использоваться как критерии выбора в правилах, пропускающих или блокирующих доступ к службам TCP/IP.

IPF был первоначально написан с использованием логики ''последнее совпадающее правило побеждает'' и только с правилами без сохранения состояния. Со временем в IPF был включен параметр ''quick'' и параметр сохранения состояния ''keep state'', что существенно улучшило логику обработки правил.

Инструкции, помещенные в эту главу, созданы с использованием параметров ''quick'' и ''keep state''. Это основа для создания набора правил включающего межсетевого экрана.

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

27.6. * IPFW

Этот раздел не переведен.


Глава 28.


Дата добавления: 2018-10-26; просмотров: 237; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!