<?xml version="1.0" encoding="UTF-8"?>
<refentry>
  <refmeta>
    <refentrytitle>shorewall-zones</refentrytitle>

    <manvolnum>5</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>zones</refname>

    <refpurpose>Shorewall zone declaration file</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <cmdsynopsis>
      <command>/etc/shorewall/zones</command>
    </cmdsynopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>

    <para>The /etc/shorewall/zones file declares your network zones. You
    specify the hosts in each zone through entries in
    <filename>/etc/shorewall/interfaces</filename> or
    <filename>/etc/shorewall/hosts</filename>.</para>

    <para>The columns in the file are as follows.</para>

    <variablelist>
      <varlistentry>
        <term><emphasis role="bold">ZONE</emphasis> —
        <emphasis>zone</emphasis>[<emphasis
        role="bold">:</emphasis><emphasis>parent-zone</emphasis>[<emphasis
        role="bold">,</emphasis><emphasis>parent-zone</emphasis>]...]</term>

        <listitem>
          <para>Name of the <emphasis>zone</emphasis>. The names "all",
          "none", "SOURCE" and "DEST" are reserved and may not be used as zone
          names. The maximum length of a zone name is determined by the
          setting of the LOGFORMAT option in <ulink
          url="shorewall.conf.html">shorewall.conf</ulink>(5). With the
          default LOGFORMAT, zone names can be at most 5 characters
          long.</para>

          <para>Where a zone is nested in one or more other zones, you may
          follow the (sub)zone name by ":" and a comma-separated list of the
          parent zones. The parent zones must have been declared in earlier
          records in this file. See <ulink
          url="shorewall-nesting.html">shorewall-nesting</ulink>(5) for
          additional information.</para>

          <para>Example:</para>

          <programlisting>#ZONE     TYPE     OPTIONS         IN OPTIONS        OUT OPTIONS
a         ipv4
b         ipv4
c:a,b     ipv4</programlisting>

          <para>Currently, Shorewall uses this information to reorder the zone
          list so that parent zones appear after their subzones in the list.
          The IMPLICIT_CONTINUE option in shorewall.conf can also create
          implicit CONTINUE policies to/from the subzone.</para>

          <para>In the future, Shorewall may make additional use of nesting
          information.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><emphasis role="bold">TYPE</emphasis></term>

        <listitem>
          <variablelist>
            <varlistentry>
              <term><emphasis role="bold">ipv4</emphasis></term>

              <listitem>
                <para>This is the standard Shorewall zone type and is the
                default if you leave this column empty or if you enter "-" in
                the column. Communication with some zone hosts may be
                encrypted. Encrypted hosts are designated using the
                'ipsec'option in <ulink
                url="shorewall-hosts.html">shorewall-hosts</ulink>(5).</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term><emphasis role="bold">ipsec</emphasis></term>

              <listitem>
                <para>Communication with all zone hosts is encrypted. Your
                kernel and iptables must include policy match support.</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term><emphasis role="bold">firewall</emphasis></term>

              <listitem>
                <para>Designates the firewall itself. You must have exactly
                one 'firewall' zone. No options are permitted with a
                'firewall' zone. The name that you enter in the ZONE column
                will be stored in the shell variable $FW which you may use in
                other configuration files to designate the firewall
                zone.</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term>bport (or bport4)</term>

              <listitem>
                <para>(Shorewall-perl only) The zone is associated with one or
                more ports on a single bridge.</para>
              </listitem>
            </varlistentry>
          </variablelist>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><emphasis role="bold">OPTIONS, IN OPTIONS and OUT
        OPTIONS</emphasis> — [<emphasis>option</emphasis>[<emphasis
        role="bold">,</emphasis><emphasis>option</emphasis>]...]</term>

        <listitem>
          <para>A comma-separated list of options. With the exception of the
          <option>mss</option> option, these only apply to TYPE
          <option>ipsec</option> zones.</para>

          <variablelist>
            <varlistentry>
              <term><emphasis
              role="bold">reqid=</emphasis><emphasis>number</emphasis></term>

              <listitem>
                <para>where <emphasis>number</emphasis> is specified using
                setkey(8) using the 'unique:<emphasis>number</emphasis> option
                for the SPD level.</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term><emphasis role="bold">spi=</emphasis>&lt;number&gt;</term>

              <listitem>
                <para>where <emphasis>number</emphasis> is the SPI of the SA
                used to encrypt/decrypt packets.</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term><emphasis role="bold">proto=</emphasis><emphasis
              role="bold">ah</emphasis>|<emphasis
              role="bold">esp</emphasis>|<emphasis
              role="bold">ipcomp</emphasis></term>

              <listitem>
                <para>IPSEC Encapsulation Protocol</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term><emphasis
              role="bold">mss=</emphasis><emphasis>number</emphasis></term>

              <listitem>
                <para>sets the MSS field in TCP packets. If you supply this
                option, you should also set FASTACCEPT=No in <ulink
                url="shorewall.conf.html">shorewall.conf</ulink>(8) to insure
                that both the SYN and SYN,ACK packets have their MSS field
                adjusted.</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term><emphasis role="bold">mode=</emphasis><emphasis
              role="bold">transport</emphasis>|<emphasis
              role="bold">tunnel</emphasis></term>

              <listitem>
                <para>IPSEC mode</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term><emphasis
              role="bold">tunnel-src=</emphasis><emphasis>address</emphasis>[/<emphasis>mask</emphasis>]</term>

              <listitem>
                <para>only available with mode=tunnel</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term><emphasis
              role="bold">tunnel-dst=</emphasis><emphasis>address</emphasis>[/<emphasis>mask</emphasis>]</term>

              <listitem>
                <para>only available with mode=tunnel</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term><emphasis role="bold">strict</emphasis></term>

              <listitem>
                <para>Means that packets must match all rules.</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term><emphasis role="bold">next</emphasis></term>

              <listitem>
                <para>Separates rules; can only be used with strict</para>
              </listitem>
            </varlistentry>
          </variablelist>

          <para>The options in the OPTIONS column are applied to both incoming
          and outgoing traffic. The IN OPTIONS are applied to incoming traffic
          (in addition to OPTIONS) and the OUT OPTIONS are applied to outgoing
          traffic.</para>

          <para>If you wish to leave a column empty but need to make an entry
          in a following column, use "-".</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>FILES</title>

    <para>/etc/shorewall/zones</para>
  </refsect1>

  <refsect1>
    <title>See ALSO</title>

    <para>shorewall(8), shorewall-accounting(5), shorewall-actions(5),
    shorewall-blacklist(5), shorewall-hosts(5), shorewall-interfaces(5),
    shorewall-ipsec(5), shorewall-maclist(5), shorewall-masq(5),
    shorewall-nat(5), shorewall-netmap(5), shorewall-params(5),
    shorewall-policy(5), shorewall-providers(5), shorewall-proxyarp(5),
    shorewall-route_routes(5), shorewall-routestopped(5), shorewall-rules(5),
    shorewall.conf(5), shorewall-tcclasses(5), shorewall-tcdevices(5),
    shorewall-tcrules(5), shorewall-tos(5), shorewall-tunnels(5)</para>
  </refsect1>
</refentry>