2004-02-14 19:06:39 +01:00
|
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
2008-07-07 22:22:09 +02:00
|
|
|
|
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
|
|
|
|
|
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
|
2004-02-14 19:06:39 +01:00
|
|
|
|
<article>
|
|
|
|
|
<!--$Id$-->
|
|
|
|
|
|
|
|
|
|
<articleinfo>
|
|
|
|
|
<title>Shorewall Traffic Accounting</title>
|
|
|
|
|
|
|
|
|
|
<authorgroup>
|
|
|
|
|
<author>
|
|
|
|
|
<firstname>Tom</firstname>
|
|
|
|
|
|
|
|
|
|
<surname>Eastep</surname>
|
|
|
|
|
</author>
|
|
|
|
|
</authorgroup>
|
|
|
|
|
|
2006-07-07 03:04:16 +02:00
|
|
|
|
<pubdate><?dbtimestamp format="Y/m/d"?></pubdate>
|
2004-02-14 19:06:39 +01:00
|
|
|
|
|
|
|
|
|
<copyright>
|
2009-03-20 17:47:07 +01:00
|
|
|
|
<year>2003-2009</year>
|
2004-02-14 19:06:39 +01:00
|
|
|
|
|
|
|
|
|
<holder>Thomas M. Eastep</holder>
|
|
|
|
|
</copyright>
|
|
|
|
|
|
|
|
|
|
<legalnotice>
|
|
|
|
|
<para>Permission is granted to copy, distribute and/or modify this
|
|
|
|
|
document under the terms of the GNU Free Documentation License, Version
|
|
|
|
|
1.2 or any later version published by the Free Software Foundation; with
|
|
|
|
|
no Invariant Sections, with no Front-Cover, and with no Back-Cover
|
|
|
|
|
Texts. A copy of the license is included in the section entitled
|
2004-10-24 23:10:47 +02:00
|
|
|
|
<quote><ulink url="GnuCopyright.htm">GNU Free Documentation
|
|
|
|
|
License</ulink></quote>.</para>
|
2004-02-14 19:06:39 +01:00
|
|
|
|
</legalnotice>
|
|
|
|
|
</articleinfo>
|
|
|
|
|
|
2005-09-17 09:33:49 +02:00
|
|
|
|
<caution>
|
2007-09-02 18:49:13 +02:00
|
|
|
|
<para><emphasis role="bold">This article applies to Shorewall 4.0 and
|
2005-09-17 09:33:49 +02:00
|
|
|
|
later. If you are running a version of Shorewall earlier than Shorewall
|
2007-09-02 18:49:13 +02:00
|
|
|
|
4.0.0 then please see the documentation for that
|
2005-09-17 09:33:49 +02:00
|
|
|
|
release</emphasis>.</para>
|
|
|
|
|
</caution>
|
|
|
|
|
|
2007-06-28 16:49:55 +02:00
|
|
|
|
<section id="Basics">
|
|
|
|
|
<title>Accounting Basics</title>
|
|
|
|
|
|
|
|
|
|
<para>Shorewall accounting rules are described in the file
|
2009-03-20 17:47:27 +01:00
|
|
|
|
<filename><filename>/etc/shorewall/accounting</filename></filename>. By
|
|
|
|
|
default, the accounting rules are placed in a chain called
|
|
|
|
|
<quote>accounting</quote> and can thus be displayed using
|
|
|
|
|
<quote>shorewall[-lite] show -x accounting</quote>. All traffic passing
|
|
|
|
|
into, out of, or through the firewall traverses the accounting chain
|
|
|
|
|
including traffic that will later be rejected by interface options such as
|
2009-06-05 19:51:30 +02:00
|
|
|
|
<quote>tcpflags</quote> and <quote>maclist</quote>.</para>
|
2007-06-28 16:49:55 +02:00
|
|
|
|
|
|
|
|
|
<para>The columns in the accounting file are as follows:</para>
|
|
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para><emphasis role="bold">ACTION </emphasis>- What to do when a
|
|
|
|
|
match is found. Possible values are:</para>
|
|
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>COUNT- Simply count the match and continue trying to match
|
|
|
|
|
the packet with the following accounting rules</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>DONE- Count the match and don't attempt to match any
|
|
|
|
|
following accounting rules.</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
|
|
<listitem>
|
2007-11-01 17:02:17 +01:00
|
|
|
|
<para><emphasis><chain></emphasis> - The name of a chain;
|
|
|
|
|
Shorewall will create the chain automatically if it doesn't
|
2009-03-20 16:09:04 +01:00
|
|
|
|
already exist. A jump to this chain will be generated from the
|
|
|
|
|
chain specified by the CHAIN column. If the name of the chain is
|
|
|
|
|
followed by <quote>:COUNT</quote> then a COUNT rule matching this
|
|
|
|
|
entry will automatically be added to <chain>. Chain names
|
|
|
|
|
must start with a letter, must be composed of letters and digits,
|
|
|
|
|
and may contain underscores (<quote>_</quote>) and periods
|
2007-11-01 17:02:17 +01:00
|
|
|
|
(<quote>.</quote>). Beginning with Shorewall version 1.4.8, chain
|
|
|
|
|
names may also contain embedded dashes (<quote>-</quote>) and are
|
|
|
|
|
not required to start with a letter.</para>
|
2007-06-28 16:49:55 +02:00
|
|
|
|
</listitem>
|
2007-07-04 02:10:35 +02:00
|
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>COMMENT - (Shorewall-perl only) - The remainder of the line
|
|
|
|
|
is treated as a comment which is <ulink
|
|
|
|
|
url="configuration_file_basics.htm#COMMENT">attached to subsequent
|
|
|
|
|
rules</ulink> until another COMMENT line is found or until the end
|
|
|
|
|
of the file is reached. To stop adding comments to rules, use a
|
|
|
|
|
line with only the word COMMENT.</para>
|
|
|
|
|
</listitem>
|
2007-06-28 16:49:55 +02:00
|
|
|
|
</itemizedlist>
|
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
|
<para><emphasis role="bold">CHAIN</emphasis> - The name of the chain
|
|
|
|
|
where the accounting rule is to be added. If empty or <quote>-</quote>
|
|
|
|
|
then the <quote>accounting</quote> chain is assumed (see <link
|
|
|
|
|
linkend="Bridge">below</link> for exceptions).</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
|
<para><emphasis role="bold">SOURCE</emphasis> - Packet Source. The
|
|
|
|
|
name of an interface, an address (host or net), or an interface name
|
|
|
|
|
followed by <quote>:</quote> and a host or net address.</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
|
<para><emphasis role="bold">DESTINATION</emphasis> - Packet
|
2008-08-18 06:32:14 +02:00
|
|
|
|
Destination. Format the same as the SOURCE column.</para>
|
2007-06-28 16:49:55 +02:00
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
|
|
<listitem>
|
2009-03-20 16:09:04 +01:00
|
|
|
|
<para><emphasis role="bold">PROTOCOL</emphasis> - A protocol name
|
|
|
|
|
(from <filename>/etc/protocols</filename>), a protocol number or
|
2008-08-18 06:32:14 +02:00
|
|
|
|
<quote>ipp2p</quote>. For <quote>ipp2p</quote>, your kernel and
|
|
|
|
|
iptables must have ipp2p match support from <ulink
|
|
|
|
|
url="http://www.netfilter.org">Netfilter
|
2007-06-28 16:49:55 +02:00
|
|
|
|
Patch_o_matic_ng</ulink>.</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
|
<para><emphasis role="bold">DEST PORT</emphasis> - Destination Port
|
|
|
|
|
number. Service name from <filename>/etc/services</filename> or port
|
2010-03-16 17:42:50 +01:00
|
|
|
|
number. May only be specified if the protocol is TCP (6), UDP (17),
|
|
|
|
|
DCCP (33), SCTP (132) or UDPLITE (136). If the PROTOCOL is
|
|
|
|
|
<quote>ipp2p</quote>, then this column is interpreted as an ipp2p
|
|
|
|
|
option without the leading <quote>--</quote> (default
|
|
|
|
|
<quote>ipp2p</quote>). For a list of value ipp2p options, as root type
|
|
|
|
|
<command>iptables -m ipp2p --help</command>.</para>
|
2007-06-28 16:49:55 +02:00
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
|
<para><emphasis role="bold">SOURCE PORT</emphasis>- Source Port
|
|
|
|
|
number. Service name from /etc/services or port number. May only be
|
2010-03-16 17:42:50 +01:00
|
|
|
|
specified if the protocol is TCP (6), UDP (17), DCCP (33), SCTP (132)
|
|
|
|
|
or UDPLITE (136).</para>
|
2007-06-28 16:49:55 +02:00
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
|
<para><emphasis role="bold">USER/GROUP</emphasis> - This column may
|
|
|
|
|
only be non-empty if the CHAIN is OUTPUT. The column may
|
|
|
|
|
contain:</para>
|
|
|
|
|
|
2008-08-18 06:32:14 +02:00
|
|
|
|
<programlisting>[!][<user name or number>][:<group name or number>][+<program name>]</programlisting>
|
2007-06-28 16:49:55 +02:00
|
|
|
|
|
|
|
|
|
<para>When this column is non-empty, the rule applies only if the
|
|
|
|
|
program generating the output is running under the effective
|
|
|
|
|
<user> and/or <group> specified (or is NOT running under
|
2008-08-18 06:32:14 +02:00
|
|
|
|
that id if <quote>!</quote> is given).</para>
|
2007-06-28 16:49:55 +02:00
|
|
|
|
|
|
|
|
|
<para>Examples:</para>
|
|
|
|
|
|
|
|
|
|
<simplelist>
|
|
|
|
|
<member>joe #program must be run by joe</member>
|
|
|
|
|
|
2008-08-18 06:32:14 +02:00
|
|
|
|
<member>:kids #program must be run by a member of the
|
|
|
|
|
<quote>kids</quote> group.</member>
|
2007-06-28 16:49:55 +02:00
|
|
|
|
|
2008-08-18 06:32:14 +02:00
|
|
|
|
<member>!:kids #program must not be run by a member of the
|
|
|
|
|
<quote>kids</quote> group</member>
|
2007-06-28 16:49:55 +02:00
|
|
|
|
|
|
|
|
|
<member>+upnpd #program named upnpd (This feature was removed from
|
|
|
|
|
Netfilter in kernel version 2.6.14).</member>
|
|
|
|
|
</simplelist>
|
|
|
|
|
</listitem>
|
2007-09-02 18:49:13 +02:00
|
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
|
<para><emphasis role="bold">MARK</emphasis> - Only count packets with
|
2009-03-20 16:09:04 +01:00
|
|
|
|
particular mark values. <programlisting>[!]<value>[/<mask>][:C]</programlisting>
|
|
|
|
|
Defines a test on the existing packet or connection mark. The rule
|
|
|
|
|
will match only if the test returns true.</para>
|
2007-09-02 18:49:13 +02:00
|
|
|
|
|
|
|
|
|
<para>If you don’t want to define a test but need to specify anything
|
2009-03-20 16:09:04 +01:00
|
|
|
|
in the following columns, place a <quote>-</quote> in this
|
|
|
|
|
field.<simplelist>
|
2007-11-01 17:02:17 +01:00
|
|
|
|
<member>! — Inverts the test (not equal)</member>
|
2007-09-02 18:49:13 +02:00
|
|
|
|
|
|
|
|
|
<member><value> — Value of the packet or connection
|
|
|
|
|
mark.</member>
|
|
|
|
|
|
|
|
|
|
<member><mask> — A mask to be applied to the mark before
|
|
|
|
|
testing.</member>
|
|
|
|
|
|
|
|
|
|
<member>:C — Designates a connection mark. If omitted, the packet
|
|
|
|
|
mark’s value is tested. This option is only supported by
|
|
|
|
|
Shorewall-perl.</member>
|
|
|
|
|
</simplelist></para>
|
|
|
|
|
</listitem>
|
2007-06-28 16:49:55 +02:00
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
2009-03-20 16:09:04 +01:00
|
|
|
|
<para>In all columns except ACTION and CHAIN, the values <quote>-</quote>,
|
|
|
|
|
<quote>any</quote> and <quote>all</quote> are treated as
|
2007-06-28 16:49:55 +02:00
|
|
|
|
wild-cards.</para>
|
|
|
|
|
|
|
|
|
|
<para>The accounting rules are evaluated in the Netfilter
|
|
|
|
|
<quote>filter</quote> table. This is the same environment where the
|
|
|
|
|
<quote>rules</quote> file rules are evaluated and in this environment,
|
|
|
|
|
DNAT has already occurred in inbound packets and SNAT has not yet occurred
|
2008-08-18 06:32:14 +02:00
|
|
|
|
on outbound packets.</para>
|
2007-06-28 16:49:55 +02:00
|
|
|
|
|
|
|
|
|
<para>Accounting rules are not stateful -- each rule only handles traffic
|
2008-08-15 03:26:15 +02:00
|
|
|
|
in one direction. For example, if eth0 is your Internet interface, and you
|
2007-06-28 16:49:55 +02:00
|
|
|
|
have a web server in your DMZ connected to eth1, then to count HTTP
|
|
|
|
|
traffic in both directions requires two rules:</para>
|
|
|
|
|
|
|
|
|
|
<programlisting> #ACTION CHAIN SOURCE DESTINATION PROTOCOL DEST SOURCE
|
2004-02-14 19:06:39 +01:00
|
|
|
|
# PORT PORT
|
|
|
|
|
DONE - eth0 eth1 tcp 80
|
|
|
|
|
DONE - eth1 eth0 tcp - 80</programlisting>
|
|
|
|
|
|
2007-06-28 16:49:55 +02:00
|
|
|
|
<para>Associating a counter with a chain allows for nice reporting. For
|
|
|
|
|
example:</para>
|
2004-02-14 19:06:39 +01:00
|
|
|
|
|
2007-06-28 16:49:55 +02:00
|
|
|
|
<programlisting> #ACTION CHAIN SOURCE DESTINATION PROTOCOL DEST SOURCE
|
2004-02-14 19:06:39 +01:00
|
|
|
|
# PORT PORT
|
|
|
|
|
web:COUNT - eth0 eth1 tcp 80
|
|
|
|
|
web:COUNT - eth1 eth0 tcp - 80
|
|
|
|
|
web:COUNT - eth0 eth1 tcp 443
|
|
|
|
|
web:COUNT - eth1 eth0 tcp - 443
|
|
|
|
|
DONE web</programlisting>
|
|
|
|
|
|
2009-03-20 16:09:04 +01:00
|
|
|
|
<para>Now <command>shorewall show web</command> (or
|
|
|
|
|
<command>shorewall-lite show web</command> for Shorewall Lite users) will
|
|
|
|
|
give you a breakdown of your web traffic:</para>
|
2004-02-14 19:06:39 +01:00
|
|
|
|
|
2007-06-28 16:49:55 +02:00
|
|
|
|
<programlisting> [root@gateway shorewall]# shorewall show web
|
2004-02-14 19:06:39 +01:00
|
|
|
|
Shorewall-1.4.6-20030821 Chain web at gateway.shorewall.net - Wed Aug 20 09:48:56 PDT 2003
|
|
|
|
|
|
|
|
|
|
Counters reset Wed Aug 20 09:48:00 PDT 2003
|
|
|
|
|
|
|
|
|
|
Chain web (4 references)
|
|
|
|
|
pkts bytes target prot opt in out source destination
|
|
|
|
|
11 1335 tcp -- eth0 eth1 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
|
|
|
|
|
18 1962 tcp -- eth1 eth0 0.0.0.0/0 0.0.0.0/0 tcp spt:80
|
|
|
|
|
0 0 tcp -- eth0 eth1 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
|
|
|
|
|
0 0 tcp -- eth1 eth0 0.0.0.0/0 0.0.0.0/0 tcp spt:443
|
|
|
|
|
29 3297 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
|
|
|
|
|
[root@gateway shorewall]#</programlisting>
|
|
|
|
|
|
2007-06-28 16:49:55 +02:00
|
|
|
|
<para>Here is a slightly different example:</para>
|
2004-02-14 19:06:39 +01:00
|
|
|
|
|
2007-06-28 16:49:55 +02:00
|
|
|
|
<programlisting> #ACTION CHAIN SOURCE DESTINATION PROTOCOL DEST SOURCE
|
2004-02-14 19:06:39 +01:00
|
|
|
|
# PORT PORT
|
|
|
|
|
web - eth0 eth1 tcp 80
|
|
|
|
|
web - eth1 eth0 tcp - 80
|
|
|
|
|
web - eth0 eth1 tcp 443
|
|
|
|
|
web - eth1 eth0 tcp - 443
|
|
|
|
|
COUNT web eth0 eth1
|
|
|
|
|
COUNT web eth1 eth0</programlisting>
|
|
|
|
|
|
2009-03-20 16:09:04 +01:00
|
|
|
|
<para>Now <command>shorewall show web</command> (or
|
|
|
|
|
<command>shorewall-lite show web</command> for Shorewall Lite users)
|
|
|
|
|
simply gives you a breakdown by input and output:</para>
|
2004-02-14 19:06:39 +01:00
|
|
|
|
|
2007-06-28 16:49:55 +02:00
|
|
|
|
<programlisting> [root@gateway shorewall]# shorewall show accounting web
|
2004-02-14 19:06:39 +01:00
|
|
|
|
Shorewall-1.4.6-20030821 Chains accounting web at gateway.shorewall.net - Wed Aug 20 10:27:21 PDT 2003
|
|
|
|
|
|
|
|
|
|
Counters reset Wed Aug 20 10:24:33 PDT 2003
|
|
|
|
|
|
|
|
|
|
Chain accounting (3 references)
|
|
|
|
|
pkts bytes target prot opt in out source destination
|
|
|
|
|
8767 727K web tcp -- eth0 eth1 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
|
2007-06-28 16:49:55 +02:00
|
|
|
|
0 0 web tcp -- eth0 eth1 0.0.0.0/0 0.0.0.0/0 tcp dpt:443</programlisting>
|
|
|
|
|
|
|
|
|
|
<programlisting>
|
2004-02-14 19:06:39 +01:00
|
|
|
|
11506 13M web tcp -- eth1 eth0 0.0.0.0/0 0.0.0.0/0 tcp spt:80
|
|
|
|
|
0 0 web tcp -- eth1 eth0 0.0.0.0/0 0.0.0.0/0 tcp spt:443
|
|
|
|
|
|
|
|
|
|
Chain web (4 references)
|
|
|
|
|
pkts bytes target prot opt in out source destination
|
|
|
|
|
8767 727K all -- eth0 eth1 0.0.0.0/0 0.0.0.0/0
|
|
|
|
|
11506 13M all -- eth1 eth0 0.0.0.0/0 0.0.0.0/0
|
|
|
|
|
[root@gateway shorewall]#</programlisting>
|
|
|
|
|
|
2007-06-28 16:49:55 +02:00
|
|
|
|
<para>Here's how the same example would be constructed on an HTTP server
|
|
|
|
|
with only one interface (eth0).</para>
|
2004-05-09 00:31:54 +02:00
|
|
|
|
|
2007-06-28 16:49:55 +02:00
|
|
|
|
<caution>
|
|
|
|
|
<para>READ THE ABOVE CAREFULLY -- IT SAYS <emphasis
|
|
|
|
|
role="bold">SERVER</emphasis>. If you want to account for web browsing,
|
|
|
|
|
you have to reverse the rules below.</para>
|
|
|
|
|
</caution>
|
2004-02-14 19:06:39 +01:00
|
|
|
|
|
2007-06-28 16:49:55 +02:00
|
|
|
|
<programlisting> #ACTION CHAIN SOURCE DESTINATION PROTOCOL DEST SOURCE
|
2004-02-14 19:06:39 +01:00
|
|
|
|
# PORT PORT
|
|
|
|
|
web - eth0 - tcp 80
|
|
|
|
|
web - - eth0 tcp - 80
|
|
|
|
|
web - eth0 - tcp 443
|
|
|
|
|
web - - eth0 tcp - 443
|
|
|
|
|
COUNT web eth0
|
|
|
|
|
COUNT web - eth0</programlisting>
|
|
|
|
|
|
2007-06-28 16:49:55 +02:00
|
|
|
|
<para>Note that with only one interface, only the SOURCE (for input rules)
|
|
|
|
|
or the DESTINATION (for output rules) is specified in each rule.</para>
|
2004-02-14 19:06:39 +01:00
|
|
|
|
|
2007-06-28 16:49:55 +02:00
|
|
|
|
<para>Here's the output:</para>
|
2004-02-14 19:06:39 +01:00
|
|
|
|
|
2007-06-28 16:49:55 +02:00
|
|
|
|
<programlisting> [root@mail shorewall]# shorewall show accounting web Shorewall-1.4.7
|
2004-02-14 19:06:39 +01:00
|
|
|
|
Chains accounting web at mail.shorewall.net - Sun Oct 12 10:27:21 PDT 2003
|
|
|
|
|
|
|
|
|
|
Counters reset Sat Oct 11 08:12:57 PDT 2003
|
|
|
|
|
|
|
|
|
|
Chain accounting (3 references)
|
|
|
|
|
pkts bytes target prot opt in out source destination
|
|
|
|
|
8767 727K web tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
|
|
|
|
|
11506 13M web tcp -- * eth0 0.0.0.0/0 0.0.0.0/0 tcp spt:80
|
|
|
|
|
0 0 web tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
|
|
|
|
|
0 0 web tcp -- * eth0 0.0.0.0/0 0.0.0.0/0 tcp spt:443
|
|
|
|
|
|
|
|
|
|
Chain web (4 references)
|
|
|
|
|
pkts bytes target prot opt in out source destination
|
|
|
|
|
8767 727K all -- eth0 * 0.0.0.0/0 0.0.0.0/0
|
|
|
|
|
11506 13M all -- * eth0 0.0.0.0/0 0.0.0.0/0
|
|
|
|
|
[root@mail shorewall]#</programlisting>
|
2004-05-09 00:31:54 +02:00
|
|
|
|
|
2007-06-28 16:49:55 +02:00
|
|
|
|
<para>For an example of integrating Shorewall Accounting with MRTG, see
|
|
|
|
|
<ulink
|
|
|
|
|
url="http://www.nightbrawler.com/code/shorewall-stats/">http://www.nightbrawler.com/code/shorewall-stats/</ulink>.</para>
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<section id="Bridge">
|
|
|
|
|
<title>Accounting with Bridges</title>
|
|
|
|
|
|
|
|
|
|
<para>The structure of the accounting rules changes slightly when there
|
|
|
|
|
are <ulink url="bridge-Shorewall-perl.html">bridges</ulink> defined in the
|
|
|
|
|
Shorewall configuration. Because of the restrictions imposed by Netfilter
|
|
|
|
|
in kernel 2.6.21 and later, output accounting rules must be segregated
|
|
|
|
|
from forwarding and input rules. To accomplish this separation,
|
|
|
|
|
Shorewall-perl creates two accounting chains:</para>
|
|
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para><emphasis role="bold">accounting</emphasis> - for input and
|
|
|
|
|
forwarded traffic.</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
|
<para><emphasis role="bold">accountout</emphasis> - for output
|
|
|
|
|
traffic.</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
2008-08-18 06:32:14 +02:00
|
|
|
|
<para>If the CHAIN column contains <quote>-</quote>, then:</para>
|
2007-06-28 16:49:55 +02:00
|
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>If the SOURCE column in a rule includes the name of the firewall
|
|
|
|
|
zone (e.g., $FW), then the default chain to insert the rule into is
|
|
|
|
|
<emphasis role="bold">accountout</emphasis> only.</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>Otherwise, if the DEST in the rule is <emphasis
|
|
|
|
|
role="bold">any</emphasis> or <emphasis role="bold">all</emphasis> or
|
|
|
|
|
0.0.0.0/0, then the rule is added to both <emphasis
|
|
|
|
|
role="bold">accounting</emphasis> and <emphasis
|
|
|
|
|
role="bold">accountout</emphasis>.</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>Otherwise, the rule is added to <emphasis
|
|
|
|
|
role="bold">accounting</emphasis> only.</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</section>
|
2009-03-20 16:09:04 +01:00
|
|
|
|
|
|
|
|
|
<section id="Collectd">
|
|
|
|
|
<title>Integrating Shorewall Accounting with Collectd</title>
|
|
|
|
|
|
|
|
|
|
<para>Sergiusz Pawlowicz has written a nice article that shows how to
|
|
|
|
|
integrate Shorewall Accounting with collectd to produce nice graphs of
|
|
|
|
|
traffic activity. The article may be found at <ulink
|
|
|
|
|
url="http://collectd.org/wiki/index.php/Plugin:IPTables">http://collectd.org/wiki/index.php/Plugin:IPTables</ulink>.</para>
|
|
|
|
|
</section>
|
2008-07-04 17:11:51 +02:00
|
|
|
|
</article>
|