diff options
author | Taras Korenko <taras@FreeBSD.org> | 2010-08-18 16:32:06 +0000 |
---|---|---|
committer | Taras Korenko <taras@FreeBSD.org> | 2010-08-18 16:32:06 +0000 |
commit | b029def3dec11ccd08febca7369899a5565d3519 (patch) | |
tree | 2cfaaddcf4a28965784b5cebd37ffd04820b2247 /ru_RU.KOI8-R | |
parent | 4fbfd04300c5e0c7c13ff1ee0ed87e9e0818b71c (diff) | |
download | doc-b029def3dec11ccd08febca7369899a5565d3519.tar.gz doc-b029def3dec11ccd08febca7369899a5565d3519.zip |
MFen: handbook/firewalls/chapter.sgml 1.70 --> 1.94
Notes
Notes:
svn path=/head/; revision=36264
Diffstat (limited to 'ru_RU.KOI8-R')
-rw-r--r-- | ru_RU.KOI8-R/books/handbook/firewalls/chapter.sgml | 485 |
1 files changed, 288 insertions, 197 deletions
diff --git a/ru_RU.KOI8-R/books/handbook/firewalls/chapter.sgml b/ru_RU.KOI8-R/books/handbook/firewalls/chapter.sgml index ea94b84a16..42a6cd9a60 100644 --- a/ru_RU.KOI8-R/books/handbook/firewalls/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/firewalls/chapter.sgml @@ -4,7 +4,7 @@ $FreeBSD$ $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 --> @@ -47,7 +47,7 @@ <para>Межсетевые экраны (firewall, брандмауэр) делают возможной фильтрацию входящего и исходящего - трафика, идущего через систему. Межсетевой экран использует один + трафика, идущего через вашу систему. Межсетевой экран использует один или более наборов <quote>правил</quote> для проверки сетевых пакетов при их входе или выходе через сетевое соединение, он или позволяет прохождение трафика или блокирует его. Правила @@ -73,9 +73,10 @@ <listitem> <para>Для поддержки преобразования сетевых адресов (network - address translation, <acronym>NAT</acronym>), что позволяет - использование во внутренней сети приватных - <acronym>IP</acronym> адресов (либо через один выделенный + address translation, <acronym>NAT</acronym>), что дает возможность + задействовать во внутренней сети приватные <acronym>IP</acronym> + адреса и совместно использовать одно подключение к сети Интернет + (либо через один выделенный <acronym>IP</acronym> адрес, либо через адрес из пула автоматически присваиваемых публичных адресов).</para> </listitem> @@ -135,10 +136,22 @@ Он пропускает только трафик, соответствующий правилам и блокирует все остальное.</para> - <para>Включающие межсетевые экраны обычно более безопасны, чем + <para>Включающий межсетевой экран обеспечивает гораздо большую степень + контроля исходящего трафика. Поэтому включающий межсетевой экран + является лучшим выбором для систем, предоставляющих сервисы в сети + Интернет. Он также контролирует тип трафика, порождаемого вне + и направляющегося в вашу приватную сеть. Трафик, не попавший в правила, + блокируется, а в файл протокола вносятся соответствующие записи. + Включающие межсетевые экраны обычно более безопасны, чем исключающие, поскольку они существенно уменьшают риск пропуска межсетевым экраном нежелательного трафика.</para> + <note> + <para>Если не указано иначе, то все приведенные в этом разделе примеры + наборов правил и конфигураций относятся к типу включающего межсетевого + экрана.</para> + </note> + <para>Безопасность может быть дополнительно повышена с использованием <quote>межсетевого экрана с сохранением состояния</quote>. Такой межсетевой экран сохраняет информацию @@ -149,37 +162,46 @@ (Denial of Service, отказ в обслуживании), если множество новых соединений открывается очень быстро. Большинство межсетевых экранов позволяют комбинировать поведение с сохранением - состояния и без сохранения состояния, что оптимально - для реальных применений.</para> + состояния и без сохранения состояния, что позволяет создавать + оптимальную конфигурацию для каждой конкретной системы.</para> </sect1> <sect1 id="firewalls-apps"> <title>Пакеты межсетевых экранов</title> - <para>В &os; встроено три программных межсетевых экрана. + <para>В базовую систему &os; встроено три программных межсетевых экрана. Это <emphasis>IPFILTER</emphasis> (известный также как <acronym>IPF</acronym>), <emphasis>IPFIREWALL</emphasis> (известный также как <acronym>IPFW</acronym>) и <emphasis>OpenBSD PacketFilter</emphasis> - (также известный как<acronym>PF</acronym>). - Помимо этого, &os; содержит два пакета ограничения трафика (шейпера): - &man.altq.4; и &man.dummynet.4;. Dummynet традиционно сильно связан с - <acronym>IPFW</acronym>, а <acronym>ALTQ</acronym> с - <acronym>IPF</acronym> и <acronym>PF</acronym>. - IPF, IPFW и PF для контроля исходящих и входящих пакетов + (также известный как <acronym>PF</acronym>). + Помимо этого, &os; содержит два пакета ограничения трафика + (по существу, предназначенных для контроля пропускной способности + сетевого соединения): &man.altq.4; и &man.dummynet.4;. Dummynet + традиционно сильно связан с <acronym>IPFW</acronym>, а + <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>Причина, по которой в &os; включено более одного пакета - межсетевых экранов, заключается в том, что разные сети выдвигают + межсетевых экранов, заключается в том, что разные пользователи выдвигают к ним различные требования и используют разные предпочтения. Нет одного пакета, который был бы очевидно лучше других.</para> <para>Автор предпочитает IPFILTER, поскольку его правила с сохранением состояния гораздо проще использовать совместно с <acronym>NAT</acronym>; кроме того, в него встроен - ftp прокси, упрощающий настройку безопасного внешнего использования - FTP.</para> + ftp прокси, что упрощает правила для фильтрации исходящих FTP + соединений.</para> <para>Поскольку все межсетевые экраны основаны на анализе значений выбранных полей заголовка пакета, для создания правил межсетевого экрана необходимо @@ -190,7 +212,19 @@ </sect1> <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> <primary>межсетевой экран</primary> @@ -206,44 +240,65 @@ возможностей, в котором есть опциональная поддержка <acronym>ALTQ</acronym> (Alternate Queuing). <acronym>ALTQ</acronym> предоставляет управление пропускной способностью - Quality of Service (<acronym>QoS</acronym>), позволяющее гарантировать - пропускную способность для различных сервисов на основе фильтрующих - правил. Проект OpenBSD поддерживает Руководство - Пользователя PF, которое не было внесено в этот раздел руководства - во избежание дублирования работы.</para> + Quality of Service (<acronym>QoS</acronym>).</para> + + <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;: + <para>Дополнительные сведения о PF для &os; можно получить с веб сайта: <ulink url="http://pf4freebsd.love2party.net/"></ulink>.</para> <sect2> - <title>Включение PF</title> + <title>Использование модуля ядра PF</title> + + <para>Чтобы загрузить PF как модуль ядра, добавьте следующую строку + в <filename>/etc/rc.conf</filename>:</para> + + <programlisting>pf_enable="YES"</programlisting> + + <para>Далее, выполните стартовый скрипт:</para> + + <screen>&prompt.root; <userinput>/etc/rc.d/pf start</userinput></screen> - <para>PF включен в базовую поставку &os; версии 5.3 и выше в качестве - отдельного загружаемого модуля. PF динамически подгружает модуль ядра - если включена переменная rc.conf <literal>pf_enable="YES"</literal>. - Загружаемый модуль создан с включенным &man.pflog.4;.</para> + <para>Учтите, модуль PF не загрузится, если он не сможет найти + конфигурационный файл с набором правил. По умолчанию размещение + файла с правилами следующее: <filename>/etc/pf.conf</filename>. + Если путь к файлу отличается от вышеприведённого, то внесите в + <filename>/etc/rc.conf</filename> строку вида:</para> + + <programlisting>pf_rules="<replaceable>/path/to/pf.conf</replaceable>"</programlisting> <note> - <para>Модуль предполагает, что файл конфигурации вашего ядра содержит - строки <literal>options INET</literal> и - <literal>device bpf</literal>. Если не определен параметр - <literal>NOINET6</literal> для &os; версий до 6.0-RELEASE и - <literal>NO_INET6</literal> для более поздних версий (например, - в файле &man.make.conf.5;), требуется также параметр - <literal>options INET6</literal>.</para> + <para>Начиная с версии &os; 7.0 файл с примерами конфигураций + (<filename>pf.conf</filename>) был перемещен из каталога + <filename class="directory">/etc/</filename> в каталог + <filename class="directory">/usr/share/examples/pf/</filename>. + Для версий &os;, предшествующих 7.0, размещение по умолчанию + — <filename class="directory">/etc/pf.conf</filename></para> </note> - <para>После загрузки модуля или пересборки ядра с поддержкой PF, - функциональность <application>pf</application> может управляться - при помощи команды <command>pfctl</command>.</para> + <para>Модуль <acronym>PF</acronym> можно также загрузить вручную:</para> + + <screen>&prompt.root; <userinput>kldload pf.ko</userinput></screen> + + <para>Поддержка ведения логов для <acronym>PF</acronym> обеспечивается + модулем <literal>pflog.ko</literal>, для загрузки которого добавьте + следующую строку в <filename>/etc/rc.conf</filename>:</para> + + <programlisting>pflog_enable="YES"</programlisting> - <para><application>pf</application> включается при помощи команды</para> + <para>и запустите на выполнение скрипт:</para> - <screen>&prompt.root; <userinput>pfctl -e</userinput></screen> + <screen>&prompt.root; <userinput>/etc/rc.d/pflog start</userinput></screen> - <para>Команда <command>pfctl</command> позволяет управлять правилами - <application>pf</application>. Дополнительную информацию следует - черпать из страницы справочника &man.pfctl.8;.</para> + <para>Если вам необходимы другие функциональные возможности + <acronym>PF</acronym>, то придется добавить поддержку + <acronym>PF</acronym> в ядро.</para> </sect2> <sect2> @@ -264,9 +319,18 @@ <secondary>device pfsync</secondary> </indexterm> - <para>Включение PF путем компиляции с ядром &os; не является обязательным - требованием, и описано здесь в качестве дополнительной информации. - При компиляции PF с ядром загружаемый модуль не используется.</para> + <para>Включение <acronym>PF</acronym> путем компиляции с ядром &os; не является обязательным + требованием, + однако вам может понадобиться + одна из функциональных возможностей, которая не включена в загружаемый + модуль. Например, &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 находится в <filename>/usr/src/sys/conf/NOTES</filename> и показан здесь:</para> @@ -276,7 +340,7 @@ device pflog device pfsync</programlisting> <para><literal>device pf</literal> включает поддержку межсетевого экрана - <quote>Packet Filter</quote>.</para> + <quote>Packet Filter</quote> (&man.pf.4;).</para> <para><literal>device pflog</literal> включает необязательное сетевое псевдоустройство &man.pflog.4;, которое может использоваться для @@ -286,19 +350,14 @@ device pfsync</programlisting> <para><literal>device pfsync</literal> включает необязательное сетевое псевдоустройство &man.pfsync.4;, используемое для - отслеживания <quote>изменений состояния</quote>. Поскольку оно - не входит в загружаемый модуль, для его использования необходимо - собрать собственное ядро.</para> - - <para>Эти настройки будут действовать только после сборки и установки - нового ядра.</para> + отслеживания <quote>изменений состояния</quote>.</para> </sect2> <sect2> <title>Доступные параметры rc.conf</title> - <para>Для активации PF во время загрузки в - <filename>/etc/rc.conf</filename> должны быть включены следующие + <para>Для активации <acronym>PF</acronym> и &man.pflog.4; во время + загрузки в &man.rc.conf.5; должны быть включены следующие переменные:</para> <programlisting>pf_enable="YES" # Включить PF (загрузить модуль если необходимо) @@ -317,6 +376,91 @@ pflog_flags="" # дополнительные флаги для запуска pflogd</progr </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> <title>Включение <acronym>ALTQ</acronym></title> <para><acronym>ALTQ</acronym> может быть включен только путем @@ -324,7 +468,9 @@ pflog_flags="" # дополнительные флаги для запуска pflogd</progr <acronym>ALTQ</acronym> поддерживается не всеми существующими драйверами сетевых карт. Для просмотра списка поддерживаемых устройств в вашем релизе &os; обратитесь к странице справочника - &man.altq.4;. Следующие параметры включат <acronym>ALTQ</acronym> + &man.altq.4;.</para> + + <para>Следующие параметры включат <acronym>ALTQ</acronym> и добавят дополнительную функциональность.</para> <programlisting>options ALTQ @@ -338,70 +484,42 @@ options ALTQ_NOPCC # Required for SMP build</programlisting> <para><literal>options ALTQ</literal> включает подсистему <acronym>ALTQ</acronym>.</para> - <para><literal>options ALTQ_CBQ</literal> включает Class Based - Queuing (<acronym>CBQ</acronym>). <acronym>CBQ</acronym> + <para><literal>options ALTQ_CBQ</literal> включает <emphasis>Class Based + Queuing</emphasis> (<acronym>CBQ</acronym>). <acronym>CBQ</acronym> позволяет распределять пропускную способность соединений по классам или очередям для выставления приоритетов трафика на основе правил фильтрации.</para> - <para><literal>options ALTQ_RED</literal> включает Random Early - Detection (<acronym>RED</acronym>). <acronym>RED</acronym> + <para><literal>options ALTQ_RED</literal> включает <emphasis>Random Early + Detection</emphasis> (<acronym>RED</acronym>). <acronym>RED</acronym> используется для предотвращения перегрузки сети. <acronym>RED</acronym> вычисляет длину очереди и сравнивает ее - с минимальной и максимальной границей очереди. Если - очередь превышает максимум, все новые пакеты отбрасываются. + с минимальным и максимальным значением длины очереди. Если + очередь превышает максимум, все новые пакеты будут отброшены. В соответствии со своим названием, <acronym>RED</acronym> отбрасывает пакеты из различные соединений в произвольном порядке.</para> - <para><literal>options ALTQ_RIO</literal> включает Random Early - Detection In and Out.</para> + <para><literal>options ALTQ_RIO</literal> включает <emphasis>Random Early + Detection In and Out</emphasis>.</para> <para><literal>options ALTQ_HFSC</literal> включает - Hierarchical Fair Service Curve Packet Scheduler. Дополнительная + <emphasis>Hierarchical Fair Service Curve Packet Scheduler</emphasis>. + Дополнительная информация о <acronym>HFSC</acronym> находится по адресу: <ulink url="http://www-2.cs.cmu.edu/~hzhang/HFSC/main.html"></ulink>. </para> - <para><literal>options ALTQ_PRIQ</literal> включает Priority - Queuing (<acronym>PRIQ</acronym>). <acronym>PRIQ</acronym> - всегда пропускает трафик из более высокой очереди - первым.</para> + <para><literal>options ALTQ_PRIQ</literal> включает <emphasis>Priority + Queuing</emphasis> (<acronym>PRIQ</acronym>). <acronym>PRIQ</acronym> + всегда первым пропускает трафик из очереди c более высоким + приоритетом.</para> <para><literal>options ALTQ_NOPCC</literal> включает поддержку <acronym>SMP</acronym> для <acronym>ALTQ</acronym>. Эта опция необходима для <acronym>SMP</acronym> систем.</para> </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 id="firewalls-ipf"> @@ -421,18 +539,18 @@ options ALTQ_NOPCC # Required for SMP build</programlisting> <para>Автором IPFILTER является Darren Reed. IPFILTER не зависит от операционной системы: это приложение с открытыми исходными текстами, которое было портировано на операционные - системы &os;, NetBSD, OpenBSD, SunOS, HP/UX, и Solaris. + системы &os;, NetBSD, OpenBSD, &sunos;, HP/UX, и &solaris;. IPFILTER активно разрабатывается и поддерживается, регулярно выпускаются обновленные версии.</para> - <para>IPFILTER основан на межсетевом экране уровня ядра, механизм - <acronym>NAT</acronym> может управляться и контролироваться - через пользовательский интерфейс. Правила межсетевого экрана + <para>IPFILTER основан на межсетевом экране и механизме + <acronym>NAT</acronym> уровня ядра, которые управляются и контролируются + утилитами уровня пользовательских процессов. Правила межсетевого экрана могут устанавливаться или удаляться утилитой &man.ipf.8;. Правила <acronym>NAT</acronym> могут устанавливаться или удаляться утилитой &man.ipnat.1;. Утилита &man.ipfstat.8; выводит статистику IPFILTER для ядра. Программа - &man.ipmon.8; заносит действия IPFILTER в файлы системных + &man.ipmon.8; может заносить действия IPFILTER в файлы системных протоколов.</para> <para>IPF был первоначально написан с использованием правила @@ -440,7 +558,7 @@ options ALTQ_NOPCC # Required for SMP build</programlisting> с правилами без сохранения состояния. Со временем IPF был расширен и включает параметры <quote>quick</quote> и <quote>keep state</quote> (сохранение состояния), которые - кардинальным образом изменяют обработку пакетов. + кардинальным образом изменяют логику обработки пакетов. Официальная документация IPF включает традиционные параметры правил с традиционной последовательностью обработки пакетов. Измененные функции включены в виде дополнительных параметров, @@ -451,23 +569,12 @@ options ALTQ_NOPCC # Required for SMP build</programlisting> состояния <quote>keep state</quote>. Это основа для создания включающего межсетевого экрана.</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>Детальное описание методов обработки правил: + <para>Детальное описание традиционных методов обработки правил: <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> - <para>IPF FAQ + <para>IPF FAQ находится по адресу <ulink url="http://www.phildev.net/ipf/index.html"></ulink>.</para> <para>Архив списка рассылки по IPFilter с возможностью поиска доступен @@ -484,10 +591,10 @@ options ALTQ_NOPCC # Required for SMP build</programlisting> <para>IPF включен в базовую систему &os; в качестве отдельного загружаемого модуля. Система динамически загрузит модуль IPF, - если в rc.conf указана переменная + если в <filename>rc.conf</filename> указана переменная <literal>ipfilter_enable="YES"</literal>. Модуль создается с включенным протоколированием и правилом по умолчанию - <literal>block all</literal> (пропускать все). Для изменения + <literal>pass all</literal> (пропускать все). Для изменения правила по умолчанию не обязательно собирать ядро с новыми параметрами. Просто добавьте в конец набора правило, блокирующее все пакеты.</para> @@ -516,7 +623,7 @@ options ALTQ_NOPCC # Required for SMP build</programlisting> <secondary>параметры ядра</secondary> </indexterm> - <para>Сборка ядра с &os; включением IPF не обязательна. + <para>Включение IPF в ядро &os; не является обязательным требованием. Эта процедура представлена здесь в качестве дополнительной информации. При включении IPF в ядро загружаемый модуль не используется.</para> @@ -580,7 +687,7 @@ ipnat_rules="/etc/ipnat.rules" # Определение файла правил для ipnat</programl <primary><command>ipf</command></primary> </indexterm> - <para>Команда ipf используется для загрузки файла с правилами. + <para>Команда &man.ipf.8; используется для загрузки файла с правилами. Обычно создается файл, содержащий подготовленный набор правил, который полностью замещает набор, используемый на данный момент:</para> @@ -591,14 +698,15 @@ ipnat_rules="/etc/ipnat.rules" # Определение файла правил для ipnat</programl <para><option>-f</option> указывает файл с правилами, который необходимо загрузить.</para> - <para>Таким образом, после внесения изменений в файл правил и - запуска вышеприведенной команды IPF, набор правил межсетевого экрана - обновляется без перезагрузки системы. Для обновления правил + <para>Это дает вам возможность отредактировать файл с правилами, + запустить вышеприведенную команду IPF, тем самым обновить набор правил + работающего межсетевого экрана без перезагрузки системы. Для + обновления правил такой подход очень удобен, поскольку команду можно выполнять столько раз, сколько нужно.</para> <para>На странице справочной системы &man.ipf.8; находится - подробная информация по флагам этой команды.</para> + подробная информация по всем флагам этой команды.</para> <para>Набор правил для команды &man.ipf.8; должен быть в виде стандартного текстового файла. Правила, написанные в виде @@ -654,7 +762,8 @@ ipnat_rules="/etc/ipnat.rules" # Определение файла правил для ipnat</programl <para>При задании флага <option>-i</option> или <option>-o</option> соответственно для входящих или - или исходящих пакетов, будет получен и отображен список правил, + исходящих пакетов, команда извлечет и отобразит соответствующий + список правил, установленных и используемых на данный момент.</para> <para><command>ipfstat -in</command> отображает правила, применяемые @@ -708,16 +817,16 @@ ipnat_rules="/etc/ipnat.rules" # Определение файла правил для ipnat</programl <para>Для того, чтобы стало возможно использование команды <command>ipmon</command>, необходимо включить параметр ядра - IPFILTER_LOG. Эта команда может использоваться в двух различных + <literal>IPFILTER_LOG</literal>. Эта команда может использоваться в двух различных режимах. В основном режиме, который используется по умолчанию, она используется без флага <option>-D</option>.</para> <para>В режиме даемона создается непрерывный протокол, и возможен просмотр предыдущих событий. В этом режиме IPFILTER работает в &os;. Поскольку в &os; встроена функция ротации файлов - протокола, лучше использовать syslogd, чем используемый по + протокола, лучше использовать &man.syslogd.8;, чем используемый по умолчанию вывод в обычный файл. В <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 # s = log to syslog @@ -725,9 +834,9 @@ ipnat_rules="/etc/ipnat.rules" # Определение файла правил для ipnat</programl # n = map IP & port to names</programlisting> <para>Описывать преимущества протоколирования излишне. Например, - оно дает возможность просмотра информации о отброшенных - пакетах, откуда они пришли и куда направлялись. Это дает - определенные возможности отслеживания атак.</para> + оно дает возможность отложенного просмотра информации об отброшенных + пакетах, откуда они пришли и куда направлялись. + Эта информация существенно помогает при отслеживании атак.</para> <para>Даже с включенным протоколированием, IPF не ведет протокол для каждого правила. Администратор межсетевого экран должен решить, @@ -735,26 +844,25 @@ ipnat_rules="/etc/ipnat.rules" # Определение файла правил для ipnat</programl слово log к этим правилам. Обычно протоколируются только правила, отбрасывающие пакеты.</para> - <para>Довольно часто правило по умолчанию, запрещающее прохождение - пакетов, включается в набор последним, и для него применяется - ключевое слово log. Так вы можете увидеть все пакеты, не + <para>Включение в набор последнего правила, запрещающего прохождение + пакетов, в сочетании с ключевым словом <literal>log</literal> является + довольно распространённой практикой. Так вы можете увидеть все пакеты, + не попадающие ни под одно правило набора.</para> </sect2> <sect2> <title>Протоколирование IPMON</title> - <para>Для сбора данных <application>Syslogd</application> - использует свой собственный + <para>Для разделения собираемых данных + <application>syslogd</application> использует свой собственный специальный метод. Он использует группировку по категории (<quote>facility</quote>) и уровню (<quote>level</quote>). IPMON в режиме <option>-Ds</option> использует - <literal>security</literal> + <literal>local0</literal> в качестве имени <quote>категории</quote>. - Все протоколируемые IPMON данные также - отправляются на <literal>security</literal>. - Для сбора - протоколируемых данных могут быть использованы следующие + Для дальнейшего разделения + протоколируемых данных, если такое необходимо, могут быть использованы следующие уровни:</para> <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 протоколировать все данные в <filename>/var/log/ipfilter.log</filename>, создайте этот - файл следующей командой:</para> + файл заранее, выполнив следующую команду:</para> <screen>&prompt.root; <userinput>touch /var/log/ipfilter.log</userinput></screen> - <para>Функционирование syslog управляется настройками в файле + <para>Функционирование &man.syslogd.8; управляется настройками в файле <filename>/etc/syslog.conf</filename>. Файл <filename>syslog.conf</filename> позволяет достаточно гибко настроить обработку системных сообщений, выдаваемых программами, такими как IPF.</para> <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>Для применения внесенных в <filename>/etc/syslog.conf</filename> изменений вы можете - перезагрузиться или заставить syslog перечитать + перезагрузиться или заставить &man.syslogd.8; перечитать <filename>/etc/syslog.conf</filename>, выполнив команду - <command>/etc/rc.d/syslogd reload</command></para> + <command>/etc/rc.d/syslogd reload</command>.</para> <para>Не забудьте отредактировать <filename>/etc/newsyslog.conf</filename> для ротации только @@ -847,23 +955,23 @@ LOG_ERR - packets which have been logged and which can be considered short</scre <listitem> <para><literal>PR</literal>, с последующим именем или - номером протокола, например PR tcp.</para> + номером протокола, например <literal>PR tcp</literal>.</para> </listitem> <listitem> <para><literal>len</literal>, с последующей длиной заголовка - и общей длиной пакета, например len 20 40.</para> + и общей длиной пакета, например <literal>len 20 40</literal>.</para> </listitem> </orderedlist> <para>Для <acronym>TCP</acronym> пакетов добавляется дополнительное поле, начинающееся с дефиса, за которым следуют буквы, соответствующие установленным флагам. На странице справочника - находится список букв и флагов.</para> + &man.ipf.5; находится список букв и флагов.</para> <para>Для пакетов ICMP, в конце находятся два поля, - одно всегда <quote>ICMP</quote>, а во втором тип - ICMP сообщения (message и sub-message), + одно всегда <quote>ICMP</quote>, а второе содержит тип и подтип + ICMP сообщения (message и sub-message), разделенные символом косой черты, например ICMP 3/3 для сообщения <quote>port unreachable</quote>.</para> </sect2> @@ -873,7 +981,7 @@ LOG_ERR - packets which have been logged and which can be considered short</scre <para>Некоторые опытные пользователи IPF создают файл правил, поддерживающий использование символьной подстановки. Основное - преимущество использования такого скрипта заключается в + преимущество использования такого подхода заключается в возможности изменения значения, присваиваемого символьному имени, в результате чего во всех правилах, содержащих эту символьную подстановку, будет использоваться новое значение. @@ -881,8 +989,8 @@ LOG_ERR - packets which have been logged and which can be considered short</scre переменные, а затем использовать их сразу в нескольких правилах. Ниже дан пример такого использования.</para> - <para>Синтаксис скрипта совместим с sh, csh, и - tcsh.</para> + <para>Синтаксис скрипта совместим с &man.sh.1;, &man.csh.1;, и + &man.tcsh.1;.</para> <para>Символьная подстановка предваряется знаком доллара: <literal>$</literal>.</para> @@ -929,8 +1037,8 @@ EOF <para>Это все, что требовалось сделать. В данном примере сами правила не важны; важно то, как используется символьная подстановка. Если вышеприведенный пример помещен в файл - <filename>/etc/ipf.rules.script</filename>, вы можете - перезагрузить набор правил, введя следующую команду:</para> + <filename>/etc/ipf.rules.script</filename>, то набор правил можно + перезагрузить, введя следующую команду:</para> <screen>&prompt.root; <userinput>sh /etc/ipf.rules.script</userinput></screen> @@ -957,8 +1065,8 @@ EOF строку <literal>ipfilter_enable="NO"</literal> (это значение по умолчанию) в файл <filename>/etc/rc.conf</filename>.</para> - <para>Поместите скрипт, подобный нижеприведенному в каталог - <filename>/usr/local/etc/rc.d/</filename>. У него должно + <para>Поместите скрипт, подобный нижеприведенному, в каталог + <filename class="directory">/usr/local/etc/rc.d/</filename>. У него должно быть однозначно говорящее о его назначении имя, например <filename>ipf.loadrules.sh</filename>. Расширение <filename>.sh</filename> обязательно.</para> @@ -966,44 +1074,41 @@ EOF <programlisting>#!/bin/sh sh /etc/ipf.rules.script</programlisting> - <para>Права на этот скрипт должны разрешать чтение, запись и + <para>Права, установленные на этот файл, должны разрешать чтение, запись и выполнение владельцу <username>root</username>.</para> <screen>&prompt.root; <userinput>chmod 700 /usr/local/etc/rc.d/ipf.loadrules.sh</userinput></screen> </listitem> </itemizedlist> - <para>Теперь, при загрузке системы, правила IPF будут - загружены.</para> + <para>Теперь, правила IPF будут загружаться при загрузке + системы.</para> </sect2> <sect2> - <title>IPF Rule Sets</title> + <title>Наборы правил IPF</title> - <!-- очередное разжевывание ip basics --> <para>Набор правил ipf это группа правил, составленных для пропускания или блокирования пакетов на основе их содержимого. Двусторонний обмен пакетами между хостами составляет сессию. - Межсетевой экран обрабатывает пакеты в обеих направлениях, - <!--некорректно: The firewall rule set processes the - packet two times, once on its arrival from the public Internet - host and again as it leaves for its return trip back to the - 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> + (например, telnet, www, mail, и т.п.) назначен протокол и номер + привилегированного (прослушиваемого) порта. Пакеты, предназначенные + для определенного сервиса, порождаются с некоторым исходящим адресом + и портом из непривилегированного диапазона и направляются + на определенный адрес и определенный порт назначения. Все + упомянутые параметры (номера портов и адреса) могут использоваться + как критерии выбора в правилах, пропускающих или блокирующих доступ + к службам <acronym>TCP/IP</acronym>.</para> + <indexterm> <primary>IPFILTER</primary> <secondary>порядок обработки правил</secondary> </indexterm> - <!-- XXX: something like this already in - <xref linkend="firewalls-concepts"> - AND: the para below is repeated 3 times in this chapter--> <para>IPF был первоначально написан с использованием логики <quote>последнее совпадающее правило побеждает</quote> и только с правилами без сохранения состояния. Со временем @@ -1016,18 +1121,6 @@ sh /etc/ipf.rules.script</programlisting> Это основа для создания набора правил включающего межсетевого экрана.</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> <para>При работе с правилами межсетевого экрана, будьте <emphasis>очень осторожны</emphasis>. Некоторые @@ -1040,9 +1133,7 @@ sh /etc/ipf.rules.script</programlisting> </warning> </sect2> - <!-- Перевод остальной части раздела IPF отложен до исправления - ошибок в следующем sect2 оригинальной версии --> - + <!-- Перевод остальной части раздела IPF отложен ... --> </sect1> <sect1 id="firewalls-ipfw"> |