Stealth
The FireBrick can operate in stealth mode - which basically means it
is invisible. Obviously it cannot be completely invisible, otherwise it
would be no good as a firewall. The key part of stealth mode is that devices
on one side of the FireBrick can send packets to devices on the other side
of the FireBrick without knowing the FireBrick is there - i.e. using MAC
addresses as normal. To do this the FireBrick propagates ARP requests and
replies, allowing devices on one side to locate devices on the other side
as normal. All IP packets passing through the Firebrick are subject to
its normal session tracking, filtering, and port mapping rules.
As such the FireBrick is transparent subject to the following caveats
:-
-
Runt, overlong, bad CRC, and otherwise deformed frames are dropped
-
802.3 style ethernet packets are changed to standard ethernet packets (removal
of 802.3 headers)
-
Packets which are not IP or ARP (request and reply) are discarded. In particular,
this means IPX and NETBEUI are not passed through the FireBrick
-
As the FireBrick has two half duplex 10baseT interfaces, this can result
in additional collisions and packet loss when running at very high throughputs
(e.g. 900KB/s+) which means the FireBrick is not quite the same as having
a hub.
-
The FireBrick maintains a MAC cache, recording which side of the FireBrick
each MAC has been seen. Packets which are known to be destined for MAC
addresses on the same side that they were received are dropped. This is
much the same has having a switching hub in front of the FireBrick.
-
ARP requests and replies are specially processed
-
All IP packets are subject to session tracking, filtering, and port mapping
rules
-
The FireBrick introduces around 1ms additional delay, depending on packet
size, with an extra 2ms to 3ms on the initial packets in a session.
-
The FireBrick intercepts traffic to a specific stealth IP address per interface,
allowing the http://my.FireBrick.co.uk/ set up pages to operate.
ARP request propagation
In order for the FireBrick to operate in a stealth mode, it is necessary
for ARP requests to be passed from one interface to another. This then
allows devices on each interface to address devices on the other interface
by MAC address as if the FireBrick was not there and they were on the same
LAN.
After factory reset the FireBrick is in a full stealth mode. This means
ARP requests are passed to the other side. However the FireBrick can operate
in a partial stealth mode where it has some subnets defined. The subnet
defines the IP and netmask to be used on a specific interface, and the
FireBrick can have many subnets defined. Subnets can be marked as stealth.
Note that subnets are subject to profiles, so may only be operational at
certain times.
The exact rule for passing ARP requests is described in ARP
handling.
ARP reply propagation
As devices will normally cache ARP replies regardless of whether they requested
them, incorrect propagation of ARP replies could cause ARP poisoning (i.e.
incorrect ARP data in ARP caches). As described in ARP
handling, ARP requests that are passed through are session tracked,
and only valid replies passed back.
Broadcast packet propagation
A broadcast packet is one sent to the broadcast MAC address.
If the target IP is the network or broadcast IP of a subnet on the interface
from which the packet was received, and the subnet is not marked stealth,
then the FireBrick considers this a packet for itself and does not propagate
it.
If the target IP is 255.255.255.255 and either we have no IP on a DHCP
client subnet, or there is no source IP, or we have a subnet where the
source IP is within the subnet, then the FireBrick considers the packet
for itself and does not propagate it.
Otherwise broadcast packets are propagated subject to global stealth
controls.
TTL/Routing
When packets are propagated in stealth mode, they are not treated as routed
packets and as such the routing rules in the FireBrick do not apply. Routing
only applies where the FireBrick must decide where to send a packet, but
stealth packets already have an identified target MAC address and so do
not require routing.
Packets to the FireBrick itself (by MAC, or broadcast MAC as above)
are treated as routed, although port mapping can be used to force a stealth
packet to be routed. Only routed packets will cause the TTL to be counted
down and a time exceeded ICMP to be generated if this reaches zero.
Stealth intercept address
The FireBrick has a stealth address which is pre-programmed for
the LAN interface. This is by default 217.169.0.1 which is a public IP
address assigned to the FireBrick and so should never clash with any other
network.
This address is used to allow communication with a stealth FireBrick.
The FireBrick will answer ARP requests on the LAN for this address, and
accept traffic to this address (even stealth traffic) from the LAN. Both
explicit and implicit filtering rules allow this traffic for web page configuration
of the FireBrick. This address can be changed, but this is not normally
necessary.
The address has a public DNS entry of my.firebrick.co.uk, which allows
configuration using a web browser to this address. On the internet this
address has a page explaining that you have not reached your FireBrick,
in case it is used when a FireBrick is not in place. Formerly the FireBrick
had 62.190.255.253, and this is now old.firebrick.co.uk, allowing access
to older FireBricks which have not been reconfigured with the new address.
When answering TCP traffic on this address, the FireBrick will use the
external router MAC address in its replies, hence remaining in complete
stealth mode.
There is also an option for a WAN stealth address. This is an address
which is only used where the FireBrick must generate traffic on the WAN
and where no subnet exists. This is typical of a full stealth configuration,
and allows the FireBrick to initial time setting requests, and even send
emails. The address much be the address of a machine on the LAN so that
traffic for the address will reach the FireBrick from the WAN side. Also
the address must be of a machine that is power on so that the router on
the WAN can ARP the address as the FireBrick does not presume to reply
for the machine.
Apart from intercepting specific replies to its active outgoing requests,
the FireBrick does not otherwise interfere with traffic to the address
it is borrowing.
Stealth controls
Global controls in the log/filter options allow stealth to be disabled
:-
-
The default passing through of ARP requests can be disabled. i.e. only
ARPs within explicit stealth subnets are passed through.
-
The passing through of subnet broadcast packets can be disabled.
-
The passing through of local broadcast (255.255.255.255) packets can be
disabled.
-
The passing of any stealth packets can be completely disabled (stopping
all of the above as well).
In all cases, such disabled packets are dropped silently before any filtering
or logging.