mirror of
https://gitlab.com/shorewall/code.git
synced 2024-12-22 14:20:40 +01:00
Updated Russian translations
git-svn-id: https://shorewall.svn.sourceforge.net/svnroot/shorewall/trunk@7080 fbd18981-670d-0410-9b5c-8dc0c1a9a2bb
This commit is contained in:
parent
c2db1dff8f
commit
746e60a6d3
@ -1,18 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
||||
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
||||
<article>
|
||||
<!--$Id$-->
|
||||
|
||||
<articleinfo>
|
||||
<title>Shorewall и подключение к Internet по нескольким каналам </title>
|
||||
<title>Shorewall и подключение к Internet по нескольким каналам</title>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Tom</firstname>
|
||||
<author><firstname>Tom</firstname>
|
||||
|
||||
<surname>Eastep</surname>
|
||||
</author>
|
||||
<surname>Eastep</surname></author>
|
||||
</authorgroup>
|
||||
|
||||
<pubdate><?dbtimestamp format="Y/m/d"?></pubdate>
|
||||
@ -22,38 +19,34 @@
|
||||
|
||||
<year>2006</year>
|
||||
|
||||
<year>2007</year>
|
||||
|
||||
<holder>Thomas M. Eastep</holder>
|
||||
</copyright>
|
||||
|
||||
<copyright>
|
||||
|
||||
<year>2007</year>
|
||||
|
||||
<holder>Russian Translation: Grigory Mokhin</holder>
|
||||
</copyright>
|
||||
|
||||
|
||||
<legalnotice>
|
||||
<para>Этот документ разрешается копировать, распространять и/или изменять при выполнении условий лицензии GNU Free Documentation License версии
|
||||
1.2 или более поздней, опубликованной Free Software Foundation; без неизменяемых разделов, без текста на верхней обложке, без текста на нижней обложке. Копия лицензии приведена по ссылке
|
||||
<quote><ulink url="GnuCopyright.htm">GNU Free Documentation
|
||||
License</ulink></quote>.</para>
|
||||
<para>Этот документ разрешается копировать, распространять и/или изменять при выполнении условий лицензии GNU Free Documentation License версии 1.2 или более поздней, опубликованной Free Software Foundation; без неизменяемых разделов, без текста на верхней обложке, без текста на нижней обложке. Копия лицензии приведена по ссылке <quote><ulink url="GnuCopyright.htm">GNU Free Documentation License</ulink></quote>.</para>
|
||||
</legalnotice>
|
||||
</articleinfo>
|
||||
|
||||
<warning>
|
||||
<para>Вы должны <emphasis role="bold"> установить современный дистрибутив, который обновляется поставщиком</emphasis>, прежде чем пытаться настроить работу в этом режиме. Старые дистрибутивы не удовлетворяют минимальным требованиям, и вам потребуется перекомпилировать iptables, ядро и прочее программное обеспечение в системе.
|
||||
Если вы проигнорируете этот совет, <emphasis role="bold">то
|
||||
<emphasis role="bold">не </emphasis> рассчитывайте, что кто-либо сможет вам помочь.
|
||||
</emphasis>.</para>
|
||||
<para>Вы должны <emphasis role="bold"> установить современный дистрибутив, который обновляется поставщиком</emphasis>, прежде чем пытаться настроить работу в этом режиме. Старые дистрибутивы не удовлетворяют минимальным требованиям, и вам потребуется перекомпилировать iptables, ядро и прочее программное обеспечение в системе. Если вы проигнорируете этот совет, <emphasis role="bold">то <emphasis role="bold">не </emphasis> рассчитывайте, что кто-либо сможет вам помочь.</emphasis>.</para>
|
||||
</warning>
|
||||
|
||||
<warning>
|
||||
<para>Чтение только документации Shorewall не будет достаточным для понимания раскрываемых здесь тем. Shorewall упрощает работу с iptables, но разработчики Shorewall не имеют достаточных ресурсов, чтобы учить вас основам управляемой маршрутизации в Linux (равно как и пособие по вождению комбайна не учит правильно выращивать пшеницу).
|
||||
Скорее всего вам потребуется обратиться к следующим дополнительным источникам:</para>
|
||||
<para>Чтение только документации Shorewall не будет достаточным для понимания раскрываемых здесь тем. Shorewall упрощает работу с iptables, но разработчики Shorewall не имеют достаточных ресурсов, чтобы учить вас основам управляемой маршрутизации в Linux (равно как и пособие по вождению комбайна не учит правильно выращивать пшеницу). Скорее всего вам потребуется обратиться к следующим дополнительным источникам:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>LARTC HOWTO: <ulink
|
||||
url="http://www.lartc.org">http://www.lartc.org</ulink></para>
|
||||
<para>LARTC HOWTO: <ulink url="http://www.lartc.org">http://www.lartc.org</ulink></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
@ -61,124 +54,91 @@
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Вывод команд <command>ip route help</command> и <command>ip rule
|
||||
help</command></para>
|
||||
<para>Вывод команд <command>ip route help</command> и <command>ip rule help</command></para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</warning>
|
||||
|
||||
<section>
|
||||
<title>Поддержка нескольких соединений с Internet </title>
|
||||
<section id="Support">
|
||||
<title>Поддержка нескольких соединений с Internet</title>
|
||||
|
||||
<para>Начиная с версии 2.3.2 в Shorewall реализована ограниченная поддержка нескольких соединений с Internet.
|
||||
Ниже описаны существующие ограничения:
|
||||
</para>
|
||||
<para>Начиная с версии 2.3.2 в Shorewall реализована ограниченная поддержка нескольких соединений с Internet. Ниже описаны существующие ограничения:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Используется статическая конфигурация маршрутов. Поэтому не предусмотрены меры по защите от сбоя какого-либо из каналов связи с провайдером.
|
||||
</para>
|
||||
<para>Используется статическая конфигурация маршрутов. Поэтому не предусмотрены меры по защите от сбоя какого-либо из каналов связи с провайдером.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Изменения маршрутизации и очистка кэша маршрутов осуществляются при запуске
|
||||
<emphasis role="bold">и при перезапуске Shorewall </emphasis> (если не указана опция "-n" для
|
||||
<command>shorewall restart</command>). Вообще говоря, в идеальном случае перезапуск пакетного фильтра никак не должен влиять на маршрутизацию.
|
||||
</para>
|
||||
<para>Изменения маршрутизации и очистка кэша маршрутов осуществляются при запуске <emphasis role="bold">и при перезапуске Shorewall </emphasis> (если не указана опция "-n" для <command>shorewall restart</command>). Вообще говоря, в идеальном случае перезапуск пакетного фильтра никак не должен влиять на маршрутизацию.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>В версиях Shorewall ниже 3.4.0 маршруты и правила маршрутизации, добавляемые при запуске, не удалялись полностью в ходе выполнения команд
|
||||
<command>shorewall
|
||||
stop</command>, <command>shorewall clear</command> или <command>shorewall restart</command>.</para>
|
||||
<para>В версиях Shorewall ниже 3.4.0 маршруты и правила маршрутизации, добавляемые при запуске, не удалялись полностью в ходе выполнения команд <command>shorewall stop</command>, <command>shorewall clear</command> или <command>shorewall restart</command>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<section>
|
||||
<title>Обзор </title>
|
||||
<section id="Overview">
|
||||
<title>Обзор</title>
|
||||
|
||||
<para>Предположим, что система, в которой работает файрвол, подключена к двум провайдерам по двум интерфейсам ethernet, как показано на рисунке.
|
||||
</para>
|
||||
<para>Предположим, что система, в которой работает файрвол, подключена к двум провайдерам по двум интерфейсам Ethernet, как показано на рисунке.</para>
|
||||
|
||||
<graphic align="center" fileref="images/TwoISPs.png" valign="middle" />
|
||||
<graphic align="center" fileref="images/TwoISPs.png" valign="middle"/>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>eth0 подключен к ISP1. IP-адрес eth0 - это
|
||||
206.124.146.176, и шлюз провайдера имеет IP-адрес
|
||||
206.124.146.254.</para>
|
||||
<para>eth0 подключен к ISP1. IP-адрес eth0 - это 206.124.146.176, и шлюз провайдера имеет IP-адрес 206.124.146.254.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>eth1 подключен к ISP2. IP-адрес eth1 - это
|
||||
130.252.99.27, и шлюз провайдера имеет IP-адрес
|
||||
130.252.99.254.</para>
|
||||
<para>eth1 подключен к ISP2. IP-адрес eth1 - это 130.252.99.27, и шлюз провайдера имеет IP-адрес 130.252.99.254.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>eth2 подключен к локальной сети. У него может быть любой IP-адрес.
|
||||
</para>
|
||||
<para>eth2 подключен к локальной сети. У него может быть любой IP-адрес.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Все эти <firstterm>провайдеры </firstterm> должны быть перечислены в файле <filename>/etc/shorewall/providers</filename>.</para>
|
||||
|
||||
<para>В записях в файле <filename>/etc/shorewall/providers</filename> можно указать, что для исходящих соединений должно быть включено распределение нагрузки по двум каналам связи с провайдерами.
|
||||
В записях в файле <filename>/etc/shorewall/tcrules</filename> можно указать, что некоторые исходящие соединения должны использовать определённый канал провайдера.
|
||||
Правила в файле <filename>/etc/shorewall/tcrules</filename> необязательны для того, чтобы настройка
|
||||
<filename>/etc/shorewall/providers</filename> работала, но необходимо указать уникальное значение MARK для каждого из провайдеров, чтобы Shorewall настроил правила маркировки.
|
||||
</para>
|
||||
<para>В записях в файле <filename>/etc/shorewall/providers</filename> можно указать, что для исходящих соединений должно быть включено распределение нагрузки по двум каналам связи с провайдерами. В записях в файле <filename>/etc/shorewall/tcrules</filename> можно указать, что некоторые исходящие соединения должны использовать определённый канал провайдера. Правила в файле <filename>/etc/shorewall/tcrules</filename> необязательны для того, чтобы настройка <filename>/etc/shorewall/providers</filename> работала, но необходимо указать уникальное значение MARK для каждого из провайдеров, чтобы Shorewall настроил правила маркировки.</para>
|
||||
|
||||
<para>Если задать опцию <emphasis role="bold">track</emphasis> в файле
|
||||
<filename>/etc/shorewall/providers</filename>, то соединения из
|
||||
Internet будут автоматически маршрутизироваться обратно через правильный интерфейс на соответствующий шлюз провайдера.
|
||||
Это будет работать как в том случае, когда соединение обрабатывается самим файрволом, так и для соединений, маршрутизируемых или пробрасываемых к системам позади файрвола.
|
||||
</para>
|
||||
<para>Если задать опцию <emphasis role="bold">track</emphasis> в файле <filename>/etc/shorewall/providers</filename>, то соединения из Internet будут автоматически маршрутизироваться обратно через правильный интерфейс на соответствующий шлюз провайдера. Это будет работать как в том случае, когда соединение обрабатывается самим файрволом, так и для соединений, маршрутизируемых или пробрасываемых к системам позади файрвола.</para>
|
||||
|
||||
<para>Shorewall настраивает маршрутизацию и обновляет файл
|
||||
<filename>/etc/iproute2/rt_tables</filename> , включая в него имена таблиц и их номера.
|
||||
</para>
|
||||
<para>Shorewall настраивает маршрутизацию и обновляет файл <filename>/etc/iproute2/rt_tables</filename>, включая в него имена таблиц и их номера.</para>
|
||||
|
||||
<caution>
|
||||
<para>При этом используются функции <ulink url="traffic_shaping.htm">маркировки пакетов
|
||||
</ulink> для управления маршрутизацией. Как следствие этого возникают ограничения на записи в файле
|
||||
<filename>/etc/shorewall/tcrules</filename>:</para>
|
||||
<para>При этом используются функции <ulink url="traffic_shaping.htm">маркировки пакетов</ulink> для управления маршрутизацией. Как следствие этого возникают ограничения на записи в файле <filename>/etc/shorewall/tcrules</filename>:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Маркировка пакетов для целей управления трафиком не может осуществляться в цепочке PREROUTING для соединений с участием провайдеров, для которых задана опция 'track' (см. далее).</para>
|
||||
<para>Маркировка пакетов для целей управления трафиком не может осуществляться в цепочке PREROUTING для соединений с участием провайдеров, для которых задана опция 'track' (см. далее).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Нельзя использовать опции SAVE или RESTORE. </para>
|
||||
<para>Нельзя использовать опции SAVE или RESTORE.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Нельзя использовать маркировку соединений. </para>
|
||||
<para>Нельзя использовать маркировку соединений.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</caution>
|
||||
|
||||
<para>Файл <filename>/etc/shorewall/providers</filename> может также использоваться в других сценариях маршрутизации.
|
||||
В <ulink
|
||||
url="Shorewall_Squid_Usage.html">документации по работе с Squid </ulink> приведены примеры.
|
||||
</para>
|
||||
<para>Файл <filename>/etc/shorewall/providers</filename> может также использоваться в других сценариях маршрутизации. В <ulink url="Shorewall_Squid_Usage.html">документации по работе с Squid </ulink> приведены примеры.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Файл /etc/shorewall/providers </title>
|
||||
<section id="providers">
|
||||
<title>Файл /etc/shorewall/providers</title>
|
||||
|
||||
<para>Далее описаны поля этого файла. Как и везде в файлах конфигурации Shorewall, укажите в поле для столбца "-", если не требуется задавать никакое значение.
|
||||
</para>
|
||||
<para>Далее описаны поля этого файла. Как и везде в файлах конфигурации Shorewall, укажите в поле для столбца "-", если не требуется задавать никакое значение.</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>NAME</term>
|
||||
|
||||
<listitem>
|
||||
<para>Имя провайдера. Должно начинаться с буквы и состоять из букв и цифр.
|
||||
Имя провайдера становится именем сгенерированной таблицы маршрутизации для этого провайдера.
|
||||
</para>
|
||||
<para>Имя провайдера. Должно начинаться с буквы и состоять из букв и цифр. Имя провайдера становится именем сгенерированной таблицы маршрутизации для этого провайдера.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@ -186,8 +146,7 @@ Internet будут автоматически маршрутизировать
|
||||
<term>NUMBER</term>
|
||||
|
||||
<listitem>
|
||||
<para>Число от 1 до 252. Оно будет номером таблицы маршрутизации для сгенерированной таблицы для этого провайдера.
|
||||
</para>
|
||||
<para>Число от 1 до 252. Оно будет номером таблицы маршрутизации для сгенерированной таблицы для этого провайдера.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@ -195,23 +154,17 @@ Internet будут автоматически маршрутизировать
|
||||
<term>MARK</term>
|
||||
|
||||
<listitem>
|
||||
<para>Метка, применяемая в файле /etc/shorewall/tcrules для направления пакетов через этого провайдера.
|
||||
Shorewall также помечает этой меткой соединения, которые входят через этого провайдера, и восстанавливает метку пакета в цепочке PREROUTING.
|
||||
Метка должна быть целым числом от 1 до 255.</para>
|
||||
<para>Метка, применяемая в файле /etc/shorewall/tcrules для направления пакетов через этого провайдера. Shorewall также помечает этой меткой соединения, которые входят через этого провайдера, и восстанавливает метку пакета в цепочке PREROUTING. Метка должна быть целым числом от 1 до 255.</para>
|
||||
|
||||
<para>Начиная с Shorewall версии 3.2.0 Beta 6, можно задать опцию HIGH_ROUTE_MARKS=Yes в файле
|
||||
<filename>/etc/shorewall/shorewall.conf</filename>. Это позволяет решить следующие задачи:
|
||||
</para>
|
||||
<para>Начиная с Shorewall версии 3.2.0 Beta 6, можно задать опцию HIGH_ROUTE_MARKS=Yes в файле <filename>/etc/shorewall/shorewall.conf</filename>. Это позволяет решить следующие задачи:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Использовать метки пакетов для управления трафиком, при условии что эти метки присваиваются в цепочке FORWARD. </para>
|
||||
<para>Использовать метки пакетов для управления трафиком, при условии что эти метки присваиваются в цепочке FORWARD.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Использовать значения меток > 255 для меток провайдера.
|
||||
Эти метки должны быть кратными 256 в диапазоне 256-65280 (в 16-ричном представлении 0x100 - 0xFF00, с нулевыми младшими 8 битами).
|
||||
</para>
|
||||
<para>Использовать значения меток > 255 для меток провайдера. Эти метки должны быть кратными 256 в диапазоне 256-65280 (в 16-ричном представлении 0x100 - 0xFF00, с нулевыми младшими 8 битами).</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
@ -221,10 +174,7 @@ Shorewall также помечает этой меткой соединения
|
||||
<term>DUPLICATE</term>
|
||||
|
||||
<listitem>
|
||||
<para>Имя или номер таблицы маршрутизации, которая будет продублирована.
|
||||
Можно указать 'main' или имя или номер ранее объявленного провайдера.
|
||||
Для большинства приложений здесь достаточно будет указать 'main'.
|
||||
</para>
|
||||
<para>Имя или номер таблицы маршрутизации, которая будет продублирована. Можно указать 'main' или имя или номер ранее объявленного провайдера. Для большинства приложений здесь достаточно будет указать 'main'.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@ -232,7 +182,11 @@ Shorewall также помечает этой меткой соединения
|
||||
<term>INTERFACE</term>
|
||||
|
||||
<listitem>
|
||||
<para>Имя интерфейса канала связи с провайдером. </para>
|
||||
<para>Имя интерфейса канала связи с провайдером.</para>
|
||||
|
||||
<caution>
|
||||
<para>В реализации поддержки нескольких подключений с провайдерами Shorewall предполагается, что каждый провайдер подключен к собственному интерфейсу.</para>
|
||||
</caution>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@ -240,13 +194,11 @@ Shorewall также помечает этой меткой соединения
|
||||
<term>GATEWAY</term>
|
||||
|
||||
<listitem>
|
||||
<para>IP-адрес шлюза провайдера. </para>
|
||||
<para>IP-адрес шлюза провайдера.</para>
|
||||
|
||||
<para>Здесь можно указать <emphasis role="bold">detect</emphasis> для автоматического определения IP-адреса шлюза.
|
||||
</para>
|
||||
<para>Здесь можно указать <emphasis role="bold">detect</emphasis> для автоматического определения IP-адреса шлюза.</para>
|
||||
|
||||
<para><emphasis role="bold">Совет: </emphasis> <emphasis
|
||||
role="bold">"detect"</emphasis> следует указывать в том случае, если интерфейс из поля INTERFACE настраивается динамически по DHCP. </para>
|
||||
<para><emphasis role="bold">Совет:</emphasis> <emphasis role="bold">"detect"</emphasis> следует указывать в том случае, если интерфейс из поля INTERFACE настраивается динамически по DHCP.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@ -254,34 +206,25 @@ Shorewall также помечает этой меткой соединения
|
||||
<term>OPTIONS</term>
|
||||
|
||||
<listitem>
|
||||
<para>Список параметров через запятую, описанных ниже: </para>
|
||||
<para>Список параметров через запятую, описанных ниже:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>track</term>
|
||||
|
||||
<listitem>
|
||||
<para>Если эта опция включена, то будут отслеживаться соединения, ВХОДЯЩИЕ через этот интерфейс, чтобы ответы могли маршрутизироваться обратно через этот же интерфейс.
|
||||
</para>
|
||||
<para>Если эта опция включена, то будут отслеживаться соединения, ВХОДЯЩИЕ через этот интерфейс, чтобы ответы могли маршрутизироваться обратно через этот же интерфейс.</para>
|
||||
|
||||
<para>Укажите 'track', если через этого провайдера к локальным серверам будут обращаться хосты из Internet.
|
||||
Вместе с 'track' всегда следует указывать опцию 'balance'. </para>
|
||||
<para>Укажите 'track', если через этого провайдера к локальным серверам будут обращаться хосты из Internet. Вместе с 'track' всегда следует указывать опцию 'balance'.</para>
|
||||
|
||||
<para>Для работы с этой функцией ядро и
|
||||
iptables должны поддерживать цель CONNMARK и сравнение connmark.
|
||||
Расширение цели ROUTE не требуется. </para>
|
||||
<para>Для работы с этой функцией ядро и iptables должны поддерживать цель CONNMARK и сравнение connmark. Расширение цели ROUTE не требуется.</para>
|
||||
|
||||
<warning>
|
||||
<para>В iptables 1.3.1 есть ошибка в реализации CONNMARK и iptables-save/iptables-restore. Поэтому при настройке нескольких провайдеров команда
|
||||
<command>shorewall
|
||||
restore</command> может быть не выполнена. Если это имеет место, примените исправление iptables, доступное по адресу <ulink
|
||||
url="http://shorewall.net/pub/shorewall/contrib/iptables/CONNMARK.diff">http://shorewall.net/pub/shorewall/contrib/iptables/CONNMARK.diff</ulink>.</para>
|
||||
<para>В iptables 1.3.1 есть ошибка в реализации CONNMARK и iptables-save/iptables-restore. Поэтому при настройке нескольких провайдеров команда <command>shorewall restore</command> может быть не выполнена. Если это имеет место, примените исправление iptables, доступное по адресу <ulink url="http://shorewall.net/pub/shorewall/contrib/iptables/CONNMARK.diff">http://shorewall.net/pub/shorewall/contrib/iptables/CONNMARK.diff</ulink>.</para>
|
||||
</warning>
|
||||
|
||||
<important>
|
||||
<para>Если используется файл
|
||||
<filename>/etc/shorewall/providers</filename> для настройки нескольких соединений с Internet, укажите опцию 'track', даже если в ней нет необходимости. Она помогает поддерживать длительные соединения, в которых могут быть долгие периоды отсутствия трафика.
|
||||
</para>
|
||||
<para>Если используется файл <filename>/etc/shorewall/providers</filename> для настройки нескольких соединений с Internet, укажите опцию 'track', даже если в ней нет необходимости. Она помогает поддерживать длительные соединения, в которых могут быть долгие периоды отсутствия трафика.</para>
|
||||
</important>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@ -290,41 +233,20 @@ Shorewall также помечает этой меткой соединения
|
||||
<term>balance</term>
|
||||
|
||||
<listitem>
|
||||
<para>Опция 'balance' позволяет распределять нагрузку исходящих потоков между несколькими провайдерами.
|
||||
Распределение нагрузки не будет идеальным, поскольку оно осуществляется посредством маршрутов, а маршруты кэшируются.
|
||||
При этом маршрут к хостам, к которым часто обращаются пользователи, будет проходить всегда через одного и того же провайдера.
|
||||
</para>
|
||||
<para>Опция 'balance' позволяет распределять нагрузку исходящих потоков между несколькими провайдерами. Распределение нагрузки не будет идеальным, поскольку оно осуществляется посредством маршрутов, а маршруты кэшируются. При этом маршрут к хостам, к которым часто обращаются пользователи, будет проходить всегда через одного и того же провайдера.</para>
|
||||
|
||||
<para>По умолчанию всем провайдерам присваивается одинаковый вес (1).
|
||||
Вес конкретного провайдера можно изменить опцией
|
||||
<emphasis>balance</emphasis> с "=" и весом
|
||||
(например, balance=2). Веса отражают относительную пропускную способность каналов связи с провайдером. Они должны быть небольшими числами, потому что ядро создает дополнительные маршруты для каждого приращения веса.
|
||||
</para>
|
||||
<para>По умолчанию всем провайдерам присваивается одинаковый вес (1). Вес конкретного провайдера можно изменить опцией <emphasis>balance</emphasis> с "=" и весом (например, balance=2). Веса отражают относительную пропускную способность каналов связи с провайдером. Они должны быть небольшими числами, потому что ядро создает дополнительные маршруты для каждого приращения веса. </para>
|
||||
|
||||
<important>
|
||||
<para>Если используется файл
|
||||
<filename>/etc/shorewall/providers</filename> для настройки нескольких соединений с Internet, укажите опцию 'balance', даже если в ней нет необходимости. С помощью записей в файле
|
||||
<filename>/etc/shorewall/tcrules</filename>
|
||||
можно принудительно направить трафик через конкретного провайдера. <note>
|
||||
<para>Если вы проигнорируете этот совет, то прочитайте <ulink url="FAQ.htm#faq57">FAQ 57</ulink> и
|
||||
<ulink url="FAQ.htm#faq58">FAQ 58</ulink>.</para>
|
||||
<para>Если файл <filename>/etc/shorewall/providers</filename> используется для настройки нескольких соединений с Internet, укажите опцию 'balance', даже если в ней нет необходимости. Для направления всего трафика через какого-либо определенного провайдера можно использовать файл <filename>/etc/shorewall/tcrules</filename>. <note>
|
||||
<para>Если вы проигнорируете этот совет, то прочитайте <ulink url="FAQ.htm#faq57">FAQ 57</ulink> и <ulink url="FAQ.htm#faq58">FAQ 58</ulink>.</para>
|
||||
</note></para>
|
||||
</important>
|
||||
|
||||
<important>
|
||||
<para>Если указана опция 'balance', но весь трафик по-прежнему идёт через одного провайдера, то причина этого может состоять в том, что ядро не собрано с опцией
|
||||
CONFIG_IP_ROUTE_MULTIPATH_CACHED=n. У некоторых пользователей пересборка ядра с этой опцией помогла устранить неполадку.
|
||||
</para>
|
||||
<para>Если указана опция 'balance', но весь трафик по-прежнему идёт через одного провайдера, то причина этого может состоять в том, что ядро не собрано с опцией CONFIG_IP_ROUTE_MULTIPATH_CACHED=n. У некоторых пользователей пересборка ядра с этой опцией помогла устранить неполадку.</para>
|
||||
|
||||
<para>Эта неполадка присутствует в ядре SuSE 10.0, и согласно
|
||||
<ulink
|
||||
url="https://bugzilla.novell.com/show_bug.cgi?id=190908">
|
||||
в этом случае может возникать критическая ошибка ядра.</ulink>
|
||||
В SUSE 10.1 и SLES 10 опция
|
||||
CONFIG_IP_ROUTE_MULTIPATH_CACHED=n включена по умолчанию. Источник неполадки описан здесь:
|
||||
<ulink
|
||||
url="http://news.gmane.org/find-root.php?message_id=%3c00da01c5b35a%24b12b9860%241b00a8c0%40cruncher%3e">несовместимость между исправлениями от LARTC и опцией
|
||||
CONFIG_IP_ROUTE_MULTIPATH_CACHED.</ulink></para>
|
||||
<para>Эта неполадка присутствует в ядре SuSE 10.0, и согласно <ulink url="https://bugzilla.novell.com/show_bug.cgi?id=190908">в этом случае может возникать критическая ошибка ядра.</ulink> В SUSE 10.1 и SLES 10 опция CONFIG_IP_ROUTE_MULTIPATH_CACHED=n включена по умолчанию. Источник неполадки описан здесь: <ulink url="http://news.gmane.org/find-root.php?message_id=%3c00da01c5b35a%24b12b9860%241b00a8c0%40cruncher%3e">несовместимость между исправлениями от LARTC и опцией CONFIG_IP_ROUTE_MULTIPATH_CACHED.</ulink></para>
|
||||
</important>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@ -333,9 +255,7 @@ Shorewall также помечает этой меткой соединения
|
||||
<term>loose</term>
|
||||
|
||||
<listitem>
|
||||
<para>Не включать правила маршрутизации, которые принудительно направляют через данный интерфейс трафик, исходный IP-адрес которого совпадает с адресом интерфейса канала с провайдером.
|
||||
Эта опция полезна для определения провайдеров, которые должны использоваться только при наличии соответствующей метки пакета.
|
||||
</para>
|
||||
<para>Не включать правила маршрутизации, которые принудительно направляют через данный интерфейс трафик, исходный IP-адрес которого совпадает с адресом интерфейса канала с провайдером. Эта опция полезна для определения провайдеров, которые должны использоваться только при наличии соответствующей метки пакета. Эту опцию нельзя указывать совместно с <emphasis role="bold">balance</emphasis>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@ -343,26 +263,20 @@ Shorewall также помечает этой меткой соединения
|
||||
<term>optional (начиная с Shorewall 3.2.2)</term>
|
||||
|
||||
<listitem>
|
||||
<para>Shorewall определит, работает ли этот интерфейс и настроен ли его IP-адрес.
|
||||
Если он не настроен, то будет показано предупреждение, а сам провайдер не будет включен.
|
||||
</para>
|
||||
<para>Shorewall определит, работает ли этот интерфейс и настроен ли его IP-адрес. Если он не настроен, то будет показано предупреждение, а сам провайдер не будет включен.</para>
|
||||
|
||||
<note>
|
||||
<para>Параметр 'optional' предназначен для определения состояния интерфейсов, которые могли бы вызвать сбой команды <command>shorewall start</command> или <command>shorewall restart</command> - однако даже если интерфейс находится в состоянии, в котором Shorewall может [пере]запуститься без ошибок, это не означает, что трафик может с гарантией проходить через этот интерфейс.
|
||||
</para>
|
||||
<para>Параметр 'optional' предназначен для определения состояния интерфейсов, которые могли бы вызвать сбой команды <command>shorewall start</command> или <command>shorewall restart</command> - однако даже если интерфейс находится в состоянии, в котором Shorewall может [пере]запуститься без ошибок, это не означает, что трафик может с гарантией проходить через этот интерфейс.</para>
|
||||
</note>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Для тех, кто окончательно запутался в том, что такое <emphasis
|
||||
role="bold"> track</emphasis> и <emphasis
|
||||
role="bold">balance</emphasis>:</para>
|
||||
<para>Для тех, кто окончательно запутался в том, что такое <emphasis role="bold"> track</emphasis> и <emphasis role="bold">balance</emphasis>:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">track</emphasis> управляет входящими соединениями.
|
||||
</para>
|
||||
<para><emphasis role="bold">track</emphasis> управляет входящими соединениями.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
@ -376,95 +290,65 @@ Shorewall также помечает этой меткой соединения
|
||||
<term>COPY</term>
|
||||
|
||||
<listitem>
|
||||
<para>Если в поле DUPLICATE указана существующая таблица,
|
||||
то Shorewall копирует все маршруты, проходящие через интерфейс, указанный в столбце INTERFACE, а также через интерфейс, указанный в этом поле. В этом поле следует указать все интерфейсы в системе файрвола, исключая интерфейсы Internet, указанные в поле INTERFACE этого файла.
|
||||
</para>
|
||||
<para>Если в поле DUPLICATE указана существующая таблица, то Shorewall копирует все маршруты, проходящие через интерфейс, указанный в столбце INTERFACE, а также через интерфейс, указанный в этом поле. В этом поле следует указать все интерфейсы в системе файрвола, исключая интерфейсы Internet, указанные в поле INTERFACE этого файла.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Какие функции выполняет запись в файле providers </title>
|
||||
<section id="Providers">
|
||||
<title>Какие функции выполняет запись в файле providers</title>
|
||||
|
||||
<para>Добавление записи в файле providers приводит к созданию альтернативной таблицы маршрутизации.
|
||||
Помимо этого: </para>
|
||||
<para>Добавление записи в файле providers приводит к созданию альтернативной таблицы маршрутизации. Помимо этого:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Если не указана опция <emphasis role="bold">loose</emphasis> , то создается правило ip для каждого IP-адреса из поля INTERFACE, которое обеспечивает маршрутизацию трафика с этого адреса через соответствующую таблицу маршрутизации.
|
||||
</para>
|
||||
<para>Если не указана опция <emphasis role="bold">loose</emphasis>, то создается правило ip для каждого IP-адреса из поля INTERFACE, которое обеспечивает маршрутизацию трафика с этого адреса через соответствующую таблицу маршрутизации.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Если указана опция <emphasis role="bold">track</emphasis>, то соединения, для которых хотя бы один пакет прошел на интерфейс, указанный в поле INTERFACE, получат метку соединения, заданную в поле MARK. В цепочке PREROUTING метка пакетов, имеющих метку соединения, будет задана равной метке соединения, и такие помеченные пакеты не будут подчиняться правилам для цепочки PREROUTING, заданным в файле <filename>/etc/shorewall/tcrules</filename>. Это обеспечивает маршрутизацию через правильный интерфейс для входящих соединений.
|
||||
</para>
|
||||
<para>Если указана опция <emphasis role="bold">track</emphasis>, то соединения, для которых хотя бы один пакет прошел на интерфейс, указанный в поле INTERFACE, получат метку соединения, заданную в поле MARK. В цепочке PREROUTING метка пакетов, имеющих метку соединения, будет задана равной метке соединения, и такие помеченные пакеты не будут подчиняться правилам для цепочки PREROUTING, заданным в файле <filename>/etc/shorewall/tcrules</filename>. Это обеспечивает маршрутизацию через правильный интерфейс для входящих соединений.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Если указана опция <emphasis role="bold">balance</emphasis>, то
|
||||
Shorewall заменит маршрут по умолчанию с весом 100 в таблице маршрутизации
|
||||
'main' маршрутом с распределением нагрузки между шлюзами, для которых опция
|
||||
<emphasis role="bold">balance</emphasis> включена.
|
||||
Поэтому, если вы настраиваете маршруты по умолчанию, то укажите их вес меньше, чем 100, иначе маршрут, добавленный Shorewall, не будет иметь силы.
|
||||
</para>
|
||||
<para>Если указана опция <emphasis role="bold">balance</emphasis>, то Shorewall заменит маршрут по умолчанию с весом 100 в таблице маршрутизации 'main' маршрутом с распределением нагрузки между шлюзами, для которых опция <emphasis role="bold">balance</emphasis> включена. Поэтому, если вы настраиваете маршруты по умолчанию, то укажите их вес меньше, чем 100, иначе маршрут, добавленный Shorewall, не будет иметь силы.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para>Больше <emphasis role="bold">ничего </emphasis> эти записи не делают.
|
||||
По-прежнему работает основной принцип, упомянутый в документации <ulink
|
||||
url="Shorewall_and_Routing.html">по маршрутизации Shorewall
|
||||
</ulink>:</para>
|
||||
<para>Больше эти записи не делают <emphasis role="bold">ничего</emphasis>. Вспомните основной принцип, описанный в <ulink url="Shorewall_and_Routing.html">документации по маршрутизации Shorewall</ulink>:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Маршрутизация отвечает за то, куда направляются пакеты. </para>
|
||||
<para>Маршрутизация отвечает за то, куда направляются пакеты.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>После того, как маршрут пакета определён, файрвол (Shorewall) определяет, разрешить ли отправку пакета по его маршруту.
|
||||
</para>
|
||||
<para>После того, как маршрут пакета определён, файрвол (Shorewall) определяет, разрешить ли отправку пакета по его маршруту.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para>Итак, если вы хотите направить трафик через определённого провайдера, то
|
||||
<emphasis>необходимо </emphasis>пометить этот трафик значением MARK провайдера в файле
|
||||
<filename>/etc/shorewall/tcrules</filename> и пометить пакет в цепочке PREROUTING; другим способом будет указание соответствующих правил в файле
|
||||
<filename>/etc/shorewall/route_rules</filename>.</para>
|
||||
<para>Итак, если вы хотите направить трафик через определённого провайдера, то <emphasis>необходимо </emphasis>пометить этот трафик значением MARK провайдера в файле <filename>/etc/shorewall/tcrules</filename> и пометить пакет в цепочке PREROUTING; другим способом будет указание соответствующих правил в файле <filename>/etc/shorewall/route_rules</filename>.</para>
|
||||
|
||||
<warning id="Undo">
|
||||
<para>В Shorewall версий ниже 3.4.0 записи из файла
|
||||
<filename>/etc/shorewall/providers</filename> необратимо изменяют маршрутизацию системы, то есть эти изменения не отменяются при вызове команды
|
||||
<command>shorewall stop</command> или <command>shorewall clear</command>. Для того чтобы восстановить исходные маршруты, может потребоваться перезапустить сеть.
|
||||
Обычно это делается командой
|
||||
<command>/etc/init.d/network restart</command> или <command>/etc/init.d/networking restart</command>. Обратитесь к документации по сети вашего дистрибутива.
|
||||
</para>
|
||||
<para>В Shorewall версий ниже 3.4.0 записи из файла <filename>/etc/shorewall/providers</filename> необратимо изменяют маршрутизацию системы, то есть эти изменения не отменяются при вызове команды <command>shorewall stop</command> или <command>shorewall clear</command>. Для того чтобы восстановить исходные маршруты, может потребоваться перезапустить сеть. Обычно это делает команда <command>/etc/init.d/network restart</command> или <command>/etc/init.d/networking restart</command>. Обратитесь к документации по сети вашего дистрибутива.</para>
|
||||
|
||||
<para>Дополнительные замечания: </para>
|
||||
<para>Дополнительные замечания:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Влияние изменений, вносимых Shorewall в таблицу маршрутизации, можно уменьшить, указав параметр
|
||||
<emphasis>metric</emphasis> для каждого настраиваемого маршрута по умолчанию.
|
||||
Shorewall создаст маршрут по умолчанию с распределением нагрузки (если опция
|
||||
<emphasis role="bold">balance</emphasis> включена для какого-либо из провайдеров), который не будет включать метрику и тем самым не будет заменять никакой существующий маршрут, для которого метрика отлична от нуля.
|
||||
</para>
|
||||
<para>Влияние изменений, вносимых Shorewall в таблицу маршрутизации, можно уменьшить, указав параметр <emphasis>metric</emphasis> для каждого настраиваемого маршрута по умолчанию. Shorewall создаст маршрут по умолчанию с распределением нагрузки (если опция <emphasis role="bold">balance</emphasis> включена для какого-либо из провайдеров), который не будет включать метрику и тем самым не будет заменять никакой существующий маршрут, для которого метрика отлична от нуля.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Опция <command>-n</command> команд <command>shorewall
|
||||
restart</command> и <command>shorewall restore</command> позволяет предотвратить изменение маршрутизации.
|
||||
</para>
|
||||
<para>Опция <command>-n</command> команд <command>shorewall restart</command> и <command>shorewall restore</command> позволяет предотвратить изменение маршрутизации.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Файл <filename>/etc/shorewall/stopped</filename> можно также использовать для восстановления маршрутизации при остановке Shorewall. Когда система работает в обычной конфигурации маршрутизации (одна таблица), то ее содержимое можно сохранить следующим образом:
|
||||
</para>
|
||||
<para>Файл <filename>/etc/shorewall/stopped</filename> можно также использовать для восстановления маршрутизации при остановке Shorewall. Когда система работает в обычной конфигурации маршрутизации (одна таблица), то ее содержимое можно сохранить следующим образом:</para>
|
||||
|
||||
<programlisting>ip route ls > routes</programlisting>
|
||||
<programlisting>ip route ls > routes</programlisting>
|
||||
|
||||
<para>Ниже приведен пример файла <filename>routes</filename> для моей системы:
|
||||
</para>
|
||||
<para>Ниже приведен пример файла <filename>routes</filename> для моей системы:</para>
|
||||
|
||||
<programlisting>192.168.1.1 dev eth3 scope link
|
||||
206.124.146.177 dev eth1 scope link
|
||||
@ -476,25 +360,23 @@ Shorewall создаст маршрут по умолчанию с распре
|
||||
127.0.0.0/8 dev lo scope link
|
||||
default via 206.124.146.254 dev eth3</programlisting>
|
||||
|
||||
<para>Отредактируйте этот файл следующим образом: </para>
|
||||
<para>Отредактируйте этот файл следующим образом:</para>
|
||||
|
||||
<programlisting><command>ip route flush table main
|
||||
ip route add</command> 192.168.1.1 dev eth3 scope link
|
||||
<command>ip route add </command>206.124.146.177 dev eth1 scope link
|
||||
<command>ip route add </command>192.168.2.2 dev tun0 proto kernel scope link src 192.168.2.1
|
||||
<command>ip route add </command>192.168.2.0/24 via 192.168.2.2 dev tun0
|
||||
<command>ip route add </command>192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.254
|
||||
<command>ip route add </command>206.124.146.0/24 dev eth3 proto kernel scope link src 206.124.146.176
|
||||
<command>ip route add </command>169.254.0.0/16 dev eth0 scope link
|
||||
<command>ip route add </command>127.0.0.0/8 dev lo scope link
|
||||
<command>ip route add </command>default via 206.124.146.254 dev eth3
|
||||
<command>ip route flush cache</command></programlisting>
|
||||
192.168.2.2 dev tun0 proto kernel scope link src 192.168.2.1
|
||||
192.168.2.0/24 via 192.168.2.2 dev tun0
|
||||
192.168.2.2 dev tun0 proto kernel scope link src 192.168.2.1
|
||||
192.168.2.2 dev tun0 proto kernel scope link src 192.168.2.1
|
||||
<command>ip route add </command>206.124.146.177 dev eth1 scope link
|
||||
<command>ip route add </command>206.124.146.177 dev eth1 scope link
|
||||
<command>ip route add </command>206.124.146.177 dev eth1 scope link
|
||||
<command>ip route flush table main</programlisting>
|
||||
|
||||
<para>Сохраните этот файл как
|
||||
<filename>/etc/shorewall/stopped</filename>.</para>
|
||||
<para>Сохраните этот файл как <filename>/etc/shorewall/stopped</filename>.</para>
|
||||
|
||||
<para>В этот файл можно также добавить следующее:
|
||||
</para>
|
||||
<para>В этот файл можно также добавить следующее:</para>
|
||||
|
||||
<programlisting><command>ip rule ls</command> | while read priority rule; do
|
||||
case ${priority%:} in
|
||||
@ -506,26 +388,56 @@ ip route add</command> 192.168.1.1 dev eth3 scope link
|
||||
esac
|
||||
done</programlisting>
|
||||
|
||||
<para>Этот код удаляет все правила маршрутов, за исключением маршрута по умолчанию.
|
||||
</para>
|
||||
<para>Этот код удаляет все правила маршрутов, за исключением маршрута по умолчанию.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</warning>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<section id="Provider_Doesnt">
|
||||
<title>Какие функции НЕ выполняет запись в файле providers</title>
|
||||
|
||||
<para>Shorewall - это инструмент для настройки Netfilter, а не процесс, который непрерывно работает в системе, поэтому записи в файле providers
|
||||
<emphasis role="bold">не обеспечивают автоматического переключения в случае сбоя одного из каналов связи с Internet </emphasis>.</para>
|
||||
<para>Shorewall - это инструмент для настройки Netfilter, а не процесс, который непрерывно работает в системе, поэтому записи в файле providers <emphasis role="bold">не обеспечивают автоматического переключения в случае сбоя одного из каналов связи с Internet </emphasis>.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Пример</title>
|
||||
<section id="Martians">
|
||||
<title>Марсианские пакеты</title>
|
||||
|
||||
<para>Конфигурация схемы сети, показанной на рисунке в начале этого документа, описывается в файле
|
||||
<filename>/etc/shorewall/providers</filename> следующим образом.
|
||||
</para>
|
||||
<para>В конфигурации с несколькими провайдерами часто возникает типичная неполадка с "марсианскими пакетами". Если для сетевых интерфейсов задана опция <emphasis role="bold">routefilter</emphasis> в файле <filename>/etc/shorewall/interfaces</filename> (а вместе с этой опцией должны быть задана опция <emphasis role="bold">logmartians</emphasis>), то могут возникать ошибки, и в протоколе будут сообщения следующего вида: </para>
|
||||
|
||||
<programlisting>Feb 9 17:23:45 gw.ilinx kernel: martian source 206.124.146.176 from 64.86.88.116, on dev eth1
|
||||
Feb 9 17:23:45 gw.ilinx kernel: ll header: 00:a0:24:2a:1f:72:00:13:5f:07:97:05:08:00</programlisting>
|
||||
|
||||
<para>Это сообщение может ввести в заблуждение. Исходным IP входящего пакета является 64.86.88.116, а целевым IP - 206.124.146.176. Следует также учитывать, что целевой IP-адрес входящего пакета мог быть уже изменен, либо в DNAT, либо записью в файле <filename>/etc/shorewall/masq</filename> (SNAT или Masquerade) для первоначального исходящего соединения. Поэтому целевой IP-адрес (206.124.146.176) может отличаться от исходного целевого IP-адреса пришедшего пакета. </para>
|
||||
|
||||
<para>Эти неполадки могут возникать по следующим причинам: </para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Оба внешних интерфейса подключены на один хаб или коммутатор. Никогда не подключайте несколько интерфейсов файрвола на один хаб, если хотите избежать неприятных и труднообъяснимых неполадок. </para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>В файле providers указаны вместе опции <emphasis role="bold">loose</emphasis> и <emphasis role="bold">balance</emphasis>. Это приводит к тому, что отдельные соединения будут перескакивать между интерфейсами, и будут возникать ошибки. </para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Локальный трафик направляется через один из интерфейсов с помощью маркировки пакетов записью из файла <filename>/etc/shorewall/tcrules</filename>. Вместо этого следует привязать приложение к соответствующему локальному IP-адресу требуемого интерфейса. См. <link linkend="Local">далее</link>.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para>Если больше ничего не помогает, удалите опцию <emphasis role="bold">routefilter</emphasis> для внешнего интерфейса. При этом можно добавить правила для регистрации и сбрасывания пакетов из Интернета, имеющих адрес источника из вашей локальной сети. Например, если локальная сеть в указанной выше конфигурации имеет адреса 192.168.1.0/24, то добавьте следующее правило:</para>
|
||||
|
||||
<programlisting>#ACTION SOURCE DEST
|
||||
DROP:info net:192.168.1.0/24 all</programlisting>
|
||||
|
||||
<para>Be sure the above rule is added before any other rules with <emphasis>net</emphasis> in the SOURCE column.</para>
|
||||
</section>
|
||||
|
||||
<section id="Example1">
|
||||
<title id="Example">Пример</title>
|
||||
|
||||
<para>Конфигурация схемы сети, показанной на рисунке в начале этого документа, описывается в файле <filename>/etc/shorewall/providers</filename> следующим образом.</para>
|
||||
|
||||
<programlisting>#NAME NUMBER MARK DUPLICATE INTERFACE GATEWAY OPTIONS COPY
|
||||
ISP1 1 1 main eth0 206.124.146.254 track,balance eth2
|
||||
@ -536,7 +448,7 @@ ISP2 2 2 main eth1 130.252.99.254 track,ba
|
||||
<para><filename>/etc/shorewall/interfaces</filename>:</para>
|
||||
|
||||
<programlisting>#ZONE INTERFACE BROADCAST OPTIONS
|
||||
net eth0 detect …
|
||||
net eth0 detect …
|
||||
net eth1 detect …</programlisting>
|
||||
|
||||
<para><filename>/etc/shorewall/policy</filename>:</para>
|
||||
@ -544,26 +456,20 @@ net eth1 detect …</programlisting>
|
||||
<programlisting>#SOURCE DESTINATION POLICY LIMIT:BURST
|
||||
net net DROP</programlisting>
|
||||
|
||||
<para>Независимо от того, есть ли маскируемые хосты, или нет, <emphasis
|
||||
role="bold">ДОБАВЬТЕ ДВЕ ЗАПИСИ В ФАЙЛ
|
||||
<filename>/etc/shorewall/masq</filename></emphasis>:</para>
|
||||
<para>Если соединения файрвола будут перенаправляться с помощью правил <filename>/etc/shorewall/tcrules</filename>, или если для провайдеров указана опция <emphasis role="bold">balance</emphasis>, то независимо от того, есть ли маскируемые хосты, в файл <filename>/etc/shorewall/masq</filename> необходимо добавить следующие записи.</para>
|
||||
|
||||
<programlisting>#INTERFACE SUBNET ADDRESS
|
||||
eth0 130.252.99.27 206.124.146.176
|
||||
eth1 206.124.146.176 130.252.99.27</programlisting>
|
||||
|
||||
<para>Эти записи обеспечивают отправку пакетов, созданных в системе файрвола, с правильным исходным IP-адресом, соответствующим интерфейсу, через который они направляются.
|
||||
</para>
|
||||
<para>Эти записи обеспечивают отправку пакетов, созданных в системе файрвола, с правильным исходным IP-адресом, соответствующим интерфейсу, через который они направляются.</para>
|
||||
|
||||
<note>
|
||||
<para>Если какой-либо из интерфейсов имеет динамический IP-адрес, то указанные правила можно создать с помощью переменных оболочки.
|
||||
Например, если
|
||||
<filename class="devicefile">eth0</filename> имеет динамический IP-адрес:
|
||||
</para>
|
||||
<para>Если какой-либо из интерфейсов имеет динамический IP-адрес, то указанные правила можно создать с помощью переменных оболочки. Например, если <filename class="devicefile">eth0</filename> имеет динамический IP-адрес:</para>
|
||||
|
||||
<para><filename>/etc/shorewall/params</filename>:</para>
|
||||
|
||||
<programlisting>ETH0_IP=$(получить-адрес-интерфейса eth0)</programlisting>
|
||||
<programlisting>ETH0_IP=$(find_first_interface_address eth0)</programlisting>
|
||||
|
||||
<para>/etc/shorewall/masq:</para>
|
||||
|
||||
@ -572,105 +478,115 @@ eth0 130.252.99.27 $ETH0_IP
|
||||
eth1 $ETH0_IP 130.252.99.27</programlisting>
|
||||
</note>
|
||||
|
||||
<para>Если есть маскируемые хосты, настройте в файле
|
||||
<filename>/etc/shorewall/masq</filename> маскарадинг для обоих провайдеров. Например, если маскируются хосты, подключенные через
|
||||
<filename
|
||||
class="devicefile">eth2</filename> то: </para>
|
||||
<para>Если есть маскируемые хосты, то настройте в файле <filename>/etc/shorewall/masq</filename> маскарадинг для обоих провайдеров. Например, если маскируются хосты, подключенные через <filename class="devicefile">eth2</filename> то это делается так:</para>
|
||||
|
||||
<programlisting>#INTERFACE SUBNET ADDRESS
|
||||
eth0 eth2 206.124.146.176
|
||||
eth1 eth2 130.252.99.27</programlisting>
|
||||
|
||||
<warning>
|
||||
<para>Записи в файле <filename>/etc/shorewall/masq</filename> никак не влияют на то, через какого провайдера пройдёт конкретное соединение.
|
||||
Для этого служат записи в файле
|
||||
<filename>/etc/shorewall/tcrules</filename> или <filename>/etc/shorewall/route_rules</filename>.</para>
|
||||
<para>Записи в файле <filename>/etc/shorewall/masq</filename> никак не влияют на то, через какого провайдера пройдёт конкретное соединение. Для этого применяются правила в файле <filename>/etc/shorewall/tcrules</filename> или <filename>/etc/shorewall/route_rules</filename>.</para>
|
||||
</warning>
|
||||
|
||||
<para>Предположим, что требуется направить весь исходящий трафик SMTP из локальной сети через провайдера 2. В файле
|
||||
<ulink
|
||||
url="traffic_shaping.htm">/etc/shorewall/tcrules</ulink> укажите следующее (и в версии Shorewall ниже 3.0.0 также задайте
|
||||
TC_ENABLED=Yes в файле <ulink
|
||||
url="???">/etc/shorewall/shorewall.conf</ulink>).</para>
|
||||
<para>Предположим, что требуется направить весь исходящий трафик SMTP из локальной сети через провайдера 2. В файле <ulink url="traffic_shaping.htm">/etc/shorewall/tcrules</ulink> укажите следующее (и в версии Shorewall ниже 3.0.0 также задайте TC_ENABLED=Yes в файле <ulink url="???">/etc/shorewall/shorewall.conf</ulink>).</para>
|
||||
|
||||
<programlisting>#MARK SOURCE DEST PROTO PORT(S) CLIENT USER TEST
|
||||
# PORT(S)
|
||||
2:P <локальная сеть> 0.0.0.0/0 tcp 25</programlisting>
|
||||
2:P <локальная сеть> 0.0.0.0/0 tcp 25</programlisting>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Приложения, работающие в системе файрвола </title>
|
||||
<section id="morethan2">
|
||||
<title>Если провайдеров больше, чем 2</title>
|
||||
|
||||
<para>Опыт показал, что иногда возникают неполадки с приложениями, работающими в системе файрвола.
|
||||
Если это имеет место, то свяжите приложение с определенным локальным IP-адресом вместо 0.
|
||||
</para>
|
||||
<para>Для более чем двух провайдеров требуется внести соответствующие дополнения: </para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Для каждого внешнего адреса в файл <filename>/etc/shorewall/masq</filename> необходимо добавить записи для случаев, когда соединение, использующее этот адрес как SOURCE, направляется через интерфейс с отличным адресом. </para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Для каждого внешнего интерфейса в файл <filename>/etc/shorewall/masq</filename> необходимо добавить записи для каждой внутренней подсети, которая будет маскироваться (или для которой применяется SNAT) через этот интерфейс. </para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para>Например, для eth3 с IP-адресом 16.105.78.4 и шлюзом 16.105.78.254, необходимо добавить следующее:</para>
|
||||
|
||||
<para><filename>/etc/shorewall/providers</filename>:<programlisting>#NAME NUMBER MARK DUPLICATE INTERFACE GATEWAY OPTIONS COPY
|
||||
ISP1 1 1 main eth0 206.124.146.254 track,balance eth2
|
||||
ISP2 2 2 main eth1 130.252.99.254 track,balance eth2
|
||||
ISP3 3 3 main eth3 16.105.78.254 track,balance eth2</programlisting></para>
|
||||
|
||||
<para><filename>/etc/shorewall/masq</filename>:<programlisting>#INTERFACE SUBNET ADDRESS
|
||||
eth0 130.252.99.27 206.124.146.176
|
||||
eth3 130.252.99.27 16.105.78.4
|
||||
eth1 206.124.146.176 130.252.99.27
|
||||
eth3 206.124.146.176 16.105.78.4
|
||||
eth0 16.106.78.4 206.124.146.176
|
||||
eth1 16.106.78.4 130.252.99.27
|
||||
eth0 eth2 206.124.146.176
|
||||
eth1 eth2 130.252.99.27
|
||||
eth3 eth2 16.105.78.4</programlisting></para>
|
||||
</section>
|
||||
|
||||
<section id="Local">
|
||||
<title>Приложения, работающие в системе файрвола</title>
|
||||
|
||||
<para>Иногда возникают неполадки с приложениями, работающими в системе файрвола. Это часто имеет место, для для внешних интерфейсов в файле /etc/shorewall/interfaces указана опция <emphasis role="bold">routefilter</emphasis> (см. <link linkend="Martians">выше</link>). В этом случае рекомендуется связать приложение с определенным локальным IP-адресом вместо 0.</para>
|
||||
|
||||
<para>Примеры:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Squid: В файле <filename>squid.conf</filename> задайте <emphasis
|
||||
role="bold">tcp_outgoing_address</emphasis> равным IP-адресу интерфейса, на котором будет работать Squid. </para>
|
||||
<para>Squid: В файле <filename>squid.conf</filename> задайте <emphasis role="bold">tcp_outgoing_address</emphasis> равным IP-адресу интерфейса, на котором будет работать Squid.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Для OpenVPN задайте опцию <emphasis role="bold">local
|
||||
</emphasis>(<emphasis role="bold">--local</emphasis> в командной строке с IP-адресом, на котором должен принимать соединения сервер.
|
||||
</para>
|
||||
<para>Для OpenVPN задайте опцию <emphasis role="bold">local</emphasis>(<emphasis role="bold">--local</emphasis> в командной строке с IP-адресом, на котором должен принимать соединения сервер.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<section id="route_rules">
|
||||
<title>/etc/shorewall/route_rules</title>
|
||||
|
||||
<para>Файл <filename>/etc/shorewall/route_rules</filename> добавлен в
|
||||
Shorewall в версии 3.2.0. Файл <filename>route_rules</filename> позволяет направлять определенный трафик через конкретного провайдера, как и записи из файла
|
||||
<filename>tcrules</filename> . Разница между этими двумя файлами состоит в том что записи в
|
||||
<filename>route_rules</filename> никак не связаны с Netfilter.</para>
|
||||
<para>Файл <filename>/etc/shorewall/route_rules</filename> добавлен в Shorewall в версии 3.2.0. Файл <filename>route_rules</filename> позволяет направлять определенный трафик через конкретного провайдера, как и записи из файла <filename>tcrules</filename> . Разница между этими двумя файлами состоит в том что записи в <filename>route_rules</filename> никак не связаны с Netfilter.</para>
|
||||
|
||||
<warning>
|
||||
<para>Записи в файле <filename>/etc/shorewall/route_rules</filename>
|
||||
необратимо изменяют маршрутизацию системы, то есть эти изменения не отменяются при вызове команды <command>shorewall stop</command>
|
||||
или <command>shorewall clear</command>. Для того чтобы восстановить исходные маршруты, может потребоваться перезапустить сеть. Обычно это делает команда <command>/etc/init.d/network restart</command> или <command>/etc/init.d/networking restart</command>. Обратитесь к документации по сети вашего дистрибутива.</para>
|
||||
<para>В Shorewall версий ниже 3.4.0 записи из файла <filename>/etc/shorewall/route_rules</filename> необратимо изменяют маршрутизацию в системе, то есть эти изменения не отменяются при вызове команды <command>shorewall stop</command> или <command>shorewall clear</command>. Для того чтобы восстановить исходные маршруты, может потребоваться перезапустить сеть. Обычно это делает команда <command>/etc/init.d/network restart</command> или <command>/etc/init.d/networking restart</command>. Обратитесь к документации по сети вашего дистрибутива.</para>
|
||||
|
||||
<para>Также обратите внимание на <link linkend="Undo">предупреждение в разделе
|
||||
<emphasis>Какие функции выполняет запись в файле providers</emphasis></link>.</para>
|
||||
<para>Также обратите внимание на <link linkend="Undo">предупреждение в разделе <emphasis>Какие функции выполняет запись в файле providers</emphasis></link>.</para>
|
||||
</warning>
|
||||
|
||||
<section>
|
||||
<title>Правила маршрутизации </title>
|
||||
<section id="Routing_rules">
|
||||
<title>Правила маршрутизации</title>
|
||||
|
||||
<para>Правила маршрутизации управляются ядром Linux. Их можно просмотреть командой
|
||||
<command>ip rule ls</command> . При маршрутизации пакета правила обрабатываются поочередно, пока не будет найден маршрут пакета.
|
||||
</para>
|
||||
<para>Правила маршрутизации управляются ядром Linux. Их можно просмотреть командой <command>ip rule ls</command> . При маршрутизации пакета правила обрабатываются в указанном порядке, пока не будет найден маршрут пакета.</para>
|
||||
|
||||
<programlisting>gateway:~ # <command>ip rule ls</command>
|
||||
0: from all lookup local <=== Локальные IP-адреса (система файрвола)
|
||||
10001: from all fwmark 0x1 lookup Blarg <=== Это и следующее правило генерируются
|
||||
0: from all lookup local <=== Локальные IP-адреса (система файрвола)
|
||||
10001: from all fwmark 0x1 lookup Blarg <=== Это и следующее правило генерируются
|
||||
10002: from all fwmark 0x2 lookup Comcast записями 'MARK' из /etc/shorewall/providers.
|
||||
20000: from 206.124.146.176 lookup Blarg <=== Это и следующее правило не генерируются, если
|
||||
20000: from 206.124.146.176 lookup Blarg <=== Это и следующее правило не генерируются, если
|
||||
20256: from 24.12.22.33 lookup Comcast указана опция 'loose'; они основаны на выводе 'ip addr ls'
|
||||
32766: from all lookup main <=== Это таблица маршрутизации, показанная в выводе 'iproute -n'
|
||||
32767: from all lookup default <=== Эта таблица обычно пуста
|
||||
</programlisting>
|
||||
32766: from all lookup main <=== Это таблица маршрутизации, показанная в выводе 'iproute -n'
|
||||
32767: from all lookup default <=== Эта таблица обычно пуста
|
||||
gateway:~ #</programlisting>
|
||||
|
||||
<para>В этом примере есть два провайдера, Blarg и Comcast, с метками MARK 1 и 2 соответственно. </para>
|
||||
<para>В этом примере настроены два провайдера: Blarg и Comcast, с метками MARK 1 и 2 соответственно.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Файл route_rules </title>
|
||||
<section id="route_rules_columns">
|
||||
<title>Файл route_rules</title>
|
||||
|
||||
<para>Далее описаны столбцы файла: </para>
|
||||
<para>Далее описаны столбцы файла:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>SOURCE (Необязательный)</term>
|
||||
|
||||
<listitem>
|
||||
<para>IP-адрес (сеть или хост), с которыми совпадает исходный IP-адрес пакета.
|
||||
Может указываться как имя интерфейса, за которым следует необязательная часть из ":" и адреса. Если указано устройство 'lo', то пакет должен исходит из системы файрвола.
|
||||
</para>
|
||||
<para>IP-адрес (подсеть или хост), с которыми совпадает исходный IP-адрес пакета. Может указываться как имя интерфейса, за которым следует необязательная часть из ":" и адреса. Если указано устройство 'lo', то пакет должен исходить из системы файрвола.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@ -678,11 +594,9 @@ Shorewall в версии 3.2.0. Файл <filename>route_rules</filename> по
|
||||
<term>DEST (Необязательный)</term>
|
||||
|
||||
<listitem>
|
||||
<para>IP-адрес (сеть или хост), с которыми совпадает целевой IP-адрес пакета.</para>
|
||||
<para>IP-адрес (подсеть или хост), с которыми совпадает целевой IP-адрес пакета.</para>
|
||||
|
||||
<para>Если опущен SOURCE или DEST, то в укажите в одном из этих полей "-".
|
||||
Необходимо задать хотя бы одно из полей SOURCE или
|
||||
DEST.</para>
|
||||
<para>Если опущен SOURCE или DEST, то в укажите в одном из этих полей "-". Необходимо задать хотя бы одно из полей SOURCE или DEST.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@ -690,8 +604,7 @@ Shorewall в версии 3.2.0. Файл <filename>route_rules</filename> по
|
||||
<term>PROVIDER</term>
|
||||
|
||||
<listitem>
|
||||
<para>Провайдер, через которого должен проходить трафик. Может быть задан как имя провайдера или его номер.
|
||||
</para>
|
||||
<para>Провайдер, через которого должен проходить трафик. Может быть задан как имя провайдера или его номер.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@ -699,30 +612,25 @@ Shorewall в версии 3.2.0. Файл <filename>route_rules</filename> по
|
||||
<term>PRIORITY</term>
|
||||
|
||||
<listitem>
|
||||
<para>Приоритет правила, определяющий порядок обработки правил.
|
||||
</para>
|
||||
<para>Приоритет правила, определяющий порядок обработки правил.</para>
|
||||
|
||||
<para>1000-1999: перед правилами Shorewall, генерируемыми на основе меток 'MARK' </para>
|
||||
<para>1000-1999: перед правилами Shorewall, генерируемыми на основе меток 'MARK'</para>
|
||||
|
||||
<para>11000- 11999: после правил 'MARK', но перед правилами
|
||||
Shorewall, генерируемыми для интерфейсов провайдеров. </para>
|
||||
<para>11000- 11999: после правил 'MARK', но перед правилами Shorewall, генерируемыми для интерфейсов провайдеров.</para>
|
||||
|
||||
<para>26000-26999: после интерфейсов провайдеров, но перед правилом 'default'.
|
||||
</para>
|
||||
<para>26000-26999: после интерфейсов провайдеров, но перед правилом 'default'.</para>
|
||||
|
||||
<para>Правила с одинаковым приоритетом обрабатываются в том порядке, как они указаны в файле.
|
||||
</para>
|
||||
<para>Правила с одинаковым приоритетом обрабатываются в том порядке, как они указаны в файле.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Пример 1: направить весь трафик, приходящий на eth1, через Comcast.</para>
|
||||
<para>Пример 1: Направить весь трафик, приходящий на eth1, через Comcast.</para>
|
||||
|
||||
<programlisting>#SOURCE DEST PROVIDER PRIORITY
|
||||
eth1 - Comcast 1000</programlisting>
|
||||
|
||||
<para>С этим правилом вывод <command>ip rule ls</command>
|
||||
будет следующим. </para>
|
||||
<para>С этим правилом вывод <command>ip rule ls</command> будет следующим.</para>
|
||||
|
||||
<para><programlisting>gateway:~ # <command>ip rule ls</command>
|
||||
0: from all lookup local
|
||||
@ -733,13 +641,9 @@ eth1 - Comcast 1000</programlisting>
|
||||
20256: from 24.12.22.33 lookup Comcast
|
||||
32766: from all lookup main
|
||||
32767: from all lookup default
|
||||
gateway:~ #</programlisting>Обратите внимание, что приоритет 1000 приводит к тому, что проверка на
|
||||
<filename class="devicefile">eth1</filename> осуществляется перед проверкой fwmark. </para>
|
||||
gateway:~ #</programlisting>Обратите внимание, что приоритет 1000 приводит к тому, что проверка на <filename class="devicefile">eth1</filename> осуществляется перед проверкой fwmark.</para>
|
||||
|
||||
<para>Пример 2: используется OpenVPN (маршрутизируемая конфигурация /tunX) в сочетании с несколькими провайдерами.
|
||||
В этом случае необходимо настроить правило, согласно которому трафик OpenVPN будет направляться обратно через интерфейс tunX, а не через какого-либо из провайдеров.
|
||||
10.8.0.0/24 - это подсеть, выбранная для OpenVPN (сервер 10.8.0.0
|
||||
255.255.255.0).</para>
|
||||
<para>Пример 2: Используется OpenVPN (маршрутизируемая конфигурация /tunX) в сочетании с несколькими провайдерами. В этом случае необходимо настроить правило, согласно которому трафик OpenVPN будет направляться обратно через интерфейс tunX, а не через какого-либо из провайдеров. 10.8.0.0/24 - это подсеть, выбранная для OpenVPN (сервер 10.8.0.0 255.255.255.0).</para>
|
||||
|
||||
<programlisting>#SOURCE DEST PROVIDER PRIORITY
|
||||
- 10.8.0.0/24 main 1000</programlisting>
|
||||
|
@ -1,18 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
||||
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
||||
<article>
|
||||
<!--$Id: blacklisting_support.xml 5252 2007-01-18 15:30:55Z bvukich $-->
|
||||
<!--$Id: blacklisting_support.xml 6774 2007-07-04 00:10:35Z teastep $-->
|
||||
|
||||
<articleinfo>
|
||||
<title>Чёрные списки в Shorewall </title>
|
||||
<title>Чёрные списки в Shorewall</title>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Tom</firstname>
|
||||
<author><firstname>Tom</firstname>
|
||||
|
||||
<surname>Eastep</surname>
|
||||
</author>
|
||||
<surname>Eastep</surname></author>
|
||||
</authorgroup>
|
||||
|
||||
<pubdate><?dbtimestamp format="Y/m/d"?></pubdate>
|
||||
@ -24,98 +21,71 @@
|
||||
</copyright>
|
||||
|
||||
<copyright>
|
||||
|
||||
<year>2007</year>
|
||||
|
||||
<holder>Russian Translation: Grigory Mokhin</holder>
|
||||
</copyright>
|
||||
|
||||
<legalnotice>
|
||||
<para>Этот документ разрешается копировать, распространять и/или изменять при выполнении условий лицензии GNU Free Documentation License версии
|
||||
1.2 или более поздней, опубликованной Free Software Foundation; без неизменяемых разделов, без текста на верхней обложке, без текста на нижней обложке. Копия лицензии приведена по ссылке
|
||||
<quote><ulink url="GnuCopyright.htm">GNU Free Documentation
|
||||
License</ulink></quote>.</para>
|
||||
<para>Этот документ разрешается копировать, распространять и/или изменять при выполнении условий лицензии GNU Free Documentation License версии 1.2 или более поздней, опубликованной Free Software Foundation; без неизменяемых разделов, без текста на верхней обложке, без текста на нижней обложке. Копия лицензии приведена по ссылке <quote><ulink url="GnuCopyright.htm">GNU Free Documentation License</ulink></quote>.</para>
|
||||
</legalnotice>
|
||||
</articleinfo>
|
||||
|
||||
<section>
|
||||
<section id="Intro">
|
||||
<title>Введение</title>
|
||||
|
||||
<para>В Shorewall предусмотрены два вида чёрных списков, статические и динамические.
|
||||
Опция BLACKLISTNEWONLY в файле /etc/shorewall/shorewall.conf задаёт параметры фильтрации согласно этим спискам:
|
||||
</para>
|
||||
<para>В Shorewall предусмотрены два вида чёрных списков, статические и динамические. Опция BLACKLISTNEWONLY в файле /etc/shorewall/shorewall.conf задаёт параметры фильтрации согласно этим спискам:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>BLACKLISTNEWONLY=No -- проверка осуществляется для всех входящих пакетов.
|
||||
Новые записи в чёрном списке позволяют заблокировать уже существующие соединения.
|
||||
</para>
|
||||
<para>BLACKLISTNEWONLY=No -- проверка осуществляется для всех входящих пакетов. Новые записи в чёрном списке позволяют прервать уже существующие соединения.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>BLACKLISTNEWONLY=Yes -- проверка осуществляется только для новых запросов на установление соединения.
|
||||
Записи в чёрном списке не влияют на уже существующие соединения. На соответствие чёрному списку проверяется только адрес источника.
|
||||
</para>
|
||||
<para>BLACKLISTNEWONLY=Yes -- проверка осуществляется только для новых запросов на установление соединения. Записи в чёрном списке не влияют на уже существующие соединения. На соответствие чёрному списку проверяется только адрес источника.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<important>
|
||||
<para><emphasis role="bold">На соответствие чёрному списку проверяется только адрес источника </emphasis>. Чёрные списки закрывают доступ только хостам, перечисленным в списке, но не закрывают доступ к самим этим хостам.
|
||||
</para>
|
||||
<para><emphasis role="bold">На соответствие чёрному списку проверяется только адрес источника </emphasis>. Чёрные списки закрывают доступ только хостам, перечисленным в списке, но не закрывают доступ к самим этим хостам.</para>
|
||||
</important>
|
||||
|
||||
<important>
|
||||
<para><emphasis role="bold">Динамические чёрные списки в Shorewall непригодны для случаев, когда список содержит тысячи адресов.
|
||||
Статические списки могут работать с большим числом адресов, но только при использовании наборов IP (ipset)</emphasis>. Без ipset большие чёрные списки будут загружаться слишком долго и заметно снизят производительность файрвола.
|
||||
</para>
|
||||
<para><emphasis role="bold">Динамические чёрные списки в Shorewall непригодны для случаев, когда список содержит тысячи адресов. Статические списки могут работать с большим числом адресов, но только при использовании наборов IP (ipset)</emphasis>. Без ipset большие чёрные списки будут загружаться слишком долго и заметно снизят производительность файрвола.</para>
|
||||
</important>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Статические чёрные списки </title>
|
||||
<section id="Static">
|
||||
<title>Статические чёрные списки</title>
|
||||
|
||||
<para>Далее описаны параметры конфигурации статических чёрных списков в Shorewall:
|
||||
</para>
|
||||
<para>Далее описаны параметры конфигурации статических чёрных списков в Shorewall:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Пакеты с хостов из чёрного списка будут отбрасываться без уведомления (drop) или с уведомлением (reject), согласно параметру BLACKLIST_DISPOSITION из файла <ulink
|
||||
url="manpages/shorewall.conf.htmlig"><filename>/etc/shorewall/shorewall.conf</filename>.</ulink></para>
|
||||
<para>Пакеты с хостов из чёрного списка будут отбрасываться без уведомления (drop) или с уведомлением (reject), согласно параметру BLACKLIST_DISPOSITION из файла <ulink url="manpages/shorewall.conf.html"><filename>/etc/shorewall/shorewall.conf</filename>.</ulink></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Пакеты с хостов из чёрного списка будут заноситься в протокол с заданным уровнем syslog согласно параметру BLACKLIST_LOGLEVEL из файла <ulink
|
||||
url="manpages/shorewall.conf.htmlig"><filename>/etc/shorewall/shorewall.conf</filename></ulink>.</para>
|
||||
<para>Пакеты с хостов из чёрного списка будут заноситься в протокол с заданным уровнем syslog согласно параметру BLACKLIST_LOGLEVEL из файла <ulink url="manpages/shorewall.conf.html"><filename>/etc/shorewall/shorewall.conf</filename></ulink>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>IP-адреса или подсети, которые требуется занести в чёрный список, указываются в файле <ulink
|
||||
url="manpages/shorewall-blacklist.html"><filename>/etc/shorewall/blacklist</filename></ulink>.
|
||||
В этом файле можно также указать имена протоколов, номеров портов или имён служб.
|
||||
</para>
|
||||
<para>IP-адреса или подсети, которые требуется занести в чёрный список, указываются в файле <ulink url="manpages/shorewall-blacklist.html"><filename>/etc/shorewall/blacklist</filename></ulink>. В этом файле можно также указать имена протоколов, номера портов или имена служб.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Интерфейсы, для которых входящие пакеты проверяются на соответствие чёрному списку, задаются с помощью опции
|
||||
<quote>blacklist</quote>
|
||||
в файле <ulink
|
||||
url="manpages/shorewall-interfaces.html"><filename>/etc/shorewall/interfaces</filename></ulink>.</para>
|
||||
<para>Интерфейсы, для которых входящие пакеты проверяются на соответствие чёрному списку, задаются с помощью опции <quote>blacklist</quote> в файле <ulink url="manpages/shorewall-interfaces.html"><filename>/etc/shorewall/interfaces</filename></ulink>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Чёрный список из файла
|
||||
<filename>/etc/shorewall/blacklist</filename> можно обновить командой <quote><ulink
|
||||
url="starting_and_stopping_shorewall.htm"><command>shorewall
|
||||
refresh</command></ulink></quote> .</para>
|
||||
<para>Чёрный список из файла <filename>/etc/shorewall/blacklist</filename> можно обновить командой <quote><ulink url="starting_and_stopping_shorewall.htm"><command>shorewall refresh</command></ulink></quote>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>При наличии большого статического чёрного списка можно включить опцию DELAYBLACKLISTLOAD в файле shorewall.conf (начиная с Shorewall версии
|
||||
2.2.0). Если DELAYBLACKLISTLOAD=Yes, то Shorewall будет загружать правила чёрного списка после установления соединений.
|
||||
Хотя при этом соединения с хостов из чёрного списка могут осуществляться в течение времени создания списка, эта опция позволяет существенно снизить время запрета соединений в ходе команд "shorewall [re]start".</para>
|
||||
<para>При наличии большого статического чёрного списка можно включить опцию DELAYBLACKLISTLOAD в файле shorewall.conf (начиная с Shorewall версии 2.2.0). Если DELAYBLACKLISTLOAD=Yes, то Shorewall будет загружать правила чёрного списка после установления соединений. Хотя при этом соединения с хостов из чёрного списка могут осуществляться в течение времени создания списка, эта опция позволяет существенно снизить время запрета соединений в ходе выполнения команд "shorewall [re]start".</para>
|
||||
|
||||
<para>Начиная с Shorewall версии 2.4.0 поддерживаются наборы IP, или <ulink
|
||||
url="ipsets.html">ipsets</ulink> для определения статического чёрного списка. Пример:
|
||||
</para>
|
||||
<para>Для определения статического чёрного списка в Shorewall начиная с версии 2.4.0 поддерживаются наборы IP, или <ulink url="ipsets.html">ipsets</ulink>. Пример:</para>
|
||||
|
||||
<programlisting>#ADDRESS/SUBNET PROTOCOL PORT
|
||||
+Blacklistports[dst]
|
||||
@ -123,85 +93,71 @@
|
||||
+Blacklist[src,dst]
|
||||
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE</programlisting>
|
||||
|
||||
<para>В этом примере задан ipset набора портов (portmap)
|
||||
<emphasis>Blacklistports</emphasis> для запрета трафика на целевые порты, указанные в этом ipset. Есть также
|
||||
<emphasis>Blacklistnets</emphasis> (типа <emphasis>nethash</emphasis>) и
|
||||
<emphasis>Blacklist</emphasis> (типа <emphasis>iphash</emphasis>), закрывающие доступ с подсетей и отдельных адресов.
|
||||
Обратите внимание, что указаны
|
||||
[src,dst], чтобы можно было связать отдельные записи наборов с другими portmap ipset и включить чёрные списки сочетаний ( <emphasis>адрес источника</emphasis>, <emphasis>целевой порт</emphasis>).
|
||||
Пример: </para>
|
||||
<para>В этом примере задан ipset набора портов (portmap) <emphasis>Blacklistports</emphasis> для запрета трафика на целевые порты, указанные в этом ipset. Есть также списки сетей - <emphasis>Blacklistnets</emphasis> (типа <emphasis>nethash</emphasis>) и адресов - <emphasis>Blacklist</emphasis> (типа <emphasis>iphash</emphasis>), закрывающие доступ из подсетей и с отдельных адресов. Обратите внимание, что указаны [src,dst], чтобы можно было связать отдельные записи наборов с другими portmap ipset и включить чёрные списки сочетаний ( <emphasis>адрес источника</emphasis>, <emphasis>целевой порт</emphasis>). Пример:</para>
|
||||
|
||||
<programlisting>ipset -N SMTP portmap --from 1 --to 31
|
||||
ipset -A SMTP 25
|
||||
ipset -A Blacklist 206.124.146.177
|
||||
ipset -B Blacklist 206.124.146.177 -b SMTP</programlisting>
|
||||
|
||||
<para>Блокируется трафик SMTP с хоста 206.124.146.177.</para>
|
||||
<para>При этом блокируется трафик SMTP с хоста 206.124.146.177.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Динамические чёрные списки </title>
|
||||
<section id="Dynamic">
|
||||
<title>Динамические чёрные списки</title>
|
||||
|
||||
<para>Динамические списки не имеют никаких параметров конфигурации, но настраиваются следующими командами /sbin/shorewall[-lite]: </para>
|
||||
<para>Динамические списки не имеют никаких параметров конфигурации, но настраиваются следующими командами /sbin/shorewall[-lite]:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>drop <emphasis><список IP-адресов></emphasis> - пакеты с указанных IP-адресов будут отбрасываться файрволом без уведомления.
|
||||
</para>
|
||||
<para>drop <emphasis><список IP-адресов></emphasis> - пакеты с указанных IP-адресов будут отбрасываться файрволом без уведомления. </para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>reject <emphasis><список IP-адресов></emphasis> - пакеты с указанных IP-адресов будут отбрасываться файрволом с уведомлением.</para>
|
||||
<para>reject <emphasis><список IP-адресов></emphasis> - пакеты с указанных IP-адресов будут отбрасываться файрволом с уведомлением. </para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>allow <emphasis><список IP-адресов></emphasis> - разрешить пакеты с хостов, ранее занесённых в чёрный список командами
|
||||
<emphasis>drop</emphasis> или <emphasis>reject</emphasis>
|
||||
.</para>
|
||||
<para>allow <emphasis><список IP-адресов></emphasis> - разрешить пакеты с хостов, ранее занесённых в чёрный список командами <emphasis>drop</emphasis> или <emphasis>reject</emphasis>. </para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>save - сохранить конфигурацию динамического чёрного списка, чтобы она восстановилась автоматически при следующем перезапуске файрвола.
|
||||
</para>
|
||||
<para>save - сохранить конфигурацию динамического чёрного списка; она будет восстановлена автоматически при следующем перезапуске файрвола.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>show dynamic - показать конфигурацию динамического чёрного списка.
|
||||
</para>
|
||||
<para>show dynamic - показать конфигурацию динамического чёрного списка.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Начиная с Shorewall версии 3.2.0 Beta2 доступны следующие дополнительные команды:
|
||||
</para>
|
||||
<para>Начиная с Shorewall версии 3.2.0 Beta2 доступны следующие дополнительные команды:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>logdrop <emphasis><список IP-адресов></emphasis> - пакеты с указанных IP-адресов будут заноситься в протокол и отбрасываться файрволом без уведомления. Уровень протокола задаётся опцией BLACKLIST_LOGLEVEL в ходе последнего [пере]запуска (по умолчанию - 'info', если опция BLACKLIST_LOGLEVEL не задана). </para>
|
||||
<para>logdrop <emphasis><список IP-адресов></emphasis> - пакеты с указанных IP-адресов будут заноситься в протокол и отбрасываться файрволом без уведомления. Уровень протокола задаётся опцией BLACKLIST_LOGLEVEL в ходе последнего [пере]запуска (по умолчанию - 'info', если опция BLACKLIST_LOGLEVEL не задана).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>logreject <emphasis><список IP-адресов></emphasis> - пакеты с указанных IP-адресов будут заноситься в протокол и отбрасываться файрволом с уведомлением. Уровень протокола задаётся опцией BLACKLIST_LOGLEVEL в ходе последнего [пере]запуска (по умолчанию - 'info', если опция BLACKLIST_LOGLEVEL не задана).</para>
|
||||
<para>logreject <emphasis><список IP-адресов></emphasis> - пакеты с указанных IP-адресов будут заноситься в протокол и отбрасываться файрволом с уведомлением. Уровень протокола задаётся опцией BLACKLIST_LOGLEVEL в ходе последнего [пере]запуска (по умолчанию - 'info', если опция BLACKLIST_LOGLEVEL не задана).</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Динамические чёрные списки не зависят от опции
|
||||
<quote>blacklist</quote> в файле
|
||||
<filename>/etc/shorewall/interfaces</filename>.</para>
|
||||
<para>Динамические чёрные списки не зависят от опции <quote>blacklist</quote> в файле <filename>/etc/shorewall/interfaces</filename>.</para>
|
||||
|
||||
<example>
|
||||
<title>Игноpиpовать пакеты с двух IP-адресов </title>
|
||||
<example id="Ignore">
|
||||
<title>Игноpиpовать пакеты с двух IP-адресов</title>
|
||||
|
||||
<programlisting> <command>shorewall[-lite] drop 192.0.2.124 192.0.2.125</command></programlisting>
|
||||
|
||||
<para>Блокирует доступ с хостов 192.0.2.124 и 192.0.2.125</para>
|
||||
<para>При этом блокируется доступ с хостов 192.0.2.124 и 192.0.2.125</para>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>Разрешить пакеты с IP-адреса </title>
|
||||
<example id="Allow">
|
||||
<title>Разрешить пакеты с IP-адреса</title>
|
||||
|
||||
<programlisting> <command>shorewall[-lite] allow 192.0.2.125</command></programlisting>
|
||||
|
||||
<para>Разрешает трафик с 192.0.2.125.</para>
|
||||
</example>
|
||||
</section>
|
||||
</article>
|
||||
</article>
|
||||
|
Loading…
Reference in New Issue
Block a user