Name

conntrack — shorewall conntrack file

Synopsis

/etc/shorewall/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. The optional '?' was introduced in Shorewall 4.5.11 and ?FORMAT is the preferred form; the form without the '?' is deprecated.

Comments may be attached to Netfilter rules generated from entries in this file through the use of COMMENT lines. These lines begin with the word 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 the word COMMENT.

Note

Beginning with Shorewall 4.5.11, ?COMMENT is a synonym for COMMENT and is preferred.

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)|IPTABLES(target)}[log-level[:log-tag]][:chain-designator]

This column is only present when FORMAT >= 2. Values other than NOTRACK or DROP require CT Target support 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.

  • IPTABLES(target)

    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(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

    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]|COMMENT}

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 (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) ‒ {-|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 (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).

DEST ‒ {-|interface[:address-list]|address-list}

where address-list is a comma-separated list of addresses (may contain exclusion - see shorewall-exclusion (5)).

PROTO ‒ protocol-name-or-number[,...]

A protocol name from /etc/protocols or a protocol number.

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

DEST PORT(S) (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.

SOURCE 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 DEST PORT(S) 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 DEST PORTS(S). Use of '=' requires multi-port match in your iptables and kernel.

USER/GROUP (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.

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

Example 1:

#ACTION                       SOURCE            DEST               PROTO            DEST              SOURCE              USER/GROUP
#                                                                                   PORT(S)           PORT(S)
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 1.2.3.4

FORMAT 2
#ACTION                       SOURCE             DEST               PROTO            DEST              SOURCE              USER/GROUP
#                                                                                   PORT(S)           PORT(S)
DROP                          all-:1.2.3.4       -
DROP                          all                1.2.3.4

or

FORMAT 3
#ACTION                       SOURCE             DEST               PROTO            DEST              SOURCE              USER/GROUP
#                                                                                   PORT(S)           PORT(S)
DROP:P                        1.2.3.4            -
DROP:PO                       -                  1.2.3.4

FILES

/etc/shorewall/notrack

See ALSO

http://www.shorewall.net/configuration_file_basics.htm#Pairs

shorewall(8), shorewall-accounting(5), shorewall-actions(5), shorewall-blacklist(5), shorewall-hosts(5), shorewall_interfaces(5), shorewall-ipsets(5), shorewall-masq(5), shorewall-nat(5), shorewall-netmap(5), shorewall-params(5), shorewall-policy(5), shorewall-providers(5), shorewall-proxyarp(5), shorewall-rtrules(5), shorewall-routestopped(5), shorewall-rules(5), shorewall.conf(5), shorewall-secmarks(5), shorewall-tcclasses(5), shorewall-tcdevices(5), shorewall-mangle(5), shorewall-tos(5), shorewall-tunnels(5), shorewall-zones(5)

Documentation


Frequently Used Articles

- FAQs - IPv4 Manpages - IPv6 Manpages - Configuration File Basics - Beginner Documentation - Troubleshooting

Shorewall 4.0/4.2 Documentation


Current HOWTOs and Other Articles

- 6to4 and 6in4 Tunnels - Accounting - Actions - Aliased (virtual) Interfaces (e.g., eth0:0) - Anatomy of Shorewall - Anti-Spoofing Measures - AUDIT Target support - Bandwidth Control - Blacklisting/Whitelisting - Bridge/Firewall - Building Shorewall from GIT - Commands - Compiled Programs - Configuration File Basics - DHCP - DNAT - Dynamic Zones - ECN Disabling by host or subnet - Events - Extension Scripts - Fallback/Uninstall - FAQs - Features - Fool's Firewall - Forwarding Traffic on the Same Interface - FTP and Shorewall - Helpers/Helper Modules - Installation/Upgrade - IPP2P - IPSEC - Ipsets - IPv6 Support - ISO 3661 Country Codes - Kazaa Filtering - Kernel Configuration - KVM (Kernel-mode Virtual Machine) - Limiting Connection Rates - Linux Containers (LXC) - Linux-vserver - Logging - Macros - MAC Verification - Manpages (IPv4) (IPv6) - Manual Chains - Masquerading - Multiple Internet Connections from a Single Firewall - Multiple Zones Through One Interface - My Shorewall Configuration - Netfilter Overview - Network Mapping - No firewalling of traffic between bridge port - One-to-one NAT - Operating Shorewall - OpenVPN - OpenVZ - Packet Marking - Packet Processing in a Shorewall-based Firewall - 'Ping' Management - Port Forwarding - Port Information - Port Knocking (deprecated) - Port Knocking, Auto Blacklisting and Other Uses of the 'Recent Match' - PPTP - Proxy ARP - QuickStart Guides - Release Model - Requirements - Routing and Shorewall - Routing on One Interface - Samba - Shorewall Events - Shorewall Init - Shorewall Lite - Shorewall on a Laptop - Shorewall Perl - Shorewall Setup Guide - SMB - SNAT - Split DNS the Easy Way - Squid with Shorewall - Starting/stopping the Firewall - Static (one-to-one) NAT - Support - Tips and Hints - Traffic Shaping/QOS - Simple - Traffic Shaping/QOS - Complex - Transparent Proxy - UPnP - Upgrade Issues - Upgrading to Shorewall 4.4 (Upgrading Debian Lenny to Squeeze) - VPN - VPN Passthrough - White List Creation - Xen - Shorewall in a Bridged Xen DomU - Xen - Shorewall in Routed Xen Dom0

Top of Page