diff --git a/ru_RU.KOI8-R/books/handbook/firewalls/chapter.sgml b/ru_RU.KOI8-R/books/handbook/firewalls/chapter.sgml index ccbdb17ca2..7c5637538e 100644 --- a/ru_RU.KOI8-R/books/handbook/firewalls/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/firewalls/chapter.sgml @@ -1,1090 +1,1092 @@ Joseph J. Barbish Предоставил Brad Davis Преобразовал в SGML и обновил Межсетевые экраны межсетевой экран безопасность межсетевой экран + Введение Межсетевые экраны (firewall, брандмауэр) делают возможной фильтрацию входящего и исходящего трафика, идущего через систему. Межсетевой экран использует один или более наборов правил для проверки сетевых пакетов при их входе или выходе через сетевое соединение, он или позволяет прохождение трафика или блокирует его. Правила межсетевого экрана могут проверять одну или более характеристик пакетов, включая но не ограничиваясь типом протокола, адресом хоста источника или назначения и портом источника или назначения. Межсетевые экраны могут серьезно повысить уровень безопасности хоста или сети. Они могут быть использованы для выполнения одной или более нижеперечисленных задач: Для защиты и изоляции приложений, сервисов и машин во внутренней сети от нежелательного трафика, приходящего из внешней сети интернет. Для ограничения или запрещения доступа хостов внутренней сети к сервисам внешней сети интернет. Для поддержки преобразования сетевых адресов (network address translation, NAT), что позволяет использование во внутренней сети приватных IP адресов (либо через один выделенный IP адрес, либо через адрес из пула автоматически присваиваемых публичных адресов). После прочтения этой главы вы узнаете: Как правильно задать правила фильтрации пакетов. Разницу между межсетевыми экранами, встроенными в &os; Как использовать и настраивать межсетевой экран OpenBSD PF. Как использовать и настраивать IPFILTER. Как использовать и настраивать IPFW. Перед прочтением этой главы вам потребуется: Ознакомиться с основами &os; и интернет. Принципы работы межсетевых экранов межсетевой экран наборы правил Существует два основных способа создания наборов правил межсетевого экрана: включающий и исключающий. Исключающий межсетевой экран позволяет прохождение всего трафика, за исключением трафика, соответствующего набору правил. Включающий межсетевой экран действует прямо противоположным образом. Он пропускает только трафик, соответствующий правилам и блокирует все остальное. Включающие межсетевые экраны обычно более безопасны, чем исключающие, поскольку они существенно уменьшают риск пропуска межсетевым экраном нежелательного трафика. Безопасность может быть дополнительно повышена с использованием межсетевого экрана с сохранением состояния. Такой межсетевой экран сохраняет информацию об открытых соединениях и разрешает только трафик через открытые соединения или открытие новых соединений. Недостаток межсетевого экрана с сохранением состояния в том, что он может быть уязвим для атак DoS (Denial of Service, отказ в обслуживании), если множество новых соединений открывается очень быстро. Большинство межсетевых экранов позволяют комбинировать поведение с сохранением состояния и без сохранения состояния, что оптимально для реальных применений. Программные пакеты межсетевых экранов В &os; встроено три программных межсетевых экрана. Это IPFILTER (известный также как IPF), IPFIREWALL (известный также как IPFW) и PF (OpenBSD PacketFilter). В IPFIREWALL встроена поддержка ограничителя трафика DUMMYNET для контроля использования пропускной способности. В IPFILTER поддержка ограничителя трафика не встроена, но в тех же целях может использоваться ALTQ. IPF, IPFW и PF для контроля исходящих и входящих пакетов используют наборы правил, хотя и разными способами с разным синтаксисом правил. Пример набора правил IPFW (находящийся в /etc/rc.firewall), поставляемый в составе базовой системы, является устаревшим, сложным, и не использует правила с сохранением состояния на интерфейсах, выходящих во внешнюю сеть интернет. В нем используются правила без сохранения состояния, способные только открывать или закрывать порты сервисов. Приводимый здесь пример набора правил IPFW с сохранением состояния расширяет набор из файла /etc/rc.firewall. Правила с сохранением состояния лучше подходят для анализа пакетов с целью защиты от переполнения в результате различных атак, применяемых в в настоящее время. Автор предпочитает IPFILTER, поскольку его правила с сохранением состояния гораздо проще использовать совместно с NAT; кроме того, в него встроен ftp прокси, упрощающий настройку безопасного внешнего использования FTP. Он также гораздо проще в освоении для пользователя, не имеющего опыта настройки межсетевых экранов. Поскольку все межсетевые экраны основаны на анализе значений выбранных полей заголовка пакета, для создания правил межсетевого экрана необходимо понимание принципов TCP/IP, того, что означают различные поля заголовка пакета, и как эти поля используются в обычной сессии. Хорошим примером является: . Packet Filter Firewall (PF, межсетевой экран OpenBSD) межсетевой экран PF В июле 2003 программный межсетевой экран OpenBSD, известный как PF, был портирован в &os; и стал доступен из коллекции портов &os;; первым релизом, где PF был интегрирован в основную систему, стала &os; 5.3 в ноябре 2004. PF это полноценный межсетевой экран с широким набором возможностей, в котором есть опциональная поддержка ALTQ (Alternate Queuing). ALTQ предоставляет управление пропускной способностью Quality of Service (QoS), позволяющее гарантировать пропускную способность для различных сервисов на основе фильтрующих правил. Проект OpenBSD поддерживает Руководство Пользователя PF, которое не было внесено в этот раздел руководства во избежание дублирования работы. Информация по доступности PF для различных версий &os; приведена ниже: Версия &os; Доступность PF Версии до 4.X PF недоступен для релизов &os; более старых, чем релизы из ветви 4.X. Все версии ветви 4.X PF доступен как часть KAME. Релизы 5.X до 5.3-RELEASE Для установки PF на эти версии &os; может использоваться порт security/pf. Эти релизы предназначались для разработчиков и тех, кто желал ознакомиться с ранними версиями 5.X. Настоятельно рекомендуется обновление до 5.3-RELEASE или более свежих версий &os;. 5.3-RELEASE и более свежие версии PF стал частью основной системы. Не используйте порт security/pf на этих версиях &os;. Он не будет работать. Вместо этого воспользуйтесь поддержкой &man.pf.4; в базовой системе. Дополнительную информацию можно получить с веб сайта PF для &os;: . Руководство пользователя OpenBSD PF находится здесь: . PF в &os; 5.X соответствует OpenBSD версии 3.5. Порт из коллекции портов &os; соответствует OpenBSD версии 3.4. Имейте это ввиду при просмотре руководства пользователя. Включение PF PF включен в базовую поставку &os; версии 5.3 и выше в качестве отдельного загружаемого модуля. PF динамически подгружает модуль ядра если включена переменная rc.conf pf_enable="YES". Загружаемый модуль создан с включенным &man.pflog.4;. Параметры ядра параметры ядра device pf параметры ядра device pflog параметры ядра device pfsync Включение PF путем компиляции с ядром &os; не является обязательным требованием, и описано здесь в качестве дополнительной информации. При компиляции PF с ядром загружаемый модуль не используется. Пример параметров конфигурации ядра для включения PF находится в /usr/src/sys/conf/NOTES (/usr/src/sys/arch/conf/LINT для &os; 4.X) и показан здесь: device pf device pflog device pfsync device pf включает поддержку межсетевого экрана Packet Filter. device pflog включает необязательное сетевое псевдоустройство &man.pflog.4;, которое может использоваться для протоколирования трафика через &man.bpf.4;. Даемон &man.pflogd.8; может использоваться для сохранения протоколируемой информации на диск. device pfsync включает необязательное сетевое псевдоустройство &man.pfsync.4;, используемое для отслеживания изменений состояния. Поскольку оно не входит в загружаемый модуль, для его использования необходимо собрать собственное ядро. Эти настройки будут действовать только после сборки и установки нового ядра. Доступные параметры rc.conf Для активации PF во время загрузки в /etc/rc.conf должны быть включены следующие переменные: pf_enable="YES" # Включить PF (загрузить модуль если необходимо) pf_rules="/etc/pf.conf" # определение правил для pf pf_flags="" # дополнительные флаги для запуска pfctl pflog_enable="YES" # запустить pflogd(8) pflog_logfile="/var/log/pflog" # где pflogd должен сохранять протокол pflog_flags="" # дополнительные флаги для запуска pflogd Если за межсетевым экраном находится локальная сеть и необходимо передавать пакеты для компьютеров этой сети, или использовать NAT, включите также следующий параметр: gateway_enable="YES" # Включить сетевой шлюз Включение <acronym>ALTQ</acronym> ALTQ может быть включен только путем компилирования ядра &os; с соответствующими параметрами. ALTQ поддерживается не всеми существующими драйверами сетевых карт. Для просмотра списка поддерживаемых устройств в вашем релизе &os; обратитесь к странице справочника &man.altq.4;. Следующие параметры включат ALTQ и добавят дополнительную функциональность. options ALTQ options ALTQ_CBQ # Class Bases Queuing (CBQ) options ALTQ_RED # Random Early Detection (RED) options ALTQ_RIO # RED In/Out options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC) options ALTQ_PRIQ # Priority Queuing (PRIQ) options ALTQ_NOPCC # Required for SMP build options ALTQ включает подсистему ALTQ. options ALTQ_CBQ включает Class Based Queuing (CBQ). CBQ позволяет распределять пропускную способность соединений по классам или очередям для выставления приоритетов трафика на основе правил фильтрации. options ALTQ_RED включает Random Early Detection (RED). RED используется для предотвращения перегрузки сети. RED вычисляет длину очереди и сравнивает ее с минимальной и максимальной границей очереди. Если очередь превышает максимум, все новые пакеты отбрасываются. В соответствии со своим названием, RED отбрасывает пакеты из различные соединений в произвольном порядке. options ALTQ_RIO включает Random Early Detection In and Out. options ALTQ_HFSC включает Hierarchical Fair Service Curve Packet Scheduler. Дополнительная информация о HFSC находится по адресу: . options ALTQ_PRIQ включает Priority Queuing (PRIQ). PRIQ всегда пропускает трафик из более высокой очереди первым. options ALTQ_NOPCC включает поддержку SMP для ALTQ. Эта опция необходима для SMP систем. * IPFILTER (IPF) межсетевой экран IPFILTER Перевод раздела не завершен. Автором IPFILTER является Darren Reed. IPFILTER не зависит от операционной системы: это приложение с открытыми исходными текстами, которое было портировано на операционные системы &os;, NetBSD, OpenBSD, SunOS, HP/UX, и Solaris. IPFILTER активно разрабатывается и поддерживается, регулярно выпускаются обновленные версии. IPFILTER основан на межсетевом экране уровня ядра, механизм NAT может управляться и контролироваться через пользовательский интерфейс. Правила межсетевого экрана могут устанавливаться или удаляться утилитой &man.ipf.8;. Правила NAT могут устанавливаться или удаляться утилитой &man.ipnat.1;. Утилита &man.ipfstat.8; выводит статистику IPFILTER для ядра. Программа &man.ipmon.8; заносит действия IPFILTER в файлы системных протоколов. IPF был первоначально написан с использованием правила последнее совпадение применяется и только с правилами без сохранения состояния. Со временем IPF был расширен и включает параметры quick и keep state (сохранение состояния), которые кардинальным образом изменяют обработку пакетов. Официальная документация IPF включает традиционные параметры правил с традиционной последовательностью обработки пакетов. Измененные функции включены в виде дополнительных параметров, они необходимы для создания эффективного межсетевого экрана. Инструкции этого раздела подразумевают использование параметра quick и параметра сохранения состояния keep state. Это основа для создания включающего межсетевого экрана. Детальное описание методов обработки правил: и . IPF FAQ . Включение IPF IPFILTER включение IPF включен в базовую систему &os; в качестве отдельного загружаемого модуля. Система динамически загрузит модуль IPF, если в rc.conf указана переменная ipfilter_enable="YES". Модуль создается с включенным протоколированием и правилом по умолчанию block all (пропускать все). Для изменения правила по умолчанию не обязательно собирать ядро с новыми параметрами. Просто добавьте в конец набора правило, блокирующее все пакеты. Параметры ядра параметры ядра IPFILTER параметры ядра IPFILTER_LOG параметры ядра IPFILTER_DEFAULT_BLOCK IPFILTER параметры ядра Сборка ядра с &os; включением IPF не обязательна. Эта процедура представлена здесь в качестве дополнительной информации. При включении IPF в ядро загружаемый модуль не используется. Пример параметров настройки ядра для IPF находится в /usr/src/sys/conf/NOTES (/usr/src/sys/arch/conf/LINT для &os; 4.X) и воспроизведен здесь: options IPFILTER options IPFILTER_LOG options IPFILTER_DEFAULT_BLOCK options IPFILTER включает поддержку межсетевого экрана IPFILTER. options IPFILTER_LOG включает протоколирование трафика через IPF путем записи его в псевдо-устройство протоколирования пакетов ipl для каждого правила, содержащего ключевое слово log. options IPFILTER_DEFAULT_BLOCK изменяет поведение по умолчанию так, что блокируется каждый пакет, не соответствующий правилу pass. Эти настройки будут работать только после сборки и установки нового ядра. Доступные параметры rc.conf Для активации IPF во время загрузки в /etc/rc.conf потребуется добавить следующие переменные: ipfilter_enable="YES" # Запуск межсетевого экрана ipf ipfilter_rules="/etc/ipf.rules" # Загрузка файла с правилами ipmon_enable="YES" # Включение протоколирования IP monitor ipmon_flags="-Ds" # D = запуск в виде даемона # s = протоколирование в syslog # v = протоколирование tcp window, ack, seq # n = отображение имен IP и портов Если за межсетевым экраном находится локальная сеть, использующая приватные IP адреса, для включения NAT потребуется добавить следующие переменные: gateway_enable="YES" # Включение шлюза для локальной сети ipnat_enable="YES" # Запуск функции ipnat ipnat_rules="/etc/ipnat.rules" # Определение файла правил для ipnat IPF ipf Команда ipf используется для загрузки файла с правилами. Обычно создается файл, содержащий подготовленный набор правил, который полностью замещает набор, используемый на данный момент: &prompt.root; ipf -Fa -f /etc/ipf.rules означает сброс всех внутренних таблиц правил. указывает файл с правилами, который необходимо загрузить. Таким образом, после внесения изменений в файл правил и запуска вышеприведенной команды IPF, набор правил межсетевого экрана обновляется без перезагрузки системы. Для обновления правил такой подход очень удобен, поскольку команду можно выполнять столько раз, сколько нужно. На странице справочной системы &man.ipf.8; находится подробная информация по флагам этой команды. Набор правил для команды &man.ipf.8; должен быть в виде стандартного текстового файла. Правила, написанные в виде скрипта с символами подстановки, не принимаются. Есть способ составления правил IPF, использующих символы подстановки. Обратитесь к . IPFSTAT ipfstat IPFILTER статистика По умолчанию &man.ipfstat.8; получает и отображает суммарную статистику, полученную в результате применения действующих правил к пакетам, проходящим через межсетевой экран с момента его последнего запуска, или с того момента, когда статистика была последний раз обнулена командой ipf -Z. Детальная информация приводится на странице справочника &man.ipfstat.8;. Вывод команды &man.ipfstat.8; по умолчанию выглядит примерно так: input packets: blocked 99286 passed 1255609 nomatch 14686 counted 0 output packets: blocked 4200 passed 1284345 nomatch 14687 counted 0 input packets logged: blocked 99286 passed 0 output packets logged: blocked 0 passed 0 packets logged: input 0 output 0 log failures: input 3898 output 0 fragment state(in): kept 0 lost 0 fragment state(out): kept 0 lost 0 packet state(in): kept 169364 lost 0 packet state(out): kept 431395 lost 0 ICMP replies: 0 TCP RSTs sent: 0 Result cache hits(in): 1215208 (out): 1098963 IN Pullups succeeded: 2 failed: 0 OUT Pullups succeeded: 0 failed: 0 Fastroute successes: 0 failures: 0 TCP cksum fails(in): 0 (out): 0 Packet log flags set: (0) При задании флага или соответственно для входящих или или исходящих пакетов, будет получен и отображен список правил, используемых на данный момент. ipfstat -in отображает правила, применяемые к входящим пакетам, вместе с номерами этих правил. ipfstat -on отображает правила, применяемые к исходящим пакетам, вместе с номерами этих правил. Вывод команды будет выглядеть примерно так: @1 pass out on xl0 from any to any @2 block out on dc0 from any to any @3 pass out quick on dc0 proto tcp/udp from any to any keep state ipfstat -ih отображает правила, применяемые к входящим пакетам, со счетчиком количества совпадений для каждого правила. ipfstat -oh отображает правила, применяемые к исходящим пакетам, со счетчиком количества совпадений для каждого правила. Вывод команды будет выглядеть примерно так: 2451423 pass out on xl0 from any to any 354727 block out on dc0 from any to any 430918 pass out quick on dc0 proto tcp/udp from any to any keep state Одна из наиболее важных функций команды ipfstat активируется флагом , правила отображаются подобно тому, как &man.top.1; показывает таблицу запущенных процессов &os;. Когда межсетевой экран подвергается атаке, эта функция позволяет обнаружить соответствующие пакеты. Дополнительные флаги дают возможность выбирать IP адрес назначения или источника, порт или протокол, которые будут отслеживаться в реальном времени. Подробная информация приведена на странице &man.ipfstat.8;. IPMON ipmon IPFILTER logging Для того, чтобы стало возможно использование команды ipmon, необходимо включить параметр ядра IPFILTER_LOG. Эта команда может использоваться в двух различных режимах. В основном режиме, который используется по умолчанию, она используется без флага . В режиме даемона создается непрерывный протокол, и возможен просмотр предыдущих событий. В этом режиме IPFILTER работает в &os;. Поскольку в &os; встроена функция ротации файлов протокола, лучше использовать syslogd, чем используемый по умолчанию вывод в обычный файл. В rc.conf по умолчанию ipmon_flags имеет значение : ipmon_flags="-Ds" # D = start as daemon # s = log to syslog # v = log tcp window, ack, seq # n = map IP & port to names Описывать преимущества протоколирования излишне. Например, оно дает возможность просмотра информации о отброшенных пакетах, откуда они пришли и куда направлялись. Это дает определенные возможности отслеживания атак. Даже с включенным протоколированием, IPF не ведет протокол для каждого правила. Администратор межсетевого экран должен решить, по каким правилам набора нужно вести протокол и добавить ключевое слово log к этим правилам. Обычно протоколируются только правила, отбрасывающие пакеты. Довольно часто правило по умолчанию, запрещающее прохождение пакетов, включается в набор последним, и для него применяется ключевое слово log. Так вы можете увидеть все пакеты, не попадающие ни под одно правило набора. Протоколирование IPMON Для сбора данных Syslogd использует свой собственный специальный метод. Он использует группировку по категории (facility) и уровню (level). IPMON в режиме использует local0 в качестве имени категории. Все протоколируемые IPMON данные отправляются на local0. Для сбора протоколируемых данных могут быть использованы следующие уровни: LOG_INFO - packets logged using the "log" keyword as the action rather than pass or block. LOG_NOTICE - packets logged which are also passed LOG_WARNING - packets logged which are also blocked LOG_ERR - packets which have been logged and which can be considered short Для указания IPFILTER протоколировать все данные в /var/log/ipfilter.log, создайте этот файл следующей командой: &prompt.root; touch /var/log/ipfilter.log Функционирование syslog управляется настройками в файле /etc/syslog.conf. Файл syslog.conf позволяет достаточно гибко настроить обработку системных сообщений, выдаваемых программами, такими как IPF. Добавьте в /etc/syslog.conf следующий оператор: local0.* /var/log/ipfilter.log local0.* означает запись всех протоколируемых сообщений в указанный файл. Для применения внесенных в /etc/syslog.conf изменений вы можете перезагрузиться или заставить syslog перечитать /etc/syslog.conf, выполнив команду /etc/rc.d/syslogd reload ( killall -HUP syslogd в &os; 4.X). Не забудьте отредактировать /etc/newsyslog.conf для ротации только что созданного лог файла. Формат протоколируемых сообщений Сообщения, генерируемые ipmon, состоят из полей данных, разделенных пробелами. Поля, общие для всех сообщений: Дата получения пакета. Время получения пакета. Формат времени HH:MM:SS.F для часов, минут, секунд и долей секунд (последнее поле может состоять из нескольких цифр). Имя интерфейса, через который прошел пакет, например dc0. Группа и номер правила, например @0:17. Эти сообщения могут быть просмотрены командой ipfstat -in. Действие: p для пропущенных, b для заблокированных, S для пакетов с неполным заголовком (short packet), n для пакетов, не соответствующих какому-либо правилу, L для соответствующих правилу протоколирования. Порядок следования по флагам: S, p, b, n, L. Знаки P или B в верхнем регистре означают, что пакет был протоколирован в соответствии с общими настройками, а не каким-то конкретным правилом. Адреса. Всего три поля: адрес и порт источника (разделенные запятой), ->, адрес и порт назначения. 209.53.17.22,80 -> 198.73.220.17,1722. PR, с последующим именем или номером протокола, например PR tcp. len, с последующей длиной заголовка и общей длиной пакета, например len 20 40. Для TCP пакетов добавляется дополнительное поле, начинающееся с дефиса, за которым следуют буквы, соответствующие установленным флагам. На странице справочника находится список букв и флагов. Для пакетов ICMP, в конце находятся два поля, одно всегда ICMP, а во втором тип ICMP сообщения (message и sub-message), например ICMP 3/3 для сообщения port unreachable. Создание набора правил с использованием символьной подстановки Некоторые опытные пользователи IPF создают файл правил, поддерживающий использование символьной подстановки. Основное преимущество использования такого скрипта заключается в возможности изменения значения, присваиваемого символьному имени, в результате чего во всех правилах, содержащих эту символьную подстановку, будет использоваться новое значение. В начале скрипта вы можете поместить часто используемые переменные, а затем использовать их сразу в нескольких правилах. Ниже дан пример такого использования. Синтаксис скрипта совместим с 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, вы можете перезагрузить набор правил, введя следующую команду: &prompt.root; 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. &prompt.root; chmod 700 /usr/local/etc/rc.d/ipf.loadrules.sh Теперь, при загрузке системы, правила IPF будут загружены. IPF Rule Sets Набор правил ipf это группа правил, составленных для пропускания или блокирования пакетов на основе их содержимого. Двусторонний обмен пакетами между хостами составляет сессию. Межсетевой экран обрабатывает пакеты в обеих направлениях, Каждый IP пакет имеет такие характеристики как порт и адрес источника и назначения. Эти основные характеристики используются для пропускания или блокирования пакетов. IPFILTER порядок обработки правил IPF был первоначально написан с использованием логики последнее совпадающее правило побеждает и только с правилами без сохранения состояния. Со временем в IPF был включен параметр quick и параметр сохранения состояния keep state, что существенно улучшило логику обработки правил. Инструкции, помещенные в эту главу, созданы с использованием параметров quick и keep state. Это основа для создания набора правил включающего межсетевого экрана. При работе с правилами межсетевого экрана, будьте очень осторожны. Некоторые конфигурации могут заблокировать вам доступ к серверу. В целях предосторожности, первоначальную настройку межсетевого экрана вы можете выполнить с локальной консоли, а не через удаленное подключение, такое как ssh. * IPFW Этот раздел не переведен.