Name

exclusion — Exclude a set of hosts from a definition in a shorewall6 configuration file.

Synopsis

!address-or-range[,address-or-range]...

!zone-name[,zone-name]...

Description

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.,
fe80::2a0:ccff:fedb:31c4) or they may be network addresses in CIDR format
(e.g., fe80::2a0:ccff:fedb:31c4/64). If your kernel and ip6tables include
iprange support, you may also specify ranges of ip addresses of the form
lowaddress-highaddress

No 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
/etc/shorewall/rules. It allows you to omit arbitrary zones from the list
generated by those key words.

Warning

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/shorewall6/zones:

#ZONE TYPE
z1 ip
z2:z1 ip
...

/etc/shorewall6/policy:

#SOURCE DEST POLICY
z1 net CONTINUE
z2 net REJECT

/etc/shorewall6/rules:

#ACTION SOURCE DEST PROTO DEST
# PORT(S)
ACCEPT all!z2 net tcp 22

In this case, SSH connections from z2 to net will
be accepted by the generated z1 to
net ACCEPT rule.