The order of entries in this file is important
This file determines what to do with a new connection request if we don't get a match from the m[blue]shorewall-blrulesm[][2](5) or m[blue]shorewall-rulesm[][3](5) files. For each source/destination pair, the file is processed in order until a match is found ("all" will match any source or destination).
Intra-zone policies are pre-defined
For $FW and for all of the zones defined in m[blue]shorewall-zonesm[][1](5), the POLICY for connections from the zone to itself is ACCEPT (with no logging or TCP connection rate limiting) but may be overridden by an entry in this file. The overriding entry must be explicit (specifying the zone name in both SOURCE and DEST) or it must use "all+" (Shorewall 4.5.17 or later).
Similarly, if you have IMPLICIT_CONTINUE=Yes in m[blue]shorewall.confm[][4](5), then the implicit policy to/from any sub-zone is CONTINUE. These implicit CONTINUE policies may also be overridden by an explicit entry in this file.
The columns in the file are as follows (where the column name is followed by a different name in parentheses, the different name is used in the alternate specification syntax).
SOURCE - zone[,...[+]]|$FW|all[+][!ezone[,...]]
Support for all+ was added in Shorewall 4.5.17. all does not override the implicit intra-zone ACCEPT policy while all+ does.
Beginning with Shorewall 5.0.12, multiple zones may be listed separated by commas. As above, if '+' is specified after two or more zone names, then the policy overrides the implicit intra-zone ACCEPT policy if the same zone appears in both the SOURCE and DEST columns.
Beginning with Shorewall 5.2.3, a comma-separated list of excluded zones preceded by "!" may follow all or all+.
DEST - zone[,...[+]]|$FW|all[+][!ezone[,...]]
Support for "all+" was added in Shorewall 4.5.17. "all" does not override the implicit intra-zone ACCEPT policy while "all+" does.
Beginning with Shorewall 5.0.12, multiple zones may be listed separated by commas. As above, if '+' is specified after two or more zone names, then the policy overrides the implicit intra-zone ACCEPT policy if the same zone appears in both the SOURCE and DEST columns.
Beginning with Shorewall 5.2.3, a comma-separated list of excluded zones preceded by "!" may follow all or all+.
POLICY - {ACCEPT|DROP|REJECT|BLACKLIST|CONTINUE|QUEUE|NFQUEUE[(queuenumber1[:queuenumber2])]|NONE}[:{[+]policy-action[:level][,...]|None}]
If the policy is neither CONTINUE nor NONE then the policy may be followed by ":" and one of the following:
Actions can have parameters specified.
Beginning with Shorewall 4.5.10, the action name can be followed optionally by a colon and a log level. The level will be applied to each rule in the action or body that does not already have a log level.
Beginning with Shorewall 5.1.2, multiple action[:level] specification may be listeded, separated by commas. The actions are invoked in the order listed. Also beginning with Shorewall 5.1.2, the policy-action list can be prefixed with a plus sign ("+") indicating that the listed actions are in addition to those listed in the related _DEFAULT setting in m[blue]shorewall.confm[][4](5).
Possible policies are:
ACCEPT
DROP
REJECT
BLACKLIST
QUEUE
NFQUEUE
CONTINUE
NONE
LOGLEVEL (loglevel) - [log-level|ULOG|NFLOG]
You may also specify ULOG or NFLOG (must be in upper case). This will log to the ULOG or NFLOG target and will send to a separate log through use of ulogd (m[blue]http://www.netfilter.org/projects/ulogd/index.htmlm[]).
For a description of logging, see m[blue]shorewall-logging(5)m[][6].
If you don't want to log but need to specify the following column, place "-" here.
RATE (rate) - [-|limit]
When s: or d: is specified, the rate applies per source IP address or per destination IP address respectively. The name may be chosen by the user and specifies a hash table to be used to count matching connections. If not give, the name shorewall is assumed. Where more than one POLICY or rule specifies the same name, the connections counts for the policies are aggregated and the individual rates apply to the aggregated count. Beginning with Shorewall 5.2.1, the s or d may be followed by a slash ("/") and an integer vlsm. When a vlsm is specified, all source or destination addresses encountered will be grouped according to the given prefix length and the so-created subnet will be subject to the rate limit.
Beginning with Shorewall 4.6.5, two limits may be specified, separated by a comma. In this case, the first limit (name1, rate1, burst1) specifies the per-source IP limit and the second limit specifies the per-destination IP limit.
Example: client:10/sec:20,:60/sec:100
Beginning with Shorewall 5.2.1, the table name, if any, may be followed by two integers separated by commas and enclosed in parentheses. The first integer (ht-buckets) specifies the number of buckets in the generated hash table. The second integer (ht-max) specifies the maximum number of entries in the hash table.
Example: s:client(1024,65536):10/sec
CONNLIMIT - limit[:mask]
#SOURCE DEST POLICY LOG BURST:LIMIT # LEVEL loc net ACCEPT net all DROP info # # THE FOLLOWING POLICY MUST BE LAST # all all REJECT info
/etc/shorewall/policy
m[blue]http://www.shorewall.net/configuration_file_basics.htm#Pairsm[][7]
shorewall(8)