<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
<article>
  <!--$Id$-->

  <articleinfo>
    <title>Анатомия Shorewall 4.0</title>

    <authorgroup>
      <author>
        <firstname>Tom</firstname>

        <surname>Eastep</surname>
      </author>
    </authorgroup>

    <pubdate><?dbtimestamp format="Y/m/d"?></pubdate>

    <copyright>
      <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>
    </legalnotice>
  </articleinfo>

  <section id="Products">
    <title>Продукты</title>

    <para>В состав Shorewall 4.0 входят следующие четыре пакета. </para>

    <orderedlist>
      <listitem>
        <para><emphasis role="bold">Shorewall-common</emphasis>. Этот пакет необходимо установить хотя бы в одной системе в вашей сети.  В этой системе также должны быть установлены Shorewall-shell и/или Shorewall-perl. </para>
      </listitem>

      <listitem>
        <para><emphasis role="bold">Shorewall-shell</emphasis>. Этот пакет содержит прежний компилятор конфигурации Shorewall, написанный на Bourne Shell. Этот компилятор работает в большинстве систем, но он медленный, и его сопровождение стало затруднительным.</para>
      </listitem>

      <listitem>
        <para><emphasis role="bold">Shorewall-perl</emphasis>. Этот компилятор заменяет Shorewall-shell и написан на языке Perl.  Он работает на всех платформах Unix, поддерживающих Perl (включая Cygwin), и рекомендуется для всех систем, где Shorewall устанавливается заново. </para>
      </listitem>

      <listitem>
        <para><emphasis role="bold">Shorewall-lite</emphasis>. В Shorewall предусмотрена возможность централизованного управления несколькими системами файрволов. Для этого применяется пакет Shorewall lite.  Полностью продукт Shorewall, включая Shorewall-shell и/или Shorewall-perl, устанавливается в центральной административной системе, где генерируются сценарии Shorewall.  Эти сценарии копируются в системы файрволов, где они выполняются под управлением Shorewall-lite. </para>
      </listitem>
    </orderedlist>
  </section>

  <section id="Shorewall">
    <title>Shorewall-common</title>

    <para>Пакет Shorewall-common включает много файлов, которые устанавливаются в каталоги /<filename class="directory">sbin</filename>, <filename class="directory">/usr/share/shorewall</filename>, <filename class="directory">/etc/shorewall</filename>, <filename>/etc/init.d</filename> и <filename class="directory">/var/lilb/shorewall/</filename>. Они описаны далее. </para>

    <section id="sbin">
      <title>/sbin</title>

      <para>Программа <filename>/sbin/shorewall</filename> взаимодействует с Shorewall. См. <ulink url="manpages/shorewall.html">shorewall</ulink>(8).</para>
    </section>

    <section id="share-shorewall">
      <title>/usr/share/shorewall</title>

      <para>Здесь устанавливаются основные файлы Shorewall. </para>

      <itemizedlist>
        <listitem>
          <para><filename>action.template</filename> - файл шаблонов для создания <ulink url="Actions.html">действий</ulink>.</para>
        </listitem>

        <listitem>
          <para><filename>action.*</filename> - стандартные действия Shorewall. </para>
        </listitem>

        <listitem>
          <para><filename>actions.std</filename> - в этом файле перечислены стандартные действия. </para>
        </listitem>

        <listitem>
          <para><filename class="directory">configfiles</filename> - в этом каталоге содержатся файлы конфигурации, при копировании которых создается <ulink url="CompiledPrograms.html#Lite">каталог экспорта Shorewall-lite.</ulink></para>
        </listitem>

        <listitem>
          <para><filename><filename>configpath</filename></filename> - здесь содержится информация о путях, которая зависит от дистрибутива. </para>
        </listitem>

        <listitem>
          <para><filename>firewall</filename> - эта программа обрабатывает команды <command>add</command> и <command>delete</command> (см. <ulink url="manpages/shorewall.html">shorewall</ulink>(8)). Кроме того, она обрабатывает команды <command>stop</command> и <command>clear</command>, если в системе нет текущего скомпилированного сценария файрвола. </para>
        </listitem>

        <listitem>
          <para><filename class="symlink">functions</filename> - ссылка на <filename>lib.base</filename>, предусмотренная для совместимости с прежними версиями Shorewall.</para>
        </listitem>

        <listitem>
          <para><filename class="symlink">init</filename> - ссылка на сценарий инициализации (обычно это - <filename>/etc/init.d/shorewall</filename>).</para>
        </listitem>

        <listitem>
          <para><filename>lib.*</filename> - библиотеки функций оболочки, используемые другими программами. </para>
        </listitem>

        <listitem>
          <para><filename>macro.*</filename> - стандартные <ulink url="Macros.html">макросы</ulink> Shorewall.</para>
        </listitem>

        <listitem>
          <para><filename>modules</filename> - файл, управляющий загрузкой модулей Netfilter ядра.  Его можно переопределить в файле <filename>/etc/shorewall/modules</filename>.</para>
        </listitem>

        <listitem>
          <para><filename>version</filename> - файл, в котором указана текущая установленная версия Shorewall.</para>
        </listitem>

        <listitem>
          <para><filename>wait4ifup</filename> - программа, которую могут использовать <ulink url="shorewall_extension_scripts.htm">сценарии расширения</ulink> для ожидания готовности сетевого интерфейса. </para>
        </listitem>
      </itemizedlist>
    </section>

    <section id="shorewall">
      <title>/etc/shorewall</title>

      <para>В этом каталоге содержатся файлы конфигурации, настраиваемые пользователем. </para>
    </section>

    <section id="init">
      <title>/etc/init.d или /etc/rc.d (зависит от дистрибутива)</title>

      <para>Здесь устанавливается сценарий инициализации.  В зависимости от дистрибутива, он называется <filename>shorewall</filename> или <filename>rc.firewall</filename>.</para>
    </section>

    <section id="var">
      <title>/var/lib/shorewall</title>

      <para>Shorewall не устанавливает никаких файлов в этот каталог. Он используется для хранения данных во время выполнения.  Этот каталог можно перенести командой <ulink url="manpages/shorewall-vardir.html">shorewall-vardir</ulink>(5).</para>

      <itemizedlist>
        <listitem>
          <para><filename>chains</filename> - если в <ulink url="manpages/shorewall.conf.html">shorewall.conf</ulink>(5) задан DYNAMIC_ZONES=Yes, то в этом файле содержится информация для команд <command>add</command> и <command>delete</command> (см. <ulink url="manpages/shorewall.html">shorewall</ulink>(8)).</para>
        </listitem>

        <listitem>
          <para><filename>.iptables-restore-input </filename>- этот файл передается программе iptables-restore для инициализации файрвола в ходе выполнения последней команды <command>start</command> или <command>restart</command> (см. <ulink url="manpages/shorewall.html">shorewall</ulink>(8)).</para>
        </listitem>

        <listitem>
          <para><filename>.modules</filename> - содержимое файла модулей, использованного последними командами <command>start</command> или <command>restart</command> (см. <ulink url="manpages/shorewall.html">shorewall</ulink>(8)).</para>
        </listitem>

        <listitem>
          <para><filename>.modulesdir</filename> - параметр MODULESDIR (<ulink url="manpages/shorewall.conf.html">shorewall.conf</ulink>(5)) в ходе выполнения последней команды <command>start</command> или <command>restart.</command></para>
        </listitem>

        <listitem>
          <para><filename>nat</filename> - в этом файле (с неудачным именем) записаны IP-адреса, добавленные при включенных опциях ADD_SNAT_ALIASES=Yes и ADD_IP_ALIASES=Yes в <ulink url="manpages/shorewall.conf.html">shorewall.conf</ulink>(5).</para>
        </listitem>

        <listitem>
          <para><filename>proxyarp</filename> - записи arp, добавленные элементами <ulink url="manpages/shorewall-proxyarp.html">shorewall-proxyarp</ulink>(5).</para>
        </listitem>

        <listitem>
          <para><filename>.refresh</filename> - программа, которая выполнила последнюю успешную команду <command>refresh</command>. </para>
        </listitem>

        <listitem>
          <para><filename>.restart</filename> - программа, которая выполнила последнюю успешную команду <command>restart</command>. </para>
        </listitem>

        <listitem>
          <para><filename>restore</filename> - программа по умолчанию, выполняющая команды <command>restore</command>. </para>
        </listitem>

        <listitem>
          <para><filename>.restore</filename> - программа, которая выполнила последнюю успешную команду <command>refresh, restart</command> или <command>start</command>. </para>
        </listitem>

        <listitem>
          <para><filename>save</filename> - файл, созданный командой <command>save</command> и используемый для восстановления динамического чёрного списка в ходе выполнения команд <command>start/restart</command>.</para>
        </listitem>

        <listitem>
          <para><filename>.start</filename> - программа, которая выполнила последнюю успешную команду <command>start</command>. </para>
        </listitem>

        <listitem>
          <para><filename>state</filename> - здесь записано текущее состояние файрвола. </para>
        </listitem>

        <listitem>
          <para><filename>zones</filename> - здесь записано текущее состояние зон.</para>
        </listitem>
      </itemizedlist>
    </section>
  </section>

  <section id="Shorewall-shell">
    <title>Shorewall-shell</title>

    <para>Все файлы продукта Shorewall-shell устанавливаются в каталоге /usr/share/<filename class="directory">shorewall-shell</filename>.</para>

    <itemizedlist>
      <listitem>
        <para><filename>compiler</filename> - компилятор конфигурации (программа shell). </para>
      </listitem>

      <listitem>
        <para><filename>lib.*</filename> - библиотеки функций оболочки, используемые компилятором.  Для уменьшения объема в встроенных системах могут быть установлены не все библиотеки. </para>
      </listitem>

      <listitem>
        <para><filename>prog.*</filename> - фрагменты кода на shell, используемые компилятором. </para>
      </listitem>

      <listitem>
        <para><filename>version</filename> - файл, в котором указана текущая установленная версия Shorewall-shell.</para>
      </listitem>
    </itemizedlist>
  </section>

  <section id="Shorewall-perl">
    <title>Shorewall-perl</title>

    <para>Все файлы продукта Shorewall-perl устанавливаются в каталоге /usr/share/<filename class="directory">shorewall-perl</filename>.</para>

    <itemizedlist>
      <listitem>
        <para><filename>buildports.pl</filename> - программа на Perl, которая компонует модуль Shorewall/Ports.pm во время установки. </para>
      </listitem>

      <listitem>
        <para><filename>compiler</filename> - компилятор конфигурации (программа shell). </para>
      </listitem>

      <listitem>
        <para><filename>prog.*</filename> - фрагменты кода на shell, используемые компилятором. </para>
      </listitem>

      <listitem>
        <para><filename class="directory">Shorewall</filename> - каталог, содержащий модули Shorewall Perl, используемые компилятором. </para>
      </listitem>

      <listitem>
        <para><filename>version</filename> - файл, в котором указана текущая установленная версия Shorewall-shell.</para>
      </listitem>
    </itemizedlist>
  </section>

  <section id="Shorewall-lite">
    <title>Shorewall-lite</title>

    <para>Файлы Shorewall-lite устанавливаются в каталогах /<filename class="directory">sbin</filename>, <filename class="directory">/usr/share/shorewall-lite</filename>, /etc/<filename class="directory">shorewall-lite</filename>, <filename>/etc/init.d</filename> и <filename class="directory">/var/lilb/shorewall/</filename>. Они описаны далее. </para>

    <section id="sbin-lite">
      <title>/sbin</title>

      <para>Программа <filename>/sbin/shorewall-lite</filename> взаимодействует с Shorewall lite. См. <ulink url="manpages/shorewall-lite.html">shorewall-lite</ulink>(8).</para>
    </section>

    <section id="init-lite">
      <title>/etc/init.d или /etc/rc.d (зависит от дистрибутива)</title>

      <para>Здесь устанавливается сценарий инициализации.  В зависимости от дистрибутива, он называется <filename>shorewall-lite</filename> или <filename>rc.firewall</filename>.</para>
    </section>

    <section id="shorewall-lite">
      <title>/etc/shorewall-lite</title>

      <para>В этом каталоге содержатся файлы конфигурации, настраиваемые пользователем. </para>
    </section>

    <section id="share-lite">
      <title>/usr/share/shorewall-lite</title>

      <para>Здесь устанавливаются основные файлы Shorewall-lite. </para>

      <itemizedlist>
        <listitem>
          <para><filename><filename>configpath</filename></filename> - здесь содержится информация о путях, которая зависит от дистрибутива. </para>
        </listitem>

        <listitem>
          <para><filename class="symlink">functions</filename> - ссылка на <filename>lib.base</filename>, предусмотренная для совместимости с прежними версиями Shorewall.</para>
        </listitem>

        <listitem>
          <para><filename>lib.*</filename> - библиотеки функций оболочки, используемые другими программами.  Это копии соответствующих библиотек продукта Shorewall. </para>
        </listitem>

        <listitem>
          <para><filename>modules</filename> - файл, управляющий загрузкой модулей Netfilter ядра.  Его можно переопределить в файле <filename>/etc/shorewall-lite/modules</filename>.</para>
        </listitem>

        <listitem>
          <para><filename>shorecap</filename> - программа, которая создает файл capabilities.  См. <ulink url="CompiledPrograms.html#Lite">документацию Shorewall-lite</ulink>.</para>
        </listitem>

        <listitem>
          <para><filename>version</filename> - файл, в котором указана текущая установленная версия Shorewall.</para>
        </listitem>

        <listitem>
          <para><filename>wait4ifup</filename> - программа, которую могут использовать <ulink url="shorewall_extension_scripts.htm">сценарии расширения</ulink> для ожидания готовности сетевого интерфейса. </para>
        </listitem>
      </itemizedlist>
    </section>

    <section id="var-lite">
      <title>/var/lib/shorewall-lite</title>

      <para>Shorewall-lite не устанавливает никаких файлов в этот каталог. Он используется для хранения данных во время выполнения.  Этот каталог можно перенести командой <ulink url="manpages/shorewall-lite-vardir.html">shorewall-lite-vardir</ulink>(5).</para>

      <itemizedlist>
        <listitem>
          <para><filename>firewall</filename> - скомпилированный сценарий, который устанавливается командой load или reload, выполняемой в административной системе (см. <ulink url="manpages/shorewall.html">shorewall</ulink>(8)).</para>
        </listitem>

        <listitem>
          <para><filename>firewall.conf</filename> - дайджест файла shorewall.conf, использованного для компиляции сценария файрвола в административной системе. </para>
        </listitem>
      </itemizedlist>

      <itemizedlist>
        <listitem>
          <para><filename>.iptables-restore-input </filename>- этот файл передается программе iptables-restore для инициализации файрвола в ходе выполнения последней команды <command>start</command> или <command>restart</command> (см. <ulink url="manpages/shorewall-lite.html">shorewall-lite</ulink>(8)).</para>
        </listitem>

        <listitem>
          <para><filename>.modules</filename> - содержимое файла модулей, использованного последними командами <command>start</command> или <command>restart</command> (см. <ulink url="manpages/shorewall-lite.html">shorewall-lite</ulink>(8)).</para>
        </listitem>

        <listitem>
          <para><filename>.modulesdir</filename> - параметр MODULESDIR (<ulink url="manpages/shorewall.conf.html">shorewall.conf</ulink>(5)) в ходе выполнения последней команды <command>start</command> или <command>restart.</command></para>
        </listitem>

        <listitem>
          <para><filename>nat</filename> - в этом файле (с неудачным именем) записаны IP-адреса, добавленные при включенных опциях ADD_SNAT_ALIASES=Yes и ADD_IP_ALIASES=Yes в <ulink url="manpages/shorewall.conf.html">shorewall.conf</ulink>(5).</para>
        </listitem>

        <listitem>
          <para><filename>proxyarp</filename> - записи arp, добавленные элементами <ulink url="manpages/shorewall-proxyarp.html">shorewall-proxyarp</ulink>(5).</para>
        </listitem>

        <listitem>
          <para><filename>.refresh</filename> - программа, которая выполнила последнюю успешную команду <command>refresh</command>. </para>
        </listitem>

        <listitem>
          <para><filename>.restart</filename> - программа, которая выполнила последнюю успешную команду <command>restart</command>. </para>
        </listitem>

        <listitem>
          <para><filename>restore</filename> - программа по умолчанию, выполняющая команды <command>restore</command>. </para>
        </listitem>

        <listitem>
          <para><filename>.restore</filename> - программа, которая выполнила последнюю успешную команду <command>refresh, restart</command> или <command>start</command>. </para>
        </listitem>

        <listitem>
          <para><filename>save</filename> - файл, созданный командой <command>save</command> и используемый для восстановления динамического чёрного списка в ходе выполнения команд <command>start/restart</command>.</para>
        </listitem>

        <listitem>
          <para><filename>.start</filename> - программа, которая выполнила последнюю успешную команду <command>start</command>. </para>
        </listitem>

        <listitem>
          <para><filename>state</filename> - здесь записано текущее состояние файрвола. </para>
        </listitem>

        <listitem>
          <para><filename>zones</filename> - здесь записано текущее состояние зон.</para>
        </listitem>
      </itemizedlist>
    </section>
  </section>
</article>
