Name
conntrack — shorewall6 conntrack file
Synopsis
/etc/shorewall6/conntrack
Description
The original intent of the notrack file was to exempt certain traffic from Netfilter connection tracking. Traffic matching entries in the file were not to be tracked.
The role of the file was expanded in Shorewall 4.4.27 to include all rules that can be added in the Netfilter raw table. In 4.5.7, the file's name was changed to conntrack.
The file supports two different column layouts: FORMAT 1, FORMAT 2, and FORMAT 3, FORMAT 1 being the default. The three differ as follows:
in FORMAT 2 and 3, there is an additional leading ACTION column.
in FORMAT 3, the SOURCE column accepts no zone name; rather the ACTION column allows a SUFFIX that determines the chain(s) that the generated rule will be added to.
When an entry in the following form is encountered, the format of
the following entries are assumed to be of the specified
format
.
?FORMAT
format |
where format
is either 1,2 or 3.
Format 3 was introduced in Shorewall 4.5.10.
Comments may be attached to Netfilter rules generated from entries in this file through the use of ?COMMENT lines. These lines begin with ?COMMENT; the remainder of the line is treated as a comment which is attached to subsequent rules 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 ?COMMENT.
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).
- ACTION - {NOTRACK|CT:helper:
name
[(arg
=val
[,...])|CT:ctevents:event
[,...]|CT:expevents:new|notrack|DROP|LOG|NFLOG(nflog-parameters
)|IP6TABLES(target
)}[:log-level
[:log-tag
]][:chain-designator
] This column is only present when FORMAT >= 2. Values other than NOTRACK require CT Target support in your iptables and kernel.
NOTRACK
orCT:notrack
Disables connection tracking for this packet. If a
log-level
is specified, the packet will also be logged at that level.helper
:name
Attach the helper identified by the
name
to this connection. This is more flexible than loading the conntrack helper with preset ports. If alog-level
is specified, the packet will also be logged at that level.At this writing, the available helpers are:
- amanda
Requires that the amanda netfilter helper is present.
- ftp
Requires that the FTP netfilter helper is present.
- irc
Requires that the IRC netfilter helper is present.
- netbios-ns
Requires that the netbios_ns (sic) helper is present.
- RAS and Q.931
These require that the H323 netfilter helper is present.
- pptp
Requires that the pptp netfilter helper is present.
- sane
Requires that the SANE netfilter helper is present.
- sip
Requires that the SIP netfilter helper is present.
- snmp
Requires that the SNMP netfilter helper is present.
- tftp
Requires that the TFTP netfilter helper is present.
May be followed by an option list of
arg
=val
pairs in parentheses:ctevents
=event
[,...]Only generate the specified conntrack events for this connection. Possible event types are: new, related, destroy, reply, assured, protoinfo, helper, mark (this is connection mark, not packet mark), natseqinfo, and secmark. If more than one event is listed, the
event
list must be enclosed in parentheses (e.g., ctevents=(new,related)).expevents
=new
Only generate new expectation events for this connection.
ctevents:
event
[,...]Added in Shorewall 4.6.10. Only generate the specified conntrack events for this connection. Possible event types are: new, related, destroy, reply, assured, protoinfo, helper, mark (this is connection mark, not packet mark), natseqinfo, and secmark.
expevents=new
Added in Shorewall 4.6.10. Only generate new expectation events for this connection.
DROP
Added in Shorewall 4.5.10. Silently discard the packet. If a
log-level
is specified, the packet will also be logged at that level.IP6TABLES
(target
)Added in Shorewall 4.6.0. Allows you to specify any iptables
target
with target options (e.g., "IP6TABLES(AUDIT --type drop)"). If the target is not one recognized by Shorewall, the following error message will be issued:ERROR: Unknown target ( target
)This error message may be eliminated by adding
target
as a builtin action in shorewall6-actions(5).LOG
Added in Shoreawll 4.6.0. Logs the packet using the specified
log-level
andlog-tag
(if any). If no log-level is specified, then 'info' is assumed.NFLOG
Added in Shoreawll 4.6.0. Queues the packet to a backend logging daemon using the NFLOG netfilter target with the specified
nflog-parameters
.
When FORMAT = 1, this column is not present and the rule is processed as if NOTRACK had been entered in this column.
Beginning with Shorewall 4.5.10, when FORMAT = 3, this column can end with a colon followed by a
chain-designator
. Thechain-designator
can be one of the following:- P
The rule is added to the raw table PREROUTING chain. This is the default if no
chain-designator
is present.- O
The rule is added to the raw table OUTPUT chain.
- PO or OP
The rule is added to the raw table PREROUTING and OUTPUT chains.
- SOURCE (formats 1 and 2) ‒ zone[:interface][:address-list]
where
zone
is the name of a zone,interface
is an interface to that zone, andaddress-list
is a comma-separated list of addresses (may contain exclusion - see shorewall6-exclusion (5)).Beginning with Shorewall 4.5.7,
all
can be used as thezone
name to mean all zones.Beginning with Shorewall 4.5.10,
all-
can be used as thezone
name to mean all off-firewall zones.- SOURCE (format 3 prior to Shorewall 5.1.0) ‒
{-|interface[:address-list]|
address-list
} Where
interface
is an interface to that zone, andaddress-list
is a comma-separated list of addresses (may contain exclusion - see shorewall6-exclusion (5)).COMMENT is only allowed in format 1; the remainder of the line is treated as a comment that will be associated with the generated rule(s).
- SOURCE (format 3 on Shorewall 5.1.0 and
later) -
{-|[
source-spec
[,...]]} where
source-spec
is one of the following:interface
Where interface is the logical name of an interface defined in shorewall6-interface(5).
address
[,...][exclusion
]where
address
may be:A host or network IP address.
A MAC address in Shorewall format (preceded by a tilde ("~") and using dash ("-") as a separator.
The name of an ipset preceded by a plus sign ("+"). See shorewall6-ipsets(5).
exclusion
is described in shorewall6-exclusion(5).interface
:address
[,...][exclusion
]This form combines the preceding two and requires that both the incoming interace and source address match.
exclusion
See shorewall-exclusion (5)
Beginning with Shorewall 5.1.0, multiple
source-spec
s separated by commas may be specified provided that the following alternative forms are used:(
address
[,...][exclusion
])interface
:(address
[,...][exclusion
])(
exclusion
)- DEST (Prior to Shorewall 5.1.0) ‒
{-|interface[:address-list]|
address-list
} where
address-list
is a comma-separated list of addresses (may contain exclusion - see shorewall6-exclusion (5)).- DEST (Shorewall 5.1.0 and later) -
{-|
dest-spec
[,...]} where
dest-spec
is one of the following:interface
Where interface is the logical name of an interface defined in shorewall6-interfaces(5).
address
[,...][exclusion
]where
address
may be:A host or network IP address.
A MAC address in Shorewall format (preceded by a tilde ("~") and using dash ("-") as a separator.
The name of an ipset preceded by a plus sign ("+"). See shorewall6-ipsets(5).
exclusion
is described in shorewall6-exclusion(5).interface
:address
[,...][exclusion
]This form combines the preceding two and requires that both the outgoing interace and destination address match.
exclusion
See shorewall6-exclusion (5)
Beginning with Shorewall 5.1.0, multiple source-specs separated by commas may be specified provided that the following alternative forms are used:
(
address
[,...][exclusion
])interface
:(address
[,...][exclusion
])(
exclusion
)- PROTO ‒
protocol-name-or-number
[,...] A protocol name from
/etc/protocols
or a protocol number.Beginning with Shorewall 4.5.12, this column can accept a comma-separated list of protocols.
- DPORT -
{-|
port-number/service-name-list
|+ipset
} A comma-separated list of port numbers and/or service names from
/etc/services
. May also include port ranges of the formlow-port
:high-port
if your kernel and iptables include port range support.Beginning with Shorewall 4.6.0, an ipset name can be specified in this column. This is intended to be used with bitmap:port ipsets.
This column was formerly labelled DEST PORT(S).
- SPORT -
{-|
port-number/service-name-list
|+ipset
} A comma-separated list of port numbers and/or service names from
/etc/services
. May also include port ranges of the formlow-port
:high-port
if your kernel and iptables include port range support.Beginning with Shorewall 4.5.15, you may place '=' in this column, provided that the DPORT column is non-empty. This causes the rule to match when either the source port or the destination port in a packet matches one of the ports specified in DPORT.
Beginning with Shorewall 4.6.0, an ipset name can be specified in this column. This is intended to be used with bitmap:port ipsets.
This column was formerly labelled SOURCE PORT(S).
- USER ‒
[
user
][:group
] May only be specified if the SOURCE
zone
is $FW. Specifies the effective user id and or group id of the process sending the traffic.This column was formerly labelled USER/GROUP.
- SWITCH -
[!]
switch-name
[={0|1}] Added in Shorewall6 4.5.10 and allows enabling and disabling the rule without requiring shorewall6 restart.
Enables the rule if the value stored in
/proc/net/nf_condition/
is 1. Disables the rule if that file contains 0 (the default). If '!' is supplied, the test is inverted such that the rule is enabled if the file contains 0.switch-name
Within the
switch-name
, '@0' and '@{0}' are replaced by the name of the chain to which the rule is a added. Theswitch-name
(after '@...' expansion) must begin with a letter and be composed of letters, decimal digits, underscores or hyphens. Switch names must be 30 characters or less in length.Switches are normally off. To turn a switch on:
echo 1 > /proc/net/nf_condition/ switch-name
To turn it off again:
echo 0 > /proc/net/nf_condition/ switch-name
Switch settings are retained over shorewall6 restart.
When the
switch-name
is followed by=0
or=1
, then the switch is initialized to off or on respectively by the start command. Other commands do not affect the switch setting.
EXAMPLES
Example 1:
Use the FTP helper for TCP port 21 connections from the firewall itself.
FORMAT 2 #ACTION SOURCE DEST PROTO DPORT SPORT USER CT:helper:ftp(expevents=new) fw - tcp 21
Example 2 (Shorewall 4.5.10 or later):
Drop traffic to/from all zones to IP address 2001:1.2.3::4
FORMAT 2 #ACTION SOURCE DEST PROTO DPORT SPORT USER DROP all-:2001:1.2.3::4 - DROP all 2001:1.2.3::4
or
FORMAT 3 #ACTION SOURCE DEST PROTO DPORT SPORT USER DROP:P 2001:1.2.3::4 - DROP:PO - 2001:1.2.3::4
See ALSO
http://www.shorewall.net/configuration_file_basics.htm#Pairs
shorewall6(8), shorewall6-accounting(5), shorewall6-actions(5), shorewall6-blacklist(5), shorewall6-hosts(5), shorewall6-interfaces(5), shorewall6-ipsec(5), shorewall6-netmap(5),shorewall6-params(5), shorewall6-policy(5), shorewall6-providers(5), shorewall6-proxyarp(5), shorewall6-rtrules(5), shorewall6-routestopped(5), shorewall6-rules(5), shorewall6.conf(5), shorewall6-secmarks(5), shorewall6-tcclasses(5), shorewall6-tcdevices(5), shorewall6-mangle(5), shorewall6-tos(5), shorewall6-tunnels(5), shorewall-zones(5)