<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"> <refentry> <refmeta> <refentrytitle>shorewall6-zones</refentrytitle> <manvolnum>5</manvolnum> </refmeta> <refnamediv> <refname>zones</refname> <refpurpose>Shorewall6 zone declaration file</refpurpose> </refnamediv> <refsynopsisdiv> <cmdsynopsis> <command>/etc/shorewall6/zones</command> </cmdsynopsis> </refsynopsisdiv> <refsect1> <title>Description</title> <para>The /etc/shorewall6/zones file declares your network zones. You specify the hosts in each zone through entries in <filename>/etc/shorewall6/interfaces</filename> or <filename>/etc/shorewall6/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="shorewall6.conf.html">shorewall6.conf</ulink>(5). With the default LOGFORMAT, zone names can be at most 5 characters long.</para> <blockquote> <para>The maximum length of an iptables log prefix is 29 bytes. As explained in <ulink url="shorewall.conf.html">shorewall6.conf</ulink> (5), the default LOGPREFIX formatting string is “Shorewall:%s:%s:” where the first %s is replaced by the chain name and the second is replaced by the disposition.</para> <itemizedlist> <listitem> <para>The default formatting string has 12 fixed characters ("Shorewall" and three colons).</para> </listitem> <listitem> <para>The longest of the standard dispositions are ACCEPT and REJECT which have 6 characters each.</para> </listitem> <listitem> <para>The canonical name for the chain containing the rules for traffic going from zone 1 to zone 2 is "<zone 1>2<zone 2>".</para> </listitem> <listitem> <para>So if M is the maximum zone name length, such chains can have length 2*M + 1.</para> <simplelist> <member>12 + 6 + 2*M + 1 = 29 which reduces to</member> <member>2*M = 29 - 12 - 6 - 1 = 10 or</member> <member>M = 5</member> </simplelist> </listitem> </itemizedlist> </blockquote> <para>The order in which Shorewall6 matches addresses from packets to zones is determined by the order of zone declarations. Where a zone is nested in one or more other zones, you may either ensure that the nested zone precedes its parents in this file, or 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="shorewall6-nesting.html">shorewall6-nesting</ulink>(5) for additional information.</para> <para>Example:</para> <programlisting>#ZONE TYPE OPTIONS IN OPTIONS OUT OPTIONS a ipv6 b ipv6 c:a,b ipv6</programlisting> <para>Currently, Shorewall6 uses this information to reorder the zone list so that parent zones appear after their subzones in the list. The IMPLICIT_CONTINUE option in <ulink url="shorewall6.conf.html">shorewall6.conf</ulink>(5) can also create implicit CONTINUE policies to/from the subzone.</para> <para>Where an <emphasis role="bold">ipsec</emphasis> zone is explicitly included as a child of an <emphasis role="bold">ipv6</emphasis> zone, the ruleset allows CONTINUE policies (explicit or implicit) to work as expected.</para> <para>In the future, Shorewall6 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">ipv6</emphasis></term> <listitem> <para>This is the standard Shorewall6 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="shorewall6-hosts.html">shorewall6-hosts</ulink>(5).</para> </listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">ipsec</emphasis> (or <emphasis role="bold">ipsec6</emphasis>)</term> <listitem> <para>Communication with all zone hosts is encrypted. Your kernel and ip6tables 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><emphasis role="bold">bport</emphasis> (or <emphasis role="bold">bport6</emphasis>)</term> <listitem> <para>The zone is associated with one or more ports on a single bridge.</para> </listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">vserver</emphasis></term> <listitem> <para>Added in Shorewall 4.4.11 Beta 2 - A zone composed of Linux-vserver guests. The zone contents must be defined in <ulink url="shorewall-hosts.html">shorewall-hosts</ulink> (5).</para> <para>Vserver zones are implicitly handled as subzones of the firewall zone.</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> and <option>blacklist</option> options, these only apply to TYPE <option>ipsec</option> zones.</para> <variablelist> <varlistentry> <term><emphasis role="bold">blacklist</emphasis></term> <listitem> <para>Added in Shorewall 4.4.13. May not be specified for <emphasis role="bold">firewall</emphasis> or <emphasis role="bold">vserver</emphasis> zones.</para> <para>When specified in the IN_OPTIONS column, causes all traffic from this zone to be passed against the <emphasis role="bold">src</emphasis> entries in s<ulink url="shorewall6-blacklist.html">horewall6-blacklist</ulink>(5).</para> <para>When specified in the OUT_OPTIONS column, causes all traffic to this zone to be passed against the <emphasis role="bold">dst</emphasis> entries in s<ulink url="shorewall6-blacklist.html">horewall6-blacklist</ulink>(5).</para> <para>Specifying this option in the OPTIONS column is equivalent to entering it in both of the IN_OPTIONS and OUT_OPTIONS column.</para> </listitem> </varlistentry> <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><number></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="shorewall6.conf.html">shorewall6.conf</ulink>(5) 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/shorewall6/zones</para> </refsect1> <refsect1> <title>See ALSO</title> <para><ulink url="http://www.shorewall.net/Multiple_Zones.html">http://www.shorewall.net/Multiple_Zones.html</ulink>.</para> <para>shorewall6(8), shorewall6-accounting(5), shorewall6-actions(5), shorewall6-blacklist(5), shorewall6-hosts(5), shorewall6-interfaces(5), shorewall6-maclist(5), shorewall6-nesting(8), shorewall6-params(5), shorewall6-policy(5), shorewall6-providers(5), shorewall6-route_rules(5), shorewall6-routestopped(5), shorewall6-rules(5), shorewall6.conf(5), shorewall6-secmarks(5), shorewall6-tcclasses(5), shorewall6-tcdevices(5), shorewall6-tcrules(5), shorewall6-tos(5), shorewall6-tunnels(5)</para> </refsect1> </refentry>