---
name: "shorewall6-conntrack"
section: "5"
platform: "linux"
package: "shorewall6"
version: "5.2.8-6"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/shorewall-conntrack"
---

# shorewall6-conntrack(5)

shorewall conntrack file

Part of [shorewall-conntrack(5)](/shorewall-conntrack/5.md).

## NAME

conntrack - shorewall conntrack file

## SYNOPSIS

**/etc/shorewall\[6\]/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 three different column layouts: FORMAT 1, FORMAT 2, and FORMAT 3 with 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 containing 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\|CT:notrack**\|DROP\|LOG\|ULOG(*ulog-parameters*):NFLOG(*nflog-parameters*)\|IP\[6\]TABLES(*target*)}\[*log-level*\[:*log-tag*\]\]\[:*chain-designator*\]

This column is only present when FORMAT \>= 2. Values other than NOTRACK or DROP require CT Targetsupport in your iptables and kernel.

• **NOTRACK** or **CT:notrack**

Disables connection tracking for this packet. If a *log-level* is specified, the packet will also be logged at that level.

• **CT: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 a *log-level* is specified, the packet will also be logged at that level. Beginning with Shorewall 4.6.10, the helper name is optional

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 a **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*)

IPv6 only.

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 **shorewall-actions**\[1\](5).

• **IPTABLES**(*target*)

IPv4 only.

Added in Shorewall 4.6.0. Allows you to specify any iptables *target* with target options (e.g., "IPTABLES(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 **shorewall-actions**\[1\](5).

• **LOG**

Added in Shoreawll 4.6.0. Logs the packet using the specified *log-level* and *log-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*.

• **ULOG**

IPv4 only. Added in Shoreawll 4.6.0. Queues the packet to a backend logging daemon using the ULOG netfilter target with the specified *ulog-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*. The *chain-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, and *address-list* is a comma-separated list of addresses (may contain exclusion - see **shorewall-exclusion**\[2\] (5)).

Beginning with Shorewall 4.5.7, **all** can be used as the *zone* name to mean all zones.

Beginning with Shorewall 4.5.10, **all-** can be used as the *zone* 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, and *address-list* is a comma-separated list of addresses (may contain exclusion - see **shorewall-exclusion**\[2\] (5)).

**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 **shorewall-interface**\[3\](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 **shorewall-ipsets**\[4\](5).

*exclusion* is described in **shorewall-exclusion**\[2\](5).

*interface*:*address*\[,...\]\[*exclusion*\]

This form combines the preceding two and requires that both the incoming interface and source address match.

*exclusion*

See **shorewall-exclusion**\[2\] (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 **shorewall-exclusion**\[2\] (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 **shorewall-interface**\[3\](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 **shorewall-ipsets**\[4\](5).

*exclusion* is described in **shorewall-exclusion**\[2\](5).

*interface*:*address*\[,...\]\[*exclusion*\]

This form combines the preceding two and requires that both the outgoing interface and destination address match.

*exclusion*

See **shorewall-exclusion**\[2\] (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. tcp and 6 may be optionally followed by **:syn** to match only the SYN packet (first packet in the three-way handshake).

Beginning with Shorewall 4.5.12, this column can accept a comma-separated list of protocols and either **proto** or **protos** is accepted in the alternate input format.

Beginning with Shorewall 5.1.11, when **tcp** or **6** is specified and the ACTION is **CT**, the compiler will default to **:syn**. If you wish the rule to match packets with any valid combination of TCP flags, you may specify **tcp:all** or **6:all**.

DPORT - port-number/service-name-list

A comma-separated list of port numbers and/or service names from /etc/services. May also include port ranges of the form *low-port*:*high-port* if your kernel and iptables include port range support.

This column was formerly labelled DEST PORT(S).

SPORT - port-number/service-name-list

A comma-separated list of port numbers and/or service names from /etc/services. May also include port ranges of the form *low-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. Use of '=' requires multi-port match in your iptables and kernel.

This column was formerly labelled SOURCE PORT(S).

USER – \[*user*\]\[:*group*\]

This column was formerly named USER/GROUP and 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.

**SWITCH - \[!\]***switch-name***\[={0\|1}\]**

Added in Shorewall 4.5.10 and allows enabling and disabling the rule without requiring **shorewall restart**.

The rule is enabled if the value stored in /proc/net/nf\_condition/*switch-name* is 1. The rule is disabled 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.

Within the *switch-name*, '@0' and '@{0}' are replaced by the name of the chain to which the rule is a added. The *switch-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 **shorewall 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.

## EXAMPLE

IPv4 Example 1:

```
#ACTION                       SOURCE            DEST               PROTO            DPORT             SPORT               USER
CT:helper:ftp(expevents=new)  fw                -                  tcp              21
```

IPv4 Example 2 (Shorewall 4.5.10 or later):

Drop traffic to/from all zones to IP address 1.2.3.4

```
?FORMAT 2
#ACTION                       SOURCE             DEST               PROTO           DPORT             SPORT               USER
DROP                          all-:1.2.3.4       -
DROP                          all                1.2.3.4
```

or

```
?FORMAT 3
#ACTION                       SOURCE             DEST               PROTO           DPORT             SPORT               USER
DROP:P                        1.2.3.4            -
DROP:PO                       -                  1.2.3.4
```

IPv6 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
```

IPv6 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
```

## FILES

/etc/shorewall/conntrack

/etc/shorewall6/conntrack

## SEE ALSO

**https://shorewall.org/configuration\_file\_basics.htm#Pairs**\[5\]

[shorewall(8)](/shorewall/8.md)

## NOTES

- 1\.

  shorewall-actions

  https://shorewall.org/manpages/shorewall-actions.html

- 2\.

  shorewall-exclusion

  https://shorewall.org/manpages/shorewall-exclusion.html

- 3\.

  shorewall-interface

  https://shorewall.org/manpages/shorewall-interfaces.html

- 4\.

  shorewall-ipsets

  https://shorewall.org/manpages/shorewall-ipsets.html

- 5\.

  https://shorewall.org/configuration\_file\_basics.htm#Pairs

  https://shorewall.org/configuration\_file\_basics.htm#Pairs
