shorewall-exclusion5exclusionExclude 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 exclaimation 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 whitespace 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
/etc/shorewall/rules. 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 DEST
# PORT(S)
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.ExamplesExample 1 - All IPv4 addresses except 192.168.3.4!192.168.3.4Example 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.4Example 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/8Example 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), shorewall-accounting(5), shorewall-actions(5),
shorewall-blacklist(5), shorewall-hosts(5), shorewall_interfaces(5),
shorewall-ipsets(5), shorewall-maclist(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-tcrules(5), shorewall-tos(5),
shorewall-tunnels(5), shorewall-zones(5)