shorewall-exclusion5Configuration FilesexclusionExclude a set of hosts from a definition in a shorewall
configuration file.address-or-range[,address-or-range]zone-name[,zone-name]DescriptionThe first form of exclusion is used when you wish to exclude one or
more addresses from a definition. An exclamation point is followed by a
comma-separated list of addresses. The addresses may be single host
addresses (e.g., 192.168.1.4) or they may be network addresses in CIDR
format (e.g., 192.168.1.0/24). If your kernel and iptables include iprange
support, you may also specify ranges of ip addresses of the form
lowaddress-highaddressNo embedded white-space is allowed.Exclusion can appear after a list of addresses and/or address
ranges. In that case, the final list of address is formed by taking the
first list and then removing the addresses defined in the
exclusion.Beginning in Shorewall 4.4.13, the second form of exclusion is
allowed after all and any in the SOURCE and DEST columns of shorewall-rules(5). It allows
you to omit arbitrary zones from the list generated by those key
words.If you omit a sub-zone and there is an explicit or explicit
CONTINUE policy, a connection to/from that zone can still be matched by
the rule generated for a parent zone.For example:
/etc/shorewall/zones:#ZONE TYPE
z1 ip
z2:z1 ip
.../etc/shorewall/policy:#SOURCE DEST POLICY
z1 net CONTINUE
z2 net REJECT/etc/shorewall/rules:#ACTION SOURCE DEST PROTO DPORT
ACCEPT all!z2 net tcp 22In this case, SSH connections from z2 to net will
be accepted by the generated z1 to
net ACCEPT rule.
In most contexts, ipset names can be used as an
address-or-range. Beginning with Shorewall
4.4.14, ipset lists enclosed in +[...] may also be included (see shorewall-ipsets (5)). The
semantics of these lists when used in an exclusion are as follows:!+[set1,set2,...setN]
produces a packet match if the packet does not match at least one of
the sets. In other words, it is like NOT match
set1 OR NOT match
set2 ... OR NOT match
setN.+[!set1,!set2,...!setN]
produces a packet match if the packet does not match any of the sets.
In other words, it is like NOT match set1
AND NOT match set2 ... AND NOT match
setN.ExamplesIPv4 Example 1 - All IPv4 addresses except 192.168.3.4!192.168.3.4IPv4 Example 2 - All IPv4 addresses except the network
192.168.1.0/24 and the host 10.2.3.4!192.168.1.0/24,10.1.3.4IPv4 Example 3 - All IPv4 addresses except the range
192.168.1.3-192.168.1.12 and the network 10.0.0.0/8!192.168.1.3-192.168.1.12,10.0.0.0/8IPv4 Example 4 - The network 192.168.1.0/24 except hosts
192.168.1.3 and 192.168.1.9192.168.1.0/24!192.168.1.3,192.168.1.9Example 5 - All parent zones except locany!locFILES/etc/shorewall/hosts/etc/shorewall/masq/etc/shorewall/rules/etc/shorewall/tcrulesSee ALSOshorewall(8)