mirror of
https://gitlab.com/shorewall/code.git
synced 2024-11-30 19:43:45 +01:00
207 lines
12 KiB
XML
207 lines
12 KiB
XML
|
<?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">
|
|||
|
<article>
|
|||
|
<!--$Id: blacklisting_support.xml 5252 2007-01-18 15:30:55Z bvukich $-->
|
|||
|
|
|||
|
<articleinfo>
|
|||
|
<title>Чёрные списки в Shorewall </title>
|
|||
|
|
|||
|
<authorgroup>
|
|||
|
<author>
|
|||
|
<firstname>Tom</firstname>
|
|||
|
|
|||
|
<surname>Eastep</surname>
|
|||
|
</author>
|
|||
|
</authorgroup>
|
|||
|
|
|||
|
<pubdate><?dbtimestamp format="Y/m/d"?></pubdate>
|
|||
|
|
|||
|
<copyright>
|
|||
|
<year>2002-2006</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>
|
|||
|
</legalnotice>
|
|||
|
</articleinfo>
|
|||
|
|
|||
|
<section>
|
|||
|
<title>Введение</title>
|
|||
|
|
|||
|
<para>В Shorewall предусмотрены два вида чёрных списков, статические и динамические.
|
|||
|
Опция BLACKLISTNEWONLY в файле /etc/shorewall/shorewall.conf задаёт параметры фильтрации согласно этим спискам:
|
|||
|
</para>
|
|||
|
|
|||
|
<orderedlist>
|
|||
|
<listitem>
|
|||
|
<para>BLACKLISTNEWONLY=No -- проверка осуществляется для всех входящих пакетов.
|
|||
|
Новые записи в чёрном списке позволяют заблокировать уже существующие соединения.
|
|||
|
</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>BLACKLISTNEWONLY=Yes -- проверка осуществляется только для новых запросов на установление соединения.
|
|||
|
Записи в чёрном списке не влияют на уже существующие соединения. На соответствие чёрному списку проверяется только адрес источника.
|
|||
|
</para>
|
|||
|
</listitem>
|
|||
|
</orderedlist>
|
|||
|
|
|||
|
<important>
|
|||
|
<para><emphasis role="bold">На соответствие чёрному списку проверяется только адрес источника </emphasis>. Чёрные списки закрывают доступ только хостам, перечисленным в списке, но не закрывают доступ к самим этим хостам.
|
|||
|
</para>
|
|||
|
</important>
|
|||
|
|
|||
|
<important>
|
|||
|
<para><emphasis role="bold">Динамические чёрные списки в Shorewall непригодны для случаев, когда список содержит тысячи адресов.
|
|||
|
Статические списки могут работать с большим числом адресов, но только при использовании наборов IP (ipset)</emphasis>. Без ipset большие чёрные списки будут загружаться слишком долго и заметно снизят производительность файрвола.
|
|||
|
</para>
|
|||
|
</important>
|
|||
|
</section>
|
|||
|
|
|||
|
<section>
|
|||
|
<title>Статические чёрные списки </title>
|
|||
|
|
|||
|
<para>Далее описаны параметры конфигурации статических чёрных списков в Shorewall:
|
|||
|
</para>
|
|||
|
|
|||
|
<itemizedlist>
|
|||
|
<listitem>
|
|||
|
<para>Пакеты с хостов из чёрного списка будут отбрасываться без уведомления (drop) или с уведомлением (reject), согласно параметру BLACKLIST_DISPOSITION из файла <ulink
|
|||
|
url="Documentation.htm#Config"><filename>/etc/shorewall/shorewall.conf</filename>.</ulink></para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Пакеты с хостов из чёрного списка будут заноситься в протокол с заданным уровнем syslog согласно параметру BLACKLIST_LOGLEVEL из файла <ulink
|
|||
|
url="Documentation.htm#Config"><filename>/etc/shorewall/shorewall.conf</filename></ulink>.</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>IP-адреса или подсети, которые требуется занести в чёрный список, указываются в файле <ulink
|
|||
|
url="Documentation.htm#Blacklist"><filename>/etc/shorewall/blacklist</filename></ulink>.
|
|||
|
В этом файле можно также указать имена протоколов, номеров портов или имён служб.
|
|||
|
</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>Интерфейсы, для которых входящие пакеты проверяются на соответствие чёрному списку, задаются с помощью опции
|
|||
|
<quote>blacklist</quote>
|
|||
|
в файле <ulink
|
|||
|
url="Documentation.htm#Interfaces"><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>
|
|||
|
</listitem>
|
|||
|
</itemizedlist>
|
|||
|
|
|||
|
<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>
|
|||
|
|
|||
|
<programlisting>#ADDRESS/SUBNET PROTOCOL PORT
|
|||
|
+Blacklistports[dst]
|
|||
|
+Blacklistnets[src,dst]
|
|||
|
+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>
|
|||
|
|
|||
|
<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>
|
|||
|
</section>
|
|||
|
|
|||
|
<section>
|
|||
|
<title>Динамические чёрные списки </title>
|
|||
|
|
|||
|
<para>Динамические списки не имеют никаких параметров конфигурации, но настраиваются следующими командами /sbin/shorewall[-lite]: </para>
|
|||
|
|
|||
|
<itemizedlist>
|
|||
|
<listitem>
|
|||
|
<para>drop <emphasis><список IP-адресов></emphasis> - пакеты с указанных IP-адресов будут отбрасываться файрволом без уведомления.
|
|||
|
</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>reject <emphasis><список IP-адресов></emphasis> - пакеты с указанных IP-адресов будут отбрасываться файрволом с уведомлением.</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>allow <emphasis><список IP-адресов></emphasis> - разрешить пакеты с хостов, ранее занесённых в чёрный список командами
|
|||
|
<emphasis>drop</emphasis> или <emphasis>reject</emphasis>
|
|||
|
.</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>save - сохранить конфигурацию динамического чёрного списка, чтобы она восстановилась автоматически при следующем перезапуске файрвола.
|
|||
|
</para>
|
|||
|
</listitem>
|
|||
|
|
|||
|
<listitem>
|
|||
|
<para>show dynamic - показать конфигурацию динамического чёрного списка.
|
|||
|
</para>
|
|||
|
</listitem>
|
|||
|
</itemizedlist>
|
|||
|
|
|||
|
<para>Начиная с Shorewall версии 3.2.0 Beta2 доступны следующие дополнительные команды:
|
|||
|
</para>
|
|||
|
|
|||
|
<itemizedlist>
|
|||
|
<listitem>
|
|||
|
<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>
|
|||
|
</listitem>
|
|||
|
</itemizedlist>
|
|||
|
|
|||
|
<para>Динамические чёрные списки не зависят от опции
|
|||
|
<quote>blacklist</quote> в файле
|
|||
|
<filename>/etc/shorewall/interfaces</filename>.</para>
|
|||
|
|
|||
|
<example>
|
|||
|
<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>
|
|||
|
</example>
|
|||
|
|
|||
|
<example>
|
|||
|
<title>Разрешить пакеты с IP-адреса </title>
|
|||
|
|
|||
|
<programlisting> <command>shorewall[-lite] allow 192.0.2.125</command></programlisting>
|
|||
|
|
|||
|
<para>Разрешает трафик с 192.0.2.125.</para>
|
|||
|
</example>
|
|||
|
</section>
|
|||
|
</article>
|