MFen: handbook/firewalls/chapter.sgml 1.70 --> 1.94
This commit is contained in:
parent
4fbfd04300
commit
b029def3de
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=36264
1 changed files with 288 additions and 197 deletions
|
@ -4,7 +4,7 @@
|
||||||
$FreeBSD$
|
$FreeBSD$
|
||||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/firewalls/chapter.sgml,v 1.16 2006/06/20 18:02:32 marck Exp $
|
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/firewalls/chapter.sgml,v 1.16 2006/06/20 18:02:32 marck Exp $
|
||||||
|
|
||||||
Original revision: 1.70
|
Original revision: 1.94
|
||||||
|
|
||||||
XXX: contains non-translated sections! XXX
|
XXX: contains non-translated sections! XXX
|
||||||
-->
|
-->
|
||||||
|
@ -47,7 +47,7 @@
|
||||||
|
|
||||||
<para>Межсетевые экраны (firewall, брандмауэр)
|
<para>Межсетевые экраны (firewall, брандмауэр)
|
||||||
делают возможной фильтрацию входящего и исходящего
|
делают возможной фильтрацию входящего и исходящего
|
||||||
трафика, идущего через систему. Межсетевой экран использует один
|
трафика, идущего через вашу систему. Межсетевой экран использует один
|
||||||
или более наборов <quote>правил</quote> для проверки сетевых
|
или более наборов <quote>правил</quote> для проверки сетевых
|
||||||
пакетов при их входе или выходе через сетевое соединение, он
|
пакетов при их входе или выходе через сетевое соединение, он
|
||||||
или позволяет прохождение трафика или блокирует его. Правила
|
или позволяет прохождение трафика или блокирует его. Правила
|
||||||
|
@ -73,9 +73,10 @@
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Для поддержки преобразования сетевых адресов (network
|
<para>Для поддержки преобразования сетевых адресов (network
|
||||||
address translation, <acronym>NAT</acronym>), что позволяет
|
address translation, <acronym>NAT</acronym>), что дает возможность
|
||||||
использование во внутренней сети приватных
|
задействовать во внутренней сети приватные <acronym>IP</acronym>
|
||||||
<acronym>IP</acronym> адресов (либо через один выделенный
|
адреса и совместно использовать одно подключение к сети Интернет
|
||||||
|
(либо через один выделенный
|
||||||
<acronym>IP</acronym> адрес, либо через адрес из пула
|
<acronym>IP</acronym> адрес, либо через адрес из пула
|
||||||
автоматически присваиваемых публичных адресов).</para>
|
автоматически присваиваемых публичных адресов).</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
@ -135,10 +136,22 @@
|
||||||
Он пропускает только трафик, соответствующий правилам и
|
Он пропускает только трафик, соответствующий правилам и
|
||||||
блокирует все остальное.</para>
|
блокирует все остальное.</para>
|
||||||
|
|
||||||
<para>Включающие межсетевые экраны обычно более безопасны, чем
|
<para>Включающий межсетевой экран обеспечивает гораздо большую степень
|
||||||
|
контроля исходящего трафика. Поэтому включающий межсетевой экран
|
||||||
|
является лучшим выбором для систем, предоставляющих сервисы в сети
|
||||||
|
Интернет. Он также контролирует тип трафика, порождаемого вне
|
||||||
|
и направляющегося в вашу приватную сеть. Трафик, не попавший в правила,
|
||||||
|
блокируется, а в файл протокола вносятся соответствующие записи.
|
||||||
|
Включающие межсетевые экраны обычно более безопасны, чем
|
||||||
исключающие, поскольку они существенно уменьшают риск
|
исключающие, поскольку они существенно уменьшают риск
|
||||||
пропуска межсетевым экраном нежелательного трафика.</para>
|
пропуска межсетевым экраном нежелательного трафика.</para>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>Если не указано иначе, то все приведенные в этом разделе примеры
|
||||||
|
наборов правил и конфигураций относятся к типу включающего межсетевого
|
||||||
|
экрана.</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
<para>Безопасность может быть дополнительно повышена с
|
<para>Безопасность может быть дополнительно повышена с
|
||||||
использованием <quote>межсетевого экрана с сохранением
|
использованием <quote>межсетевого экрана с сохранением
|
||||||
состояния</quote>. Такой межсетевой экран сохраняет информацию
|
состояния</quote>. Такой межсетевой экран сохраняет информацию
|
||||||
|
@ -149,37 +162,46 @@
|
||||||
(Denial of Service, отказ в обслуживании), если множество
|
(Denial of Service, отказ в обслуживании), если множество
|
||||||
новых соединений открывается очень быстро. Большинство
|
новых соединений открывается очень быстро. Большинство
|
||||||
межсетевых экранов позволяют комбинировать поведение с сохранением
|
межсетевых экранов позволяют комбинировать поведение с сохранением
|
||||||
состояния и без сохранения состояния, что оптимально
|
состояния и без сохранения состояния, что позволяет создавать
|
||||||
для реальных применений.</para>
|
оптимальную конфигурацию для каждой конкретной системы.</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="firewalls-apps">
|
<sect1 id="firewalls-apps">
|
||||||
|
|
||||||
<title>Пакеты межсетевых экранов</title>
|
<title>Пакеты межсетевых экранов</title>
|
||||||
|
|
||||||
<para>В &os; встроено три программных межсетевых экрана.
|
<para>В базовую систему &os; встроено три программных межсетевых экрана.
|
||||||
Это <emphasis>IPFILTER</emphasis> (известный также как
|
Это <emphasis>IPFILTER</emphasis> (известный также как
|
||||||
<acronym>IPF</acronym>), <emphasis>IPFIREWALL</emphasis> (известный также
|
<acronym>IPF</acronym>), <emphasis>IPFIREWALL</emphasis> (известный также
|
||||||
как <acronym>IPFW</acronym>) и <emphasis>OpenBSD PacketFilter</emphasis>
|
как <acronym>IPFW</acronym>) и <emphasis>OpenBSD PacketFilter</emphasis>
|
||||||
(также известный как<acronym>PF</acronym>).
|
(также известный как <acronym>PF</acronym>).
|
||||||
Помимо этого, &os; содержит два пакета ограничения трафика (шейпера):
|
Помимо этого, &os; содержит два пакета ограничения трафика
|
||||||
&man.altq.4; и &man.dummynet.4;. Dummynet традиционно сильно связан с
|
(по существу, предназначенных для контроля пропускной способности
|
||||||
<acronym>IPFW</acronym>, а <acronym>ALTQ</acronym> с
|
сетевого соединения): &man.altq.4; и &man.dummynet.4;. Dummynet
|
||||||
<acronym>IPF</acronym> и <acronym>PF</acronym>.
|
традиционно сильно связан с <acronym>IPFW</acronym>, а
|
||||||
IPF, IPFW и PF для контроля исходящих и входящих пакетов
|
<acronym>ALTQ</acronym> с <acronym>PF</acronym>.
|
||||||
|
В настоящее время IPFILTER не поддерживает ограничение пропускной
|
||||||
|
способности сетевого соединения. Для реализации этой функции
|
||||||
|
предлагается использовать IPFILTER совместно с одним из двух существующих
|
||||||
|
пакетов ограничения трафика. Конфигурация следующая: IPFILTER
|
||||||
|
задействуется для фильтрации и трансляции трафика, а
|
||||||
|
<acronym>IPFW</acronym> с &man.dummynet.4; <emphasis>или</emphasis>
|
||||||
|
<acronym>PF</acronym> с <acronym>ALTQ</acronym>
|
||||||
|
— для контроля пропускной способности сетевого соединения.
|
||||||
|
IPFW и PF для контроля исходящих и входящих пакетов
|
||||||
используют наборы правил, хотя и разными способами с разным
|
используют наборы правил, хотя и разными способами с разным
|
||||||
синтаксисом правил.</para>
|
синтаксисом правил.</para>
|
||||||
|
|
||||||
<para>Причина, по которой в &os; включено более одного пакета
|
<para>Причина, по которой в &os; включено более одного пакета
|
||||||
межсетевых экранов, заключается в том, что разные сети выдвигают
|
межсетевых экранов, заключается в том, что разные пользователи выдвигают
|
||||||
к ним различные требования и используют разные предпочтения.
|
к ним различные требования и используют разные предпочтения.
|
||||||
Нет одного пакета, который был бы очевидно лучше других.</para>
|
Нет одного пакета, который был бы очевидно лучше других.</para>
|
||||||
|
|
||||||
<para>Автор предпочитает IPFILTER, поскольку его
|
<para>Автор предпочитает IPFILTER, поскольку его
|
||||||
правила с сохранением состояния гораздо проще использовать
|
правила с сохранением состояния гораздо проще использовать
|
||||||
совместно с <acronym>NAT</acronym>; кроме того, в него встроен
|
совместно с <acronym>NAT</acronym>; кроме того, в него встроен
|
||||||
ftp прокси, упрощающий настройку безопасного внешнего использования
|
ftp прокси, что упрощает правила для фильтрации исходящих FTP
|
||||||
FTP.</para>
|
соединений.</para>
|
||||||
|
|
||||||
<para>Поскольку все межсетевые экраны основаны на анализе значений выбранных
|
<para>Поскольку все межсетевые экраны основаны на анализе значений выбранных
|
||||||
полей заголовка пакета, для создания правил межсетевого экрана необходимо
|
полей заголовка пакета, для создания правил межсетевого экрана необходимо
|
||||||
|
@ -190,7 +212,19 @@
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="firewalls-pf">
|
<sect1 id="firewalls-pf">
|
||||||
<title>Packet Filter Firewall (PF, межсетевой экран OpenBSD)</title>
|
<sect1info>
|
||||||
|
<authorgroup>
|
||||||
|
<author>
|
||||||
|
<firstname>John</firstname>
|
||||||
|
<surname>Ferrell</surname>
|
||||||
|
<contrib>Пересмотрел и обновил </contrib>
|
||||||
|
<!-- 24 March 2008 -->
|
||||||
|
</author>
|
||||||
|
</authorgroup>
|
||||||
|
</sect1info>
|
||||||
|
|
||||||
|
<title>Packet Filter (PF, межсетевой экран OpenBSD) и
|
||||||
|
<acronym>ALTQ</acronym></title>
|
||||||
|
|
||||||
<indexterm>
|
<indexterm>
|
||||||
<primary>межсетевой экран</primary>
|
<primary>межсетевой экран</primary>
|
||||||
|
@ -206,44 +240,65 @@
|
||||||
возможностей, в котором есть опциональная поддержка
|
возможностей, в котором есть опциональная поддержка
|
||||||
<acronym>ALTQ</acronym> (Alternate Queuing).
|
<acronym>ALTQ</acronym> (Alternate Queuing).
|
||||||
<acronym>ALTQ</acronym> предоставляет управление пропускной способностью
|
<acronym>ALTQ</acronym> предоставляет управление пропускной способностью
|
||||||
Quality of Service (<acronym>QoS</acronym>), позволяющее гарантировать
|
Quality of Service (<acronym>QoS</acronym>).</para>
|
||||||
пропускную способность для различных сервисов на основе фильтрующих
|
|
||||||
правил. Проект OpenBSD поддерживает Руководство
|
|
||||||
Пользователя PF, которое не было внесено в этот раздел руководства
|
|
||||||
во избежание дублирования работы.</para>
|
|
||||||
|
|
||||||
<para>Дополнительную информацию можно получить с веб сайта PF для &os;:
|
<para>Проект OpenBSD осуществляет замечательную работу по поддержке
|
||||||
|
<ulink url="http://www.openbsd.org/faq/pf/">PF FAQ</ulink>. Этот раздел
|
||||||
|
руководства фокусируется на взаимосвязи <acronym>PF</acronym> и
|
||||||
|
&os;, предоставляя лишь общую информацию по его использованию.
|
||||||
|
За более подробной информацией по использованию <acronym>PF</acronym>
|
||||||
|
обратитесь к <ulink
|
||||||
|
url="http://www.openbsd.org/faq/pf/">PF FAQ</ulink>.</para>
|
||||||
|
|
||||||
|
<para>Дополнительные сведения о PF для &os; можно получить с веб сайта:
|
||||||
<ulink url="http://pf4freebsd.love2party.net/"></ulink>.</para>
|
<ulink url="http://pf4freebsd.love2party.net/"></ulink>.</para>
|
||||||
|
|
||||||
<sect2>
|
<sect2>
|
||||||
<title>Включение PF</title>
|
<title>Использование модуля ядра PF</title>
|
||||||
|
|
||||||
<para>PF включен в базовую поставку &os; версии 5.3 и выше в качестве
|
<para>Чтобы загрузить PF как модуль ядра, добавьте следующую строку
|
||||||
отдельного загружаемого модуля. PF динамически подгружает модуль ядра
|
в <filename>/etc/rc.conf</filename>:</para>
|
||||||
если включена переменная rc.conf <literal>pf_enable="YES"</literal>.
|
|
||||||
Загружаемый модуль создан с включенным &man.pflog.4;.</para>
|
<programlisting>pf_enable="YES"</programlisting>
|
||||||
|
|
||||||
|
<para>Далее, выполните стартовый скрипт:</para>
|
||||||
|
|
||||||
|
<screen>&prompt.root; <userinput>/etc/rc.d/pf start</userinput></screen>
|
||||||
|
|
||||||
|
<para>Учтите, модуль PF не загрузится, если он не сможет найти
|
||||||
|
конфигурационный файл с набором правил. По умолчанию размещение
|
||||||
|
файла с правилами следующее: <filename>/etc/pf.conf</filename>.
|
||||||
|
Если путь к файлу отличается от вышеприведённого, то внесите в
|
||||||
|
<filename>/etc/rc.conf</filename> строку вида:</para>
|
||||||
|
|
||||||
|
<programlisting>pf_rules="<replaceable>/path/to/pf.conf</replaceable>"</programlisting>
|
||||||
|
|
||||||
<note>
|
<note>
|
||||||
<para>Модуль предполагает, что файл конфигурации вашего ядра содержит
|
<para>Начиная с версии &os; 7.0 файл с примерами конфигураций
|
||||||
строки <literal>options INET</literal> и
|
(<filename>pf.conf</filename>) был перемещен из каталога
|
||||||
<literal>device bpf</literal>. Если не определен параметр
|
<filename class="directory">/etc/</filename> в каталог
|
||||||
<literal>NOINET6</literal> для &os; версий до 6.0-RELEASE и
|
<filename class="directory">/usr/share/examples/pf/</filename>.
|
||||||
<literal>NO_INET6</literal> для более поздних версий (например,
|
Для версий &os;, предшествующих 7.0, размещение по умолчанию
|
||||||
в файле &man.make.conf.5;), требуется также параметр
|
— <filename class="directory">/etc/pf.conf</filename></para>
|
||||||
<literal>options INET6</literal>.</para>
|
|
||||||
</note>
|
</note>
|
||||||
|
|
||||||
<para>После загрузки модуля или пересборки ядра с поддержкой PF,
|
<para>Модуль <acronym>PF</acronym> можно также загрузить вручную:</para>
|
||||||
функциональность <application>pf</application> может управляться
|
|
||||||
при помощи команды <command>pfctl</command>.</para>
|
|
||||||
|
|
||||||
<para><application>pf</application> включается при помощи команды</para>
|
<screen>&prompt.root; <userinput>kldload pf.ko</userinput></screen>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>pfctl -e</userinput></screen>
|
<para>Поддержка ведения логов для <acronym>PF</acronym> обеспечивается
|
||||||
|
модулем <literal>pflog.ko</literal>, для загрузки которого добавьте
|
||||||
|
следующую строку в <filename>/etc/rc.conf</filename>:</para>
|
||||||
|
|
||||||
<para>Команда <command>pfctl</command> позволяет управлять правилами
|
<programlisting>pflog_enable="YES"</programlisting>
|
||||||
<application>pf</application>. Дополнительную информацию следует
|
|
||||||
черпать из страницы справочника &man.pfctl.8;.</para>
|
<para>и запустите на выполнение скрипт:</para>
|
||||||
|
|
||||||
|
<screen>&prompt.root; <userinput>/etc/rc.d/pflog start</userinput></screen>
|
||||||
|
|
||||||
|
<para>Если вам необходимы другие функциональные возможности
|
||||||
|
<acronym>PF</acronym>, то придется добавить поддержку
|
||||||
|
<acronym>PF</acronym> в ядро.</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2>
|
<sect2>
|
||||||
|
@ -264,9 +319,18 @@
|
||||||
<secondary>device pfsync</secondary>
|
<secondary>device pfsync</secondary>
|
||||||
</indexterm>
|
</indexterm>
|
||||||
|
|
||||||
<para>Включение PF путем компиляции с ядром &os; не является обязательным
|
<para>Включение <acronym>PF</acronym> путем компиляции с ядром &os; не является обязательным
|
||||||
требованием, и описано здесь в качестве дополнительной информации.
|
требованием,
|
||||||
При компиляции PF с ядром загружаемый модуль не используется.</para>
|
однако вам может понадобиться
|
||||||
|
одна из функциональных возможностей, которая не включена в загружаемый
|
||||||
|
модуль. Например, &man.pfsync.4; являет собой псевдоустройство,
|
||||||
|
которое вносит определенные изменения в таблицу состояний, используемую
|
||||||
|
<acronym>PF</acronym>. В дальнейшем, это псевдоустройство может быть
|
||||||
|
скомпоновано с &man.carp.4; чтобы создать отказоустойчивую систему
|
||||||
|
межсетевых экранов на основе <acronym>PF</acronym>.
|
||||||
|
<!-- XXX: "carp" chapter translation is missing (it breaks the build) XXX
|
||||||
|
Дополнительная информация о протоколе <acronym>CARP</acronym>
|
||||||
|
находится в <xref linkend="carp"> руководства. --></para>
|
||||||
|
|
||||||
<para>Пример параметров конфигурации ядра для включения PF находится в
|
<para>Пример параметров конфигурации ядра для включения PF находится в
|
||||||
<filename>/usr/src/sys/conf/NOTES</filename> и показан здесь:</para>
|
<filename>/usr/src/sys/conf/NOTES</filename> и показан здесь:</para>
|
||||||
|
@ -276,7 +340,7 @@ device pflog
|
||||||
device pfsync</programlisting>
|
device pfsync</programlisting>
|
||||||
|
|
||||||
<para><literal>device pf</literal> включает поддержку межсетевого экрана
|
<para><literal>device pf</literal> включает поддержку межсетевого экрана
|
||||||
<quote>Packet Filter</quote>.</para>
|
<quote>Packet Filter</quote> (&man.pf.4;).</para>
|
||||||
|
|
||||||
<para><literal>device pflog</literal> включает необязательное сетевое
|
<para><literal>device pflog</literal> включает необязательное сетевое
|
||||||
псевдоустройство &man.pflog.4;, которое может использоваться для
|
псевдоустройство &man.pflog.4;, которое может использоваться для
|
||||||
|
@ -286,19 +350,14 @@ device pfsync</programlisting>
|
||||||
|
|
||||||
<para><literal>device pfsync</literal> включает необязательное
|
<para><literal>device pfsync</literal> включает необязательное
|
||||||
сетевое псевдоустройство &man.pfsync.4;, используемое для
|
сетевое псевдоустройство &man.pfsync.4;, используемое для
|
||||||
отслеживания <quote>изменений состояния</quote>. Поскольку оно
|
отслеживания <quote>изменений состояния</quote>.</para>
|
||||||
не входит в загружаемый модуль, для его использования необходимо
|
|
||||||
собрать собственное ядро.</para>
|
|
||||||
|
|
||||||
<para>Эти настройки будут действовать только после сборки и установки
|
|
||||||
нового ядра.</para>
|
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2>
|
<sect2>
|
||||||
<title>Доступные параметры rc.conf</title>
|
<title>Доступные параметры rc.conf</title>
|
||||||
|
|
||||||
<para>Для активации PF во время загрузки в
|
<para>Для активации <acronym>PF</acronym> и &man.pflog.4; во время
|
||||||
<filename>/etc/rc.conf</filename> должны быть включены следующие
|
загрузки в &man.rc.conf.5; должны быть включены следующие
|
||||||
переменные:</para>
|
переменные:</para>
|
||||||
|
|
||||||
<programlisting>pf_enable="YES" # Включить PF (загрузить модуль если необходимо)
|
<programlisting>pf_enable="YES" # Включить PF (загрузить модуль если необходимо)
|
||||||
|
@ -316,6 +375,91 @@ pflog_flags="" #
|
||||||
|
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Создание правил фильтрации</title>
|
||||||
|
|
||||||
|
<para>Пакет <acronym>PF</acronym> читает конфигурацию из файла
|
||||||
|
&man.pf.conf.5; (полный путь: <filename>/etc/pf.conf</filename>);
|
||||||
|
пакеты отвергаются, пропускаются или модифицируются в соответствии с
|
||||||
|
правилами и определениями из этого файла. В стандартную поставку
|
||||||
|
&os; входят несколько файлов с примерами конфигураций, которые
|
||||||
|
находятся в каталоге <filename
|
||||||
|
class="directory">/usr/share/examples/pf/</filename>.
|
||||||
|
За исчерпывающим описанием правил <acronym>PF</acronym> обратитесь
|
||||||
|
к <ulink url="http://www.openbsd.org/faq/pf/">PF FAQ</ulink>.</para>
|
||||||
|
|
||||||
|
<warning>
|
||||||
|
<para>Изучая <ulink url="http://www.openbsd.org/faq/pf/">PF
|
||||||
|
FAQ</ulink>, имейте в виду, что различные версии &os; могут
|
||||||
|
содержать разные версии pf. В настоящий момент
|
||||||
|
&os; 7.<replaceable>X</replaceable> и более поздние
|
||||||
|
используют ту же версию <acronym>PF</acronym>, которая включена
|
||||||
|
в OpenBSD 4.1.</para>
|
||||||
|
</warning>
|
||||||
|
|
||||||
|
<para>&a.pf; является хорошим местом, чтобы задавать вопросы по
|
||||||
|
конфигурации и использованию пакета <acronym>PF</acronym>.
|
||||||
|
Не забудьте проверить архивы списка рассылки перед тем, как
|
||||||
|
задавать вопрос.</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Работа с PF</title>
|
||||||
|
|
||||||
|
<para>Для управления <acronym>PF</acronym> используйте утилиту
|
||||||
|
&man.pfctl.8;. Ниже приведено несколько полезных команд (все
|
||||||
|
возможные команды и опции приведены на странице справочника
|
||||||
|
&man.pfctl.8;):</para>
|
||||||
|
|
||||||
|
<informaltable frame="none" pgwide="1">
|
||||||
|
<tgroup cols="2">
|
||||||
|
<thead>
|
||||||
|
<row>
|
||||||
|
<entry>Команда</entry>
|
||||||
|
|
||||||
|
<entry>Действие</entry>
|
||||||
|
</row>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody>
|
||||||
|
<row>
|
||||||
|
<entry><command>pfctl <option>-e</option></command></entry>
|
||||||
|
|
||||||
|
<entry>Включить PF</entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<entry><command>pfctl <option>-d</option></command></entry>
|
||||||
|
|
||||||
|
<entry>Выключить PF</entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<entry><command>pfctl <option>-F</option> all <option>-f</option> /etc/pf.conf</command></entry>
|
||||||
|
|
||||||
|
<entry>Сбросить все правила (NAT, правила фильтрации, состояния
|
||||||
|
соединений, таблицы и т.д.) и загрузить новые с файла
|
||||||
|
<filename>/etc/pf.conf</filename></entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<entry><command>pfctl <option>-s</option> [ rules | nat | state ]</command></entry>
|
||||||
|
|
||||||
|
<entry>Отобразить правила фильтрации, правила NAT или
|
||||||
|
таблицу состояний соединений</entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<entry><command>pfctl <option>-vnf</option> /etc/pf.conf</command></entry>
|
||||||
|
|
||||||
|
<entry>Проверить <filename>/etc/pf.conf</filename> на наличие
|
||||||
|
ошибок, но сами наборы правил не загружать</entry>
|
||||||
|
</row>
|
||||||
|
</tbody>
|
||||||
|
</tgroup>
|
||||||
|
</informaltable>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
<sect2>
|
<sect2>
|
||||||
<title>Включение <acronym>ALTQ</acronym></title>
|
<title>Включение <acronym>ALTQ</acronym></title>
|
||||||
|
|
||||||
|
@ -324,7 +468,9 @@ pflog_flags="" #
|
||||||
<acronym>ALTQ</acronym> поддерживается не всеми существующими
|
<acronym>ALTQ</acronym> поддерживается не всеми существующими
|
||||||
драйверами сетевых карт. Для просмотра списка поддерживаемых
|
драйверами сетевых карт. Для просмотра списка поддерживаемых
|
||||||
устройств в вашем релизе &os; обратитесь к странице справочника
|
устройств в вашем релизе &os; обратитесь к странице справочника
|
||||||
&man.altq.4;. Следующие параметры включат <acronym>ALTQ</acronym>
|
&man.altq.4;.</para>
|
||||||
|
|
||||||
|
<para>Следующие параметры включат <acronym>ALTQ</acronym>
|
||||||
и добавят дополнительную функциональность.</para>
|
и добавят дополнительную функциональность.</para>
|
||||||
|
|
||||||
<programlisting>options ALTQ
|
<programlisting>options ALTQ
|
||||||
|
@ -338,70 +484,42 @@ options ALTQ_NOPCC # Required for SMP build</programlisting>
|
||||||
<para><literal>options ALTQ</literal> включает подсистему
|
<para><literal>options ALTQ</literal> включает подсистему
|
||||||
<acronym>ALTQ</acronym>.</para>
|
<acronym>ALTQ</acronym>.</para>
|
||||||
|
|
||||||
<para><literal>options ALTQ_CBQ</literal> включает Class Based
|
<para><literal>options ALTQ_CBQ</literal> включает <emphasis>Class Based
|
||||||
Queuing (<acronym>CBQ</acronym>). <acronym>CBQ</acronym>
|
Queuing</emphasis> (<acronym>CBQ</acronym>). <acronym>CBQ</acronym>
|
||||||
позволяет распределять пропускную способность соединений
|
позволяет распределять пропускную способность соединений
|
||||||
по классам или очередям для выставления приоритетов трафика
|
по классам или очередям для выставления приоритетов трафика
|
||||||
на основе правил фильтрации.</para>
|
на основе правил фильтрации.</para>
|
||||||
|
|
||||||
<para><literal>options ALTQ_RED</literal> включает Random Early
|
<para><literal>options ALTQ_RED</literal> включает <emphasis>Random Early
|
||||||
Detection (<acronym>RED</acronym>). <acronym>RED</acronym>
|
Detection</emphasis> (<acronym>RED</acronym>). <acronym>RED</acronym>
|
||||||
используется для предотвращения перегрузки сети.
|
используется для предотвращения перегрузки сети.
|
||||||
<acronym>RED</acronym> вычисляет длину очереди и сравнивает ее
|
<acronym>RED</acronym> вычисляет длину очереди и сравнивает ее
|
||||||
с минимальной и максимальной границей очереди. Если
|
с минимальным и максимальным значением длины очереди. Если
|
||||||
очередь превышает максимум, все новые пакеты отбрасываются.
|
очередь превышает максимум, все новые пакеты будут отброшены.
|
||||||
В соответствии со своим названием, <acronym>RED</acronym>
|
В соответствии со своим названием, <acronym>RED</acronym>
|
||||||
отбрасывает пакеты из различные соединений в произвольном
|
отбрасывает пакеты из различные соединений в произвольном
|
||||||
порядке.</para>
|
порядке.</para>
|
||||||
|
|
||||||
<para><literal>options ALTQ_RIO</literal> включает Random Early
|
<para><literal>options ALTQ_RIO</literal> включает <emphasis>Random Early
|
||||||
Detection In and Out.</para>
|
Detection In and Out</emphasis>.</para>
|
||||||
|
|
||||||
<para><literal>options ALTQ_HFSC</literal> включает
|
<para><literal>options ALTQ_HFSC</literal> включает
|
||||||
Hierarchical Fair Service Curve Packet Scheduler. Дополнительная
|
<emphasis>Hierarchical Fair Service Curve Packet Scheduler</emphasis>.
|
||||||
|
Дополнительная
|
||||||
информация о <acronym>HFSC</acronym> находится по адресу: <ulink
|
информация о <acronym>HFSC</acronym> находится по адресу: <ulink
|
||||||
url="http://www-2.cs.cmu.edu/~hzhang/HFSC/main.html"></ulink>.
|
url="http://www-2.cs.cmu.edu/~hzhang/HFSC/main.html"></ulink>.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para><literal>options ALTQ_PRIQ</literal> включает Priority
|
<para><literal>options ALTQ_PRIQ</literal> включает <emphasis>Priority
|
||||||
Queuing (<acronym>PRIQ</acronym>). <acronym>PRIQ</acronym>
|
Queuing</emphasis> (<acronym>PRIQ</acronym>). <acronym>PRIQ</acronym>
|
||||||
всегда пропускает трафик из более высокой очереди
|
всегда первым пропускает трафик из очереди c более высоким
|
||||||
первым.</para>
|
приоритетом.</para>
|
||||||
|
|
||||||
<para><literal>options ALTQ_NOPCC</literal> включает
|
<para><literal>options ALTQ_NOPCC</literal> включает
|
||||||
поддержку <acronym>SMP</acronym> для <acronym>ALTQ</acronym>.
|
поддержку <acronym>SMP</acronym> для <acronym>ALTQ</acronym>.
|
||||||
Эта опция необходима для <acronym>SMP</acronym>
|
Эта опция необходима для <acronym>SMP</acronym>
|
||||||
систем.</para>
|
систем.</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2>
|
|
||||||
<title>Создание правил фильтрации</title>
|
|
||||||
|
|
||||||
<para>Пакет PF читает конфигурацию из файла &man.pf.conf.5;; пакеты
|
|
||||||
отвергаются, пропускаются или модифицируются в соответствии с
|
|
||||||
правилами и определениями из этого файла. В стандартную поставку
|
|
||||||
&os; входит файл <filename>/etc/pf.conf</filename>, содержащий
|
|
||||||
полезные примеры с комментариями.</para>
|
|
||||||
|
|
||||||
<para>Несмотря на наличие собственного для &os; файла
|
|
||||||
<filename>/etc/pf.conf</filename>, синтаксис его совпадает с
|
|
||||||
OpenBSD. Отличное руководство по конфигурации
|
|
||||||
<application>pf</application>, написанное группой разработки OpenBSD,
|
|
||||||
расположено по адресу
|
|
||||||
<ulink url="http://www.openbsd.org/faq/pf/"></ulink>.</para>
|
|
||||||
|
|
||||||
<warning>
|
|
||||||
<para>Изучая Руководство PF, имейте в виду, что различные версии
|
|
||||||
&os; содержат разные версии pf. <application>pf</application>
|
|
||||||
в &os; 5.X соответствует OpenBSD версии 3.5, в &os; 6.X
|
|
||||||
pf соответствует OpenBSD версии 3.7.</para>
|
|
||||||
</warning>
|
|
||||||
|
|
||||||
<para>&a.pf; является хорошим местом, чтобы задавать вопросы по
|
|
||||||
конфигурации и использованию пакета <application>pf</application>.
|
|
||||||
Не забудьте проверить архивы списка рассылки перед тем, как
|
|
||||||
задавать вопрос.</para>
|
|
||||||
</sect2>
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="firewalls-ipf">
|
<sect1 id="firewalls-ipf">
|
||||||
|
@ -421,18 +539,18 @@ options ALTQ_NOPCC # Required for SMP build</programlisting>
|
||||||
<para>Автором IPFILTER является Darren Reed. IPFILTER не
|
<para>Автором IPFILTER является Darren Reed. IPFILTER не
|
||||||
зависит от операционной системы: это приложение с открытыми
|
зависит от операционной системы: это приложение с открытыми
|
||||||
исходными текстами, которое было портировано на операционные
|
исходными текстами, которое было портировано на операционные
|
||||||
системы &os;, NetBSD, OpenBSD, SunOS, HP/UX, и Solaris.
|
системы &os;, NetBSD, OpenBSD, &sunos;, HP/UX, и &solaris;.
|
||||||
IPFILTER активно разрабатывается и поддерживается, регулярно
|
IPFILTER активно разрабатывается и поддерживается, регулярно
|
||||||
выпускаются обновленные версии.</para>
|
выпускаются обновленные версии.</para>
|
||||||
|
|
||||||
<para>IPFILTER основан на межсетевом экране уровня ядра, механизм
|
<para>IPFILTER основан на межсетевом экране и механизме
|
||||||
<acronym>NAT</acronym> может управляться и контролироваться
|
<acronym>NAT</acronym> уровня ядра, которые управляются и контролируются
|
||||||
через пользовательский интерфейс. Правила межсетевого экрана
|
утилитами уровня пользовательских процессов. Правила межсетевого экрана
|
||||||
могут устанавливаться или удаляться утилитой &man.ipf.8;.
|
могут устанавливаться или удаляться утилитой &man.ipf.8;.
|
||||||
Правила <acronym>NAT</acronym> могут устанавливаться или
|
Правила <acronym>NAT</acronym> могут устанавливаться или
|
||||||
удаляться утилитой &man.ipnat.1;. Утилита &man.ipfstat.8;
|
удаляться утилитой &man.ipnat.1;. Утилита &man.ipfstat.8;
|
||||||
выводит статистику IPFILTER для ядра. Программа
|
выводит статистику IPFILTER для ядра. Программа
|
||||||
&man.ipmon.8; заносит действия IPFILTER в файлы системных
|
&man.ipmon.8; может заносить действия IPFILTER в файлы системных
|
||||||
протоколов.</para>
|
протоколов.</para>
|
||||||
|
|
||||||
<para>IPF был первоначально написан с использованием правила
|
<para>IPF был первоначально написан с использованием правила
|
||||||
|
@ -440,7 +558,7 @@ options ALTQ_NOPCC # Required for SMP build</programlisting>
|
||||||
с правилами без сохранения состояния. Со временем IPF
|
с правилами без сохранения состояния. Со временем IPF
|
||||||
был расширен и включает параметры <quote>quick</quote> и
|
был расширен и включает параметры <quote>quick</quote> и
|
||||||
<quote>keep state</quote> (сохранение состояния), которые
|
<quote>keep state</quote> (сохранение состояния), которые
|
||||||
кардинальным образом изменяют обработку пакетов.
|
кардинальным образом изменяют логику обработки пакетов.
|
||||||
Официальная документация IPF включает традиционные параметры
|
Официальная документация IPF включает традиционные параметры
|
||||||
правил с традиционной последовательностью обработки пакетов.
|
правил с традиционной последовательностью обработки пакетов.
|
||||||
Измененные функции включены в виде дополнительных параметров,
|
Измененные функции включены в виде дополнительных параметров,
|
||||||
|
@ -451,23 +569,12 @@ options ALTQ_NOPCC # Required for SMP build</programlisting>
|
||||||
состояния <quote>keep state</quote>. Это основа для создания
|
состояния <quote>keep state</quote>. Это основа для создания
|
||||||
включающего межсетевого экрана.</para>
|
включающего межсетевого экрана.</para>
|
||||||
|
|
||||||
<!-- практически полное дублирование вышеизложенного
|
<para>Детальное описание традиционных методов обработки правил:
|
||||||
<para>An inclusive firewall only allows packets matching the
|
|
||||||
rules to pass through. This way you can control what services
|
|
||||||
can originate behind the firewall destined for the public
|
|
||||||
Internet and also control the services which can originate from
|
|
||||||
the public Internet accessing your private network. Everything
|
|
||||||
else is blocked and logged by default design. Inclusive
|
|
||||||
firewalls are much, much more secure than exclusive firewall
|
|
||||||
rule sets and is the only rule set type covered herein.</para>
|
|
||||||
-->
|
|
||||||
|
|
||||||
<para>Детальное описание методов обработки правил:
|
|
||||||
<ulink url="http://www.obfuscation.org/ipf/ipf-howto.html#TOC_1"></ulink>
|
<ulink url="http://www.obfuscation.org/ipf/ipf-howto.html#TOC_1"></ulink>
|
||||||
и
|
и
|
||||||
<ulink url="http://coombs.anu.edu.au/~avalon/ip-filter.html"></ulink>.</para>
|
<ulink url="http://coombs.anu.edu.au/~avalon/ip-filter.html"></ulink>.</para>
|
||||||
|
|
||||||
<para>IPF FAQ
|
<para>IPF FAQ находится по адресу
|
||||||
<ulink url="http://www.phildev.net/ipf/index.html"></ulink>.</para>
|
<ulink url="http://www.phildev.net/ipf/index.html"></ulink>.</para>
|
||||||
|
|
||||||
<para>Архив списка рассылки по IPFilter с возможностью поиска доступен
|
<para>Архив списка рассылки по IPFilter с возможностью поиска доступен
|
||||||
|
@ -484,10 +591,10 @@ options ALTQ_NOPCC # Required for SMP build</programlisting>
|
||||||
|
|
||||||
<para>IPF включен в базовую систему &os; в качестве отдельного
|
<para>IPF включен в базовую систему &os; в качестве отдельного
|
||||||
загружаемого модуля. Система динамически загрузит модуль IPF,
|
загружаемого модуля. Система динамически загрузит модуль IPF,
|
||||||
если в rc.conf указана переменная
|
если в <filename>rc.conf</filename> указана переменная
|
||||||
<literal>ipfilter_enable="YES"</literal>. Модуль создается
|
<literal>ipfilter_enable="YES"</literal>. Модуль создается
|
||||||
с включенным протоколированием и правилом по умолчанию
|
с включенным протоколированием и правилом по умолчанию
|
||||||
<literal>block all</literal> (пропускать все). Для изменения
|
<literal>pass all</literal> (пропускать все). Для изменения
|
||||||
правила по умолчанию не обязательно собирать ядро с новыми
|
правила по умолчанию не обязательно собирать ядро с новыми
|
||||||
параметрами. Просто добавьте в конец набора правило,
|
параметрами. Просто добавьте в конец набора правило,
|
||||||
блокирующее все пакеты.</para>
|
блокирующее все пакеты.</para>
|
||||||
|
@ -516,7 +623,7 @@ options ALTQ_NOPCC # Required for SMP build</programlisting>
|
||||||
<secondary>параметры ядра</secondary>
|
<secondary>параметры ядра</secondary>
|
||||||
</indexterm>
|
</indexterm>
|
||||||
|
|
||||||
<para>Сборка ядра с &os; включением IPF не обязательна.
|
<para>Включение IPF в ядро &os; не является обязательным требованием.
|
||||||
Эта процедура представлена здесь в качестве дополнительной
|
Эта процедура представлена здесь в качестве дополнительной
|
||||||
информации. При включении IPF в ядро загружаемый модуль
|
информации. При включении IPF в ядро загружаемый модуль
|
||||||
не используется.</para>
|
не используется.</para>
|
||||||
|
@ -580,7 +687,7 @@ ipnat_rules="/etc/ipnat.rules" #
|
||||||
<primary><command>ipf</command></primary>
|
<primary><command>ipf</command></primary>
|
||||||
</indexterm>
|
</indexterm>
|
||||||
|
|
||||||
<para>Команда ipf используется для загрузки файла с правилами.
|
<para>Команда &man.ipf.8; используется для загрузки файла с правилами.
|
||||||
Обычно создается файл, содержащий подготовленный набор
|
Обычно создается файл, содержащий подготовленный набор
|
||||||
правил, который полностью замещает набор, используемый
|
правил, который полностью замещает набор, используемый
|
||||||
на данный момент:</para>
|
на данный момент:</para>
|
||||||
|
@ -591,14 +698,15 @@ ipnat_rules="/etc/ipnat.rules" #
|
||||||
|
|
||||||
<para><option>-f</option> указывает файл с правилами, который необходимо загрузить.</para>
|
<para><option>-f</option> указывает файл с правилами, который необходимо загрузить.</para>
|
||||||
|
|
||||||
<para>Таким образом, после внесения изменений в файл правил и
|
<para>Это дает вам возможность отредактировать файл с правилами,
|
||||||
запуска вышеприведенной команды IPF, набор правил межсетевого экрана
|
запустить вышеприведенную команду IPF, тем самым обновить набор правил
|
||||||
обновляется без перезагрузки системы. Для обновления правил
|
работающего межсетевого экрана без перезагрузки системы. Для
|
||||||
|
обновления правил
|
||||||
такой подход очень удобен, поскольку команду можно выполнять
|
такой подход очень удобен, поскольку команду можно выполнять
|
||||||
столько раз, сколько нужно.</para>
|
столько раз, сколько нужно.</para>
|
||||||
|
|
||||||
<para>На странице справочной системы &man.ipf.8; находится
|
<para>На странице справочной системы &man.ipf.8; находится
|
||||||
подробная информация по флагам этой команды.</para>
|
подробная информация по всем флагам этой команды.</para>
|
||||||
|
|
||||||
<para>Набор правил для команды &man.ipf.8; должен быть в виде
|
<para>Набор правил для команды &man.ipf.8; должен быть в виде
|
||||||
стандартного текстового файла. Правила, написанные в виде
|
стандартного текстового файла. Правила, написанные в виде
|
||||||
|
@ -654,7 +762,8 @@ ipnat_rules="/etc/ipnat.rules" #
|
||||||
|
|
||||||
<para>При задании флага <option>-i</option> или <option>-o</option>
|
<para>При задании флага <option>-i</option> или <option>-o</option>
|
||||||
соответственно для входящих или
|
соответственно для входящих или
|
||||||
или исходящих пакетов, будет получен и отображен список правил,
|
исходящих пакетов, команда извлечет и отобразит соответствующий
|
||||||
|
список правил, установленных и
|
||||||
используемых на данный момент.</para>
|
используемых на данный момент.</para>
|
||||||
|
|
||||||
<para><command>ipfstat -in</command> отображает правила, применяемые
|
<para><command>ipfstat -in</command> отображает правила, применяемые
|
||||||
|
@ -708,16 +817,16 @@ ipnat_rules="/etc/ipnat.rules" #
|
||||||
|
|
||||||
<para>Для того, чтобы стало возможно использование команды
|
<para>Для того, чтобы стало возможно использование команды
|
||||||
<command>ipmon</command>, необходимо включить параметр ядра
|
<command>ipmon</command>, необходимо включить параметр ядра
|
||||||
IPFILTER_LOG. Эта команда может использоваться в двух различных
|
<literal>IPFILTER_LOG</literal>. Эта команда может использоваться в двух различных
|
||||||
режимах. В основном режиме, который используется по умолчанию,
|
режимах. В основном режиме, который используется по умолчанию,
|
||||||
она используется без флага <option>-D</option>.</para>
|
она используется без флага <option>-D</option>.</para>
|
||||||
|
|
||||||
<para>В режиме даемона создается непрерывный протокол, и возможен
|
<para>В режиме даемона создается непрерывный протокол, и возможен
|
||||||
просмотр предыдущих событий. В этом режиме IPFILTER работает
|
просмотр предыдущих событий. В этом режиме IPFILTER работает
|
||||||
в &os;. Поскольку в &os; встроена функция ротации файлов
|
в &os;. Поскольку в &os; встроена функция ротации файлов
|
||||||
протокола, лучше использовать syslogd, чем используемый по
|
протокола, лучше использовать &man.syslogd.8;, чем используемый по
|
||||||
умолчанию вывод в обычный файл. В <filename>rc.conf</filename>
|
умолчанию вывод в обычный файл. В <filename>rc.conf</filename>
|
||||||
по умолчанию ipmon_flags имеет значение <option>-Ds</option>:</para>
|
по умолчанию <literal>ipmon_flags</literal> имеет значение <option>-Ds</option>:</para>
|
||||||
|
|
||||||
<programlisting>ipmon_flags="-Ds" # D = start as daemon
|
<programlisting>ipmon_flags="-Ds" # D = start as daemon
|
||||||
# s = log to syslog
|
# s = log to syslog
|
||||||
|
@ -725,9 +834,9 @@ ipnat_rules="/etc/ipnat.rules" #
|
||||||
# n = map IP & port to names</programlisting>
|
# n = map IP & port to names</programlisting>
|
||||||
|
|
||||||
<para>Описывать преимущества протоколирования излишне. Например,
|
<para>Описывать преимущества протоколирования излишне. Например,
|
||||||
оно дает возможность просмотра информации о отброшенных
|
оно дает возможность отложенного просмотра информации об отброшенных
|
||||||
пакетах, откуда они пришли и куда направлялись. Это дает
|
пакетах, откуда они пришли и куда направлялись.
|
||||||
определенные возможности отслеживания атак.</para>
|
Эта информация существенно помогает при отслеживании атак.</para>
|
||||||
|
|
||||||
<para>Даже с включенным протоколированием, IPF не ведет протокол
|
<para>Даже с включенным протоколированием, IPF не ведет протокол
|
||||||
для каждого правила. Администратор межсетевого экран должен решить,
|
для каждого правила. Администратор межсетевого экран должен решить,
|
||||||
|
@ -735,26 +844,25 @@ ipnat_rules="/etc/ipnat.rules" #
|
||||||
слово log к этим правилам. Обычно протоколируются только правила,
|
слово log к этим правилам. Обычно протоколируются только правила,
|
||||||
отбрасывающие пакеты.</para>
|
отбрасывающие пакеты.</para>
|
||||||
|
|
||||||
<para>Довольно часто правило по умолчанию, запрещающее прохождение
|
<para>Включение в набор последнего правила, запрещающего прохождение
|
||||||
пакетов, включается в набор последним, и для него применяется
|
пакетов, в сочетании с ключевым словом <literal>log</literal> является
|
||||||
ключевое слово log. Так вы можете увидеть все пакеты, не
|
довольно распространённой практикой. Так вы можете увидеть все пакеты,
|
||||||
|
не
|
||||||
попадающие ни под одно правило набора.</para>
|
попадающие ни под одно правило набора.</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2>
|
<sect2>
|
||||||
<title>Протоколирование IPMON</title>
|
<title>Протоколирование IPMON</title>
|
||||||
|
|
||||||
<para>Для сбора данных <application>Syslogd</application>
|
<para>Для разделения собираемых данных
|
||||||
использует свой собственный
|
<application>syslogd</application> использует свой собственный
|
||||||
специальный метод. Он использует группировку по категории
|
специальный метод. Он использует группировку по категории
|
||||||
(<quote>facility</quote>) и уровню (<quote>level</quote>).
|
(<quote>facility</quote>) и уровню (<quote>level</quote>).
|
||||||
IPMON в режиме <option>-Ds</option> использует
|
IPMON в режиме <option>-Ds</option> использует
|
||||||
<literal>security</literal>
|
<literal>local0</literal>
|
||||||
в качестве имени <quote>категории</quote>.
|
в качестве имени <quote>категории</quote>.
|
||||||
Все протоколируемые IPMON данные также
|
Для дальнейшего разделения
|
||||||
отправляются на <literal>security</literal>.
|
протоколируемых данных, если такое необходимо, могут быть использованы следующие
|
||||||
Для сбора
|
|
||||||
протоколируемых данных могут быть использованы следующие
|
|
||||||
уровни:</para>
|
уровни:</para>
|
||||||
|
|
||||||
<screen>LOG_INFO - packets logged using the "log" keyword as the action rather than pass or block.
|
<screen>LOG_INFO - packets logged using the "log" keyword as the action rather than pass or block.
|
||||||
|
@ -765,29 +873,29 @@ LOG_ERR - packets which have been logged and which can be considered short</scre
|
||||||
|
|
||||||
<para>Для указания IPFILTER протоколировать все данные в
|
<para>Для указания IPFILTER протоколировать все данные в
|
||||||
<filename>/var/log/ipfilter.log</filename>, создайте этот
|
<filename>/var/log/ipfilter.log</filename>, создайте этот
|
||||||
файл следующей командой:</para>
|
файл заранее, выполнив следующую команду:</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>touch /var/log/ipfilter.log</userinput></screen>
|
<screen>&prompt.root; <userinput>touch /var/log/ipfilter.log</userinput></screen>
|
||||||
|
|
||||||
<para>Функционирование syslog управляется настройками в файле
|
<para>Функционирование &man.syslogd.8; управляется настройками в файле
|
||||||
<filename>/etc/syslog.conf</filename>. Файл
|
<filename>/etc/syslog.conf</filename>. Файл
|
||||||
<filename>syslog.conf</filename> позволяет достаточно гибко
|
<filename>syslog.conf</filename> позволяет достаточно гибко
|
||||||
настроить обработку системных сообщений, выдаваемых программами,
|
настроить обработку системных сообщений, выдаваемых программами,
|
||||||
такими как IPF.</para>
|
такими как IPF.</para>
|
||||||
|
|
||||||
<para>Добавьте в <filename>/etc/syslog.conf</filename>
|
<para>Добавьте в <filename>/etc/syslog.conf</filename>
|
||||||
следующий оператор:</para>
|
следующую запись:</para>
|
||||||
|
|
||||||
<programlisting>security.* /var/log/ipfilter.log</programlisting>
|
<programlisting>local0.* /var/log/ipfilter.log</programlisting>
|
||||||
|
|
||||||
<para><literal>security.*</literal> означает запись всех
|
<para><literal>local0.*</literal> означает запись всех
|
||||||
протоколируемых сообщений в указанный файл.</para>
|
протоколируемых сообщений в указанный файл.</para>
|
||||||
|
|
||||||
<para>Для применения внесенных в
|
<para>Для применения внесенных в
|
||||||
<filename>/etc/syslog.conf</filename> изменений вы можете
|
<filename>/etc/syslog.conf</filename> изменений вы можете
|
||||||
перезагрузиться или заставить syslog перечитать
|
перезагрузиться или заставить &man.syslogd.8; перечитать
|
||||||
<filename>/etc/syslog.conf</filename>, выполнив команду
|
<filename>/etc/syslog.conf</filename>, выполнив команду
|
||||||
<command>/etc/rc.d/syslogd reload</command></para>
|
<command>/etc/rc.d/syslogd reload</command>.</para>
|
||||||
|
|
||||||
<para>Не забудьте отредактировать
|
<para>Не забудьте отредактировать
|
||||||
<filename>/etc/newsyslog.conf</filename> для ротации только
|
<filename>/etc/newsyslog.conf</filename> для ротации только
|
||||||
|
@ -847,23 +955,23 @@ LOG_ERR - packets which have been logged and which can be considered short</scre
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para><literal>PR</literal>, с последующим именем или
|
<para><literal>PR</literal>, с последующим именем или
|
||||||
номером протокола, например PR tcp.</para>
|
номером протокола, например <literal>PR tcp</literal>.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para><literal>len</literal>, с последующей длиной заголовка
|
<para><literal>len</literal>, с последующей длиной заголовка
|
||||||
и общей длиной пакета, например len 20 40.</para>
|
и общей длиной пакета, например <literal>len 20 40</literal>.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</orderedlist>
|
</orderedlist>
|
||||||
|
|
||||||
<para>Для <acronym>TCP</acronym> пакетов добавляется дополнительное
|
<para>Для <acronym>TCP</acronym> пакетов добавляется дополнительное
|
||||||
поле, начинающееся с дефиса, за которым следуют буквы,
|
поле, начинающееся с дефиса, за которым следуют буквы,
|
||||||
соответствующие установленным флагам. На странице справочника
|
соответствующие установленным флагам. На странице справочника
|
||||||
находится список букв и флагов.</para>
|
&man.ipf.5; находится список букв и флагов.</para>
|
||||||
|
|
||||||
<para>Для пакетов ICMP, в конце находятся два поля,
|
<para>Для пакетов ICMP, в конце находятся два поля,
|
||||||
одно всегда <quote>ICMP</quote>, а во втором тип
|
одно всегда <quote>ICMP</quote>, а второе содержит тип и подтип
|
||||||
ICMP сообщения (message и sub-message),
|
ICMP сообщения (message и sub-message), разделенные символом косой черты,
|
||||||
например ICMP 3/3 для сообщения <quote>port
|
например ICMP 3/3 для сообщения <quote>port
|
||||||
unreachable</quote>.</para>
|
unreachable</quote>.</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
@ -873,7 +981,7 @@ LOG_ERR - packets which have been logged and which can be considered short</scre
|
||||||
|
|
||||||
<para>Некоторые опытные пользователи IPF создают файл правил,
|
<para>Некоторые опытные пользователи IPF создают файл правил,
|
||||||
поддерживающий использование символьной подстановки. Основное
|
поддерживающий использование символьной подстановки. Основное
|
||||||
преимущество использования такого скрипта заключается в
|
преимущество использования такого подхода заключается в
|
||||||
возможности изменения значения, присваиваемого символьному
|
возможности изменения значения, присваиваемого символьному
|
||||||
имени, в результате чего во всех правилах, содержащих эту
|
имени, в результате чего во всех правилах, содержащих эту
|
||||||
символьную подстановку, будет использоваться новое значение.
|
символьную подстановку, будет использоваться новое значение.
|
||||||
|
@ -881,8 +989,8 @@ LOG_ERR - packets which have been logged and which can be considered short</scre
|
||||||
переменные, а затем использовать их сразу в нескольких
|
переменные, а затем использовать их сразу в нескольких
|
||||||
правилах. Ниже дан пример такого использования.</para>
|
правилах. Ниже дан пример такого использования.</para>
|
||||||
|
|
||||||
<para>Синтаксис скрипта совместим с sh, csh, и
|
<para>Синтаксис скрипта совместим с &man.sh.1;, &man.csh.1;, и
|
||||||
tcsh.</para>
|
&man.tcsh.1;.</para>
|
||||||
|
|
||||||
<para>Символьная подстановка предваряется знаком доллара:
|
<para>Символьная подстановка предваряется знаком доллара:
|
||||||
<literal>$</literal>.</para>
|
<literal>$</literal>.</para>
|
||||||
|
@ -929,8 +1037,8 @@ EOF
|
||||||
<para>Это все, что требовалось сделать. В данном примере сами
|
<para>Это все, что требовалось сделать. В данном примере сами
|
||||||
правила не важны; важно то, как используется символьная подстановка.
|
правила не важны; важно то, как используется символьная подстановка.
|
||||||
Если вышеприведенный пример помещен в файл
|
Если вышеприведенный пример помещен в файл
|
||||||
<filename>/etc/ipf.rules.script</filename>, вы можете
|
<filename>/etc/ipf.rules.script</filename>, то набор правил можно
|
||||||
перезагрузить набор правил, введя следующую команду:</para>
|
перезагрузить, введя следующую команду:</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>sh /etc/ipf.rules.script</userinput></screen>
|
<screen>&prompt.root; <userinput>sh /etc/ipf.rules.script</userinput></screen>
|
||||||
|
|
||||||
|
@ -957,8 +1065,8 @@ EOF
|
||||||
строку <literal>ipfilter_enable="NO"</literal> (это значение
|
строку <literal>ipfilter_enable="NO"</literal> (это значение
|
||||||
по умолчанию) в файл <filename>/etc/rc.conf</filename>.</para>
|
по умолчанию) в файл <filename>/etc/rc.conf</filename>.</para>
|
||||||
|
|
||||||
<para>Поместите скрипт, подобный нижеприведенному в каталог
|
<para>Поместите скрипт, подобный нижеприведенному, в каталог
|
||||||
<filename>/usr/local/etc/rc.d/</filename>. У него должно
|
<filename class="directory">/usr/local/etc/rc.d/</filename>. У него должно
|
||||||
быть однозначно говорящее о его назначении имя, например
|
быть однозначно говорящее о его назначении имя, например
|
||||||
<filename>ipf.loadrules.sh</filename>. Расширение
|
<filename>ipf.loadrules.sh</filename>. Расширение
|
||||||
<filename>.sh</filename> обязательно.</para>
|
<filename>.sh</filename> обязательно.</para>
|
||||||
|
@ -966,44 +1074,41 @@ EOF
|
||||||
<programlisting>#!/bin/sh
|
<programlisting>#!/bin/sh
|
||||||
sh /etc/ipf.rules.script</programlisting>
|
sh /etc/ipf.rules.script</programlisting>
|
||||||
|
|
||||||
<para>Права на этот скрипт должны разрешать чтение, запись и
|
<para>Права, установленные на этот файл, должны разрешать чтение, запись и
|
||||||
выполнение владельцу <username>root</username>.</para>
|
выполнение владельцу <username>root</username>.</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>chmod 700 /usr/local/etc/rc.d/ipf.loadrules.sh</userinput></screen>
|
<screen>&prompt.root; <userinput>chmod 700 /usr/local/etc/rc.d/ipf.loadrules.sh</userinput></screen>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
<para>Теперь, при загрузке системы, правила IPF будут
|
<para>Теперь, правила IPF будут загружаться при загрузке
|
||||||
загружены.</para>
|
системы.</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2>
|
<sect2>
|
||||||
<title>IPF Rule Sets</title>
|
<title>Наборы правил IPF</title>
|
||||||
|
|
||||||
<!-- очередное разжевывание ip basics -->
|
|
||||||
<para>Набор правил ipf это группа правил, составленных для
|
<para>Набор правил ipf это группа правил, составленных для
|
||||||
пропускания или блокирования пакетов на основе их содержимого.
|
пропускания или блокирования пакетов на основе их содержимого.
|
||||||
Двусторонний обмен пакетами между хостами составляет сессию.
|
Двусторонний обмен пакетами между хостами составляет сессию.
|
||||||
Межсетевой экран обрабатывает пакеты в обеих направлениях,
|
Межсетевой экран обрабатывает как входящие из Интернет пакеты,
|
||||||
<!--некорректно: The firewall rule set processes the
|
так и исходящие пакеты, которые сгенерированы самой системой в ответ
|
||||||
packet two times, once on its arrival from the public Internet
|
на входящий трафик. Для каждой службы <acronym>TCP/IP</acronym>
|
||||||
host and again as it leaves for its return trip back to the
|
(например, telnet, www, mail, и т.п.) назначен протокол и номер
|
||||||
public Internet host. Each TCP/IP service (i.e. telnet, www,
|
привилегированного (прослушиваемого) порта. Пакеты, предназначенные
|
||||||
mail, etc.) is predefined by its protocol, source and
|
для определенного сервиса, порождаются с некоторым исходящим адресом
|
||||||
destination IP address, or the source and destination port
|
и портом из непривилегированного диапазона и направляются
|
||||||
number.-->
|
на определенный адрес и определенный порт назначения. Все
|
||||||
Каждый IP пакет имеет такие характеристики как порт и адрес
|
упомянутые параметры (номера портов и адреса) могут использоваться
|
||||||
источника и назначения. Эти основные характеристики используются
|
как критерии выбора в правилах, пропускающих или блокирующих доступ
|
||||||
для пропускания или блокирования пакетов.</para>
|
к службам <acronym>TCP/IP</acronym>.</para>
|
||||||
|
|
||||||
|
|
||||||
<indexterm>
|
<indexterm>
|
||||||
<primary>IPFILTER</primary>
|
<primary>IPFILTER</primary>
|
||||||
<secondary>порядок обработки правил</secondary>
|
<secondary>порядок обработки правил</secondary>
|
||||||
</indexterm>
|
</indexterm>
|
||||||
|
|
||||||
<!-- XXX: something like this already in
|
|
||||||
<xref linkend="firewalls-concepts">
|
|
||||||
AND: the para below is repeated 3 times in this chapter-->
|
|
||||||
<para>IPF был первоначально написан с использованием логики
|
<para>IPF был первоначально написан с использованием логики
|
||||||
<quote>последнее совпадающее правило побеждает</quote> и
|
<quote>последнее совпадающее правило побеждает</quote> и
|
||||||
только с правилами без сохранения состояния. Со временем
|
только с правилами без сохранения состояния. Со временем
|
||||||
|
@ -1016,18 +1121,6 @@ sh /etc/ipf.rules.script</programlisting>
|
||||||
Это основа для создания набора правил включающего межсетевого
|
Это основа для создания набора правил включающего межсетевого
|
||||||
экрана.</para>
|
экрана.</para>
|
||||||
|
|
||||||
<!-- опять network basics, кроме того то же самое повторяется ниже по
|
|
||||||
тексту практически один в один
|
|
||||||
<para>An inclusive firewall only allows services matching the
|
|
||||||
rules through. This way you can control what services can
|
|
||||||
originate behind the firewall destined for the public Internet
|
|
||||||
and also control the services which can originate from the
|
|
||||||
public Internet accessing your private network. Everything
|
|
||||||
else is blocked and logged by default design. Inclusive
|
|
||||||
firewalls are much, much securer than exclusive firewall rule
|
|
||||||
sets and is the only rule set type covered herein.</para>
|
|
||||||
-->
|
|
||||||
|
|
||||||
<warning>
|
<warning>
|
||||||
<para>При работе с правилами межсетевого экрана, будьте
|
<para>При работе с правилами межсетевого экрана, будьте
|
||||||
<emphasis>очень осторожны</emphasis>. Некоторые
|
<emphasis>очень осторожны</emphasis>. Некоторые
|
||||||
|
@ -1040,9 +1133,7 @@ sh /etc/ipf.rules.script</programlisting>
|
||||||
</warning>
|
</warning>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<!-- Перевод остальной части раздела IPF отложен до исправления
|
<!-- Перевод остальной части раздела IPF отложен ... -->
|
||||||
ошибок в следующем sect2 оригинальной версии -->
|
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="firewalls-ipfw">
|
<sect1 id="firewalls-ipfw">
|
||||||
|
|
Loading…
Reference in a new issue