interfaces — Shorewall interfaces file
/etc/shorewall/interfaces
The interfaces file serves to define the firewall's network interfaces to Shorewall. The order of entries in this file is not significant in determining zone composition.
The columns in the file are as follows.
Zone for this interface. Must match the name of a zone declared in /etc/shorewall/zones. You may not list the firewall zone in this column.
If the interface serves multiple zones that will be defined in the shorewall-hosts(5) file, you should place "-" in this column.
If there are multiple interfaces to the same zone, you must list them in separate entries.
Example:
#ZONE INTERFACE BROADCAST loc eth1 - loc eth2 -
Logical name of interface. Each interface may be listed only
once in this file. You may NOT specify the name of a "virtual"
interface (e.g., eth0:0) here; see http://www.shorewall.net/FAQ.htm#faq18.
If the physical
option is not specified, then the
logical name is also the name of the actual interface.
You may use wildcards here by specifying a prefix followed by the plus sign ("+"). For example, if you want to make an entry that applies to all PPP interfaces, use 'ppp+'; that would match ppp0, ppp1, ppp2, …
When using Shorewall versions before 4.1.4, care must be exercised when using wildcards where there is another zone that uses a matching specific interface. See shorewall-nesting(5) for a discussion of this problem.
Shorewall allows '+' as an interface name.
There is no need to define the loopback interface (lo) in this file.
If a port
is given, then the
interface
must have been defined
previously with the bridge
option. The OPTIONS
column may not contain the following options when a
port
is given.
arp_filter |
arp_ignore |
bridge |
log_martians |
mss |
optional |
proxyarp |
required |
routefilter |
sourceroute |
upnp |
If you use the special value detect, Shorewall will detect the broadcast address(es) for you if your iptables and kernel include Address Type Match support.
If your iptables and/or kernel lack Address Type Match support then you may list the broadcast address(es) for the network(s) to which the interface belongs. For P-T-P interfaces, this column is left blank. If the interface has multiple addresses on multiple subnets then list the broadcast addresses as a comma-separated list.
If you don't want to give a value for this column but you want to enter a value in the OPTIONS column, enter - in this column.
A comma-separated list of options from the following list. The order in which you list the options is not significant but the list should have no embedded white space.
If specified, this interface will only respond to ARP who-has requests for IP addresses configured on the interface. If not specified, the interface can respond to ARP who-has requests for IP addresses on any of the firewall's interface. The interface must be up when Shorewall is started.
Only those interfaces with the
arp_filter
option will have their setting
changed; the value assigned to the setting will be the value
specified (if any) or 1 if no value is given.
This option does not work with a wild-card
interface
name (e.g., eth0.+) in
the INTERFACE column.
If specified, this interface will respond to arp requests based on the value of number (defaults to 1).
1 - reply only if the target IP address is local address configured on the incoming interface
2 - reply only if the target IP address is local address configured on the incoming interface and the sender's IP address is part from same subnet on this interface's address
3 - do not reply for local addresses configured with scope host, only resolutions for global and link
4-7 - reserved
8 - do not reply for all local addresses
This option does not work with a wild-card
interface
name (e.g., eth0.+) in
the INTERFACE column.
Do not specify arp_ignore for any interface involved in Proxy ARP.
Check packets arriving on this interface against the shorewall-blacklist(5) file.
Designates the interface as a bridge. Beginning with
Shorewall 4.4.7, setting this option also sets
routeback
.
Specify this option when any of the following are true:
the interface gets its IP address via DHCP
the interface is used by a DHCP server running on the firewall
the interface has a static IP but is on a LAN segment with lots of DHCP clients.
the interface is a simple bridge with a DHCP server on one port and DHCP clients on another port.
If you use Shorewall-perl for firewall/bridging, then you need to include DHCP-specific rules in shorewall-rules(8). DHCP uses UDP ports 67 and 68.
This option allows DHCP datagrams to enter and leave the interface.
Turn on kernel martian logging (logging of packets with
impossible source addresses. It is strongly suggested that if
you set routefilter on an
interface that you also set logmartians. Even if you do not specify
the routefilter
option, it is a good idea to
specify logmartians
because your distribution
may have enabled route filtering without you knowing
it.
Only those interfaces with the
logmartians
option will have their setting
changed; the value assigned to the setting will be the value
specified (if any) or 1 if no value is given.
To find out if route filtering is set on a given
interface
, check the contents of
/proc/sys/net/ipv4/conf/
- a non-zero value indicates that route filtering is
enabled.interface
/rp_filter
Example:
teastep@lists:~$ cat /proc/sys/net/ipv4/conf/eth0/rp_filter
1
teastep@lists:~$
This option does not work with a wild-card
interface
name (e.g., eth0.+) in
the INTERFACE column.
This option may also be enabled globally in the shorewall.conf(5) file.
Connection requests from this interface are compared against the contents of shorewall-maclist(5). If this option is specified, the interface must be an ethernet NIC and must be up before Shorewall is started.
Added in Shorewall 4.0.3. Causes forwarded TCP SYN
packets entering or leaving on this interface to have their
MSS field set to the specified
number
.
Limit the zone named in the ZONE column to only the
listed networks. The parentheses may be omitted if only a
single net
is given (e.g.,
nets=192.168.1.0/24). Limited broadcast to the zone is
supported. Beginning with Shorewall 4.4.1, multicast traffic
to the zone is also supported.
Defines the zone as dynamic. Requires ipset match support in your iptables and kernel. See http://www.shorewall.net/Dynamic.html for further information.
Filter packets for smurfs (packets with a broadcast address as the source).
Smurfs will be optionally logged based on the setting of SMURF_LOG_LEVEL in shorewall.conf(5). After logging, the packets are dropped.
When optional
is specified for an
interface, Shorewall will be silent when:
a /proc/sys/net/ipv4/conf/
entry for the interface cannot be modified (including for
proxy ARP).
The first address of the interface cannot be obtained.
May not be specified with required.
Use optional
at your own risk. If you
[re]start Shorewall when an 'optional' interface is not
available and then do a shorewall save,
subsequent shorewall restore and
shorewall -f start operations will
instantiate a ruleset that does not support that interface,
even if it is available at the time of the
restore/start.
Added in Shorewall 4.4.4. When specified, the interface or port name in the INTERFACE column is a logical name that refers to the name given in this option. It is useful when you want to specify the same wildcard port name on two or more bridges. See http://www.shorewall.net/bridge-Shorewall-perl.html#Multiple.
If the interface name is a wildcard name (ends with '+'), then the physical name must also end in '+'.
If physical
is not specified, then it's
value defaults to the interface
name.
Sets /proc/sys/net/ipv4/conf/interface/proxy_arp. Do NOT use this option if you are employing Proxy ARP through entries in shorewall-proxyarp(5). This option is intended solely for use with Proxy ARP sub-networking as described at: http://tldp.org/HOWTO/Proxy-ARP-Subnet/index.html.
Note: This option does
not work with a wild-card interface
name (e.g., eth0.+) in the INTERFACE column.
Only those interfaces with the proxyarp
option will have their setting changed; the value assigned to
the setting will be the value specified (if any) or 1 if no
value is given.
Added in Shorewall 4.4.10. If this option is set, the firewall will fail to start if the interface is not usable. May not be specified together with optional.
If specified, indicates that Shorewall should include rules that allow traffic arriving on this interface to be routed back out that same interface. This option is also required when you have used a wildcard in the INTERFACE column if you want to allow traffic between the interfaces that match the wildcard.
Turn on kernel route filtering for this interface (anti-spoofing measure).
Only those interfaces with the
routefilter
option will have their setting
changes; the value assigned to the setting will be the value
specified (if any) or 1 if no value is given.
The value 2 is only available with Shorewall 4.4.5.1 and later when the kernel version is 2.6.31 or later. It specifies a loose form of reverse path filtering.
This option does not work with a wild-card
interface
name (e.g., eth0.+) in
the INTERFACE column.
This option can also be enabled globally in the shorewall.conf(5) file.
If this option is not specified for an interface, then source-routed packets will not be accepted from that interface (sets /proc/sys/net/ipv4/conf/interface/accept_source_route to 1). Only set this option if you know what you are doing. This might represent a security risk and is usually unneeded.
Only those interfaces with the
sourceroute
option will have their setting
changed; the value assigned to the setting will be the value
specified (if any) or 1 if no value is given.
This option does not work with a wild-card
interface
name (e.g., eth0.+) in
the INTERFACE column.
Packets arriving on this interface are checked for certain illegal combinations of TCP flags. Packets found to have such a combination of flags are handled according to the setting of TCP_FLAGS_DISPOSITION after having been logged according to the setting of TCP_FLAGS_LOG_LEVEL.
Incoming requests from this interface may be remapped via UPNP (upnpd). See http://www.shorewall.net/UPnP.html.
This option is intended for laptop users who always run Shorewall on their system yet need to run UPnP-enabled client apps such as Transmission (BitTorrent client). The option causes Shorewall to detect the default gateway through the interface and to accept UDP packets from that gateway. Note that, like all aspects of UPnP, this is a security hole so use this option at your own risk.
Suppose you have eth0 connected to a DSL modem and eth1 connected to your local network and that your local subnet is 192.168.1.0/24. The interface gets its IP address via DHCP from subnet 206.191.149.192/27. You have a DMZ with subnet 192.168.2.0/24 using eth2.
Your entries for this setup would look like:
#ZONE INTERFACE BROADCAST OPTIONS net eth0 206.191.149.223 dhcp loc eth1 192.168.1.255 dmz eth2 192.168.2.255
The same configuration without specifying broadcast addresses is:
#ZONE INTERFACE BROADCAST OPTIONS net eth0 detect dhcp loc eth1 detect dmz eth2 detect
You have a simple dial-in system with no ethernet connections.
#ZONE INTERFACE BROADCAST OPTIONS net ppp0 -
You have a bridge with no IP address and you want to allow traffic through the bridge.
#ZONE INTERFACE BROADCAST OPTIONS - br0 - routeback
shorewall(8), shorewall-accounting(5), shorewall-actions(5), shorewall-blacklist(5), shorewall-hosts(5), shorewall-ipsec(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-route_rules(5), shorewall-routestopped(5), shorewall-rules(5), shorewall.conf(5), shorewall-tcclasses(5), shorewall-tcdevices(5), shorewall-tcrules(5), shorewall-tos(5), shorewall-tunnels(5), shorewall-zones(5)