interfaces: Rewrite transparent filtering bridge, also include IDS/IPS and VLAN (#799)

* interfaces: Rewrite transparent filtering bridge, also include IDS/IPS, remove old images, embedd vlan hints for enterprise users

* interfaces: Rewrite transparent filtering bridge
This commit is contained in:
Monviech 2025-12-08 15:18:18 +01:00 committed by GitHub
parent d807937410
commit b01ff77cc6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 116 additions and 146 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

View File

@ -1,206 +1,176 @@
============================
Transparent Filtering Bridge
============================
-------
Warning
-------
The Transparent Filtering Bridge is not compatible with Traffic Shaping.
Do not enable the traffic shaper when using the filtering bridge.
.. contents:: Index
--------
Abstract
--------
A transparent firewall can be used to filter traffic without creating
different subnets. This application is called filtering bridge as it
acts as a bridge connection two interfaces and applies filtering rules
on top of this.
Introduction
============================
A transparent firewall can be used to filter traffic without creating different subnets.
The firewall bridges the same layer 2 broadcast domain across two or more ports.
If a VLAN trunk is connected, any VLAN tagged frames will be bridged transparently.
This setup can be used to filter via firewall rules and use IDS/IPS to inspect all packets
via a netmap driver.
For more information on Filtering Bridged on FreeBSD, see
`filtering-bridges <https://www.freebsd.org/doc/en/articles/filtering-bridges/article.html>`__
------------
.. Attention::
The bridge is not compatible with `Traffic Shaping`.
.. Attention::
When vlan tagged frames should be passed through, do not create any vlans on the member ports of the bridge.
Otherwise, vlan tagged frames would be filtered and the bridge would not be transparent anymore.
Requirements
------------
----------------------------
- For this howto we need a basic installation of OPNsense with factory
defaults as a starting point.
- And an appliance with 2 physical interfaces.
For best compatibility and performance, a bare metal appliance with at least 3 physical ports should be used.
A virtualized appliance could also work, but there could be elusive layer 2 issues with bridging or vlans.
--------------
Considerations
--------------
.. Attention::
To create this howto version OPNsense 15.7.11 has been used. Some screenshots
maybe outdated, but setting should apply up to at least 17.1.6. If you use a
different version some options can be different.
.. Note::
The Menu System of the User Interface has been updated with sub items.
Where tabs are shown in screenshots, these are now likely visible as submenu.
------------------------------
Configuration in 10 easy steps
------------------------------
.. contents::
:local:
.. Warning::
During the configuration you will be asked to "Apply" your changes several times,
however this may affect the current connection. So **don't** apply anything until
completely finished! You need to Save your changes for each step.
If a vlan trunk is used, you should always use a bare metal appliance, and preferably Intel network cards.
The native netmap driver used for IDS/IPS in combination with VLANs does not always work correctly with other vendors or
virtualized NICs. Please also ensure that only tagged frames are sent over this trunk.
1. Disable Outbound NAT rule generation
Configuration
============================
Our example appliance has 3 available network ports:
- igc0: LAN (Bridge)
- igc1: WAN (Bridge)
- igc2: Management
::
+-----------------+ +-----------------+
Internet | | WAN (igc1) | (Bridge) | LAN (igc0)
-------->| ISP Router |---------------->| OPNsense |----------> Switch
| | trunk port | Firewall, IPS | trunk port
+-----------------+ +-----------------+
| Management (igc2)
|-------------------> Switch
access port
.. Tip::
The management interface can either be directly connected to the ISP router on a separate port,
or to an internal switch on a VLAN that will circle back through the bridge.
1. Assign management interface
---------------------------------------
To disable outbound NAT, go to
:menuselection:`Firewall --> NAT --> Outbound` and select “Disable Outbound NAT rule generation”.
The management interface will be used to access the firewall WebGUI and to enable access
to the internet for firmware updates.
- Go to :menuselection:`Interfaces --> Assignements` and `Assign a new interface`.
Select one of the free available ports (e.g. igc2) and assign it, set the description to `Management`.
- Afterwards go to :menuselection:`Interfaces --> Management` and set `IPv4 Configuration Type` to `DHCP` or `Static IPv4` dependant on your usecase.
Next we add a firewall rule to allow access to the WebGUI on this management interface:
- Go to :menuselection:`Firewall --> Rules --> Management` and add a new rule that allows `HTTPS` access to destination `This Firewall`.
After applying all of these settings, connect to your appliance over the management port for the next steps.
|Filtering Bridge Step 1.png|
2. Change system tuneables
--------------------------
Enable filtering bridge by changing **net.link.bridge.pfil\_bridge**
from default to 1 in :menuselection:`System --> Settings --> System Tuneables`.
Here we change that the firewall rules should match on the bridge, instead of the bridge members.
|Filtering Bridge Step 2.png|
- Go to :menuselection:`System --> Settings --> System Tuneables` and set:
And disable filtering on member interfaces by changing
**net.link.bridge.pfil\_member** from default to 0 in
:menuselection:`System --> Settings --> System Tuneables`.
- ``net.link.bridge.pfil_bridge`` - ``1``
- ``net.link.bridge.pfil_member`` - ``0``
|Filtering Bridge Step2a.png|
3. Create the bridge
--------------------
Create a bridge of LAN and WAN, go to
:menuselection:`Interfaces --> Devices --> Bridge`. Add Select LAN and WAN.
- Go to :menuselection:`Interfaces --> WAN` and :menuselection:`Interfaces --> LAN`:
|Filtering Bridge Step 3a.png|
- Set `IPv4 Configuration Type` and `IPv6 Configuration Type` to ``None``
- Disable `Block private networks` and `Block bogon networks`
|Filtering Bridge Step 3b.png|
.. Attention::
4. Assign a management IP/Interface
-----------------------------------
Disable any DHCP servers that are bound to the LAN interface.
To be able to configure and manage the filtering bridge (OPNsense)
afterwards, we will need to assign a new interface to the bridge and
setup an IP address.
- Go to :menuselection:`Interfaces --> Devices --> Bridge`:
Go to :menuselection:`Interfaces --> Assign --> Available network port`, select
the bridge from the list and hit **+**.
- Add a new bridge and select WAN and LAN as `Member interfaces`
|Filtering Bridge Step 4.png|
.. Attention::
Now Add an IP address to the interface that you would like to use to
manage the bridge. Go to :menuselection:`Interfaces --> [OPT1]`, enable the interface
and fill-in the ip/netmask.
Do not select `Enable link-local address`, in this configuration the bridge interface
should stay unnumbered (no IP addresses or any vlans assigned to it or its member interfaces)
5. Disable Block private networks & bogon
-----------------------------------------
- Go to :menuselection:`Interfaces --> Assignements`:
For the WAN interface we nee to disable blocking of private networks & bogus IPs.
- Assign the new bridge interface, set the description to `Bridge`
Go to :menuselection:`Interfaces --> [WAN]` and unselect **Block private networks**
and **Block bogon networks**.
- Go to :menuselection:`Interfaces --> Bridge`:
|Filtering Bridge Step 5.png|
- Enable the bridge interface in the interface settings
- Set `IPv4 Configuration Type` and `IPv6 Configuration Type` on ``None``
6. Disable the DHCP server on LAN
---------------------------------
To disable the DHCP server on LAN go to :menuselection:`Services --> DHCPv4 --> [LAN]` and
unselect enable.
4. Add Firewall rules
----------------------------
|Filtering Bridge Step 6.png|
- Go to :menuselection:`Firewall --> Rules --> Bridge`:
7. Add Allow rules
-------------------
After configuring the bridge the rules on member interfaces (WAN/LAN) will be
ignored. So you can skip this step.
- Add firewall rules on the bridge interface to allow all traffic (direction in and out)
Add the allow rules for all traffic on each of the three interfaces (WAN/LAN/OPT1).
.. Tip::
This step is to ensure we have a full transparent bridge without any filtering
taking place. You can setup the correct rules when you have confirmed the bridge
to work properly.
You can create more restrictive rules if required. If only IDS/IPS should be used,
rules that allow any traffic are sufficient. Since the bridge is fully transparent and unnumbered,
no client can communicate with the firewall directly.
Go to :menuselection:`Firewall --> Rules` and add a rule per interface to allow all traffic
of any type.
|Filtering Bridge Step 7.png|
5. Enable IDS/IPS
----------------------------
8. Disable Default Anti Lockout Rule
------------------------------------
After configuring the bridge the rules on member interfaces (WAN/LAN) will be
ignored. So you can skip this step.
To inspect all bridge traffic, we can enable the `Intrusion Detection` service.
As we now have setup allow rules for each interface we can safely remove
the Anti Lockout rule on LAN
Go to :menuselection:`Services --> Intrusion Detection --> Administration --> General Settings`
Go to :menuselection:`Firewall --> Settings --> Admin Access`: Anti-lockout and select
this option to disable
================================ ========================================================================================
Option Description
================================ ========================================================================================
Enabled ``X``
IPS mode ``X``
Promiscuous mode ``X`` (if vlan tagged frames are received on bridge members)
Interfaces ``WAN``
================================ ========================================================================================
9. Set LAN and WAN interface type to 'none'
-------------------------------------------
Afterwards download and activate the rules that you need and apply the configuration.
Now remove the IP subnets in use for LAN and WAN by changing the
interface type to none. Go to :menuselection:`Interfaces --> [LAN]` and :menuselection:`Interfaces --> [WAN]`
to do so.
.. Attention::
|Filtering Bridge Step 9.png|
Do not choose the bridge interface, always choose the WAN interface. The emulated netmap driver cannot process vlans on the bridge,
it must attach in native mode to the physical interface.
10. Now apply the changes
-------------------------
If you followed each step, then you can now apply the changes. The
Firewall is now converted to a filtering bridge.
6. Connect interfaces to existing infrastructure
--------------------------------------------------------
.. rubric:: Done.. ready to set your own filtering rules
:name: done..-ready-to-set-your-own-filtering-rules
Now you can connect the bridge member interfaces to their respective switch or router.
Now you can create the correct firewall/filter rules and apply them. To
acces the firewall you need to use the IP adress you configured for the
OPT1 Interface.
WAN should be connected to a trunk port on the WAN facing side, and LAN to a trunk port on the internal protected side.
.. WARNING::
Rules need to be configured on the bridge. Rules on member interfaces will
be ignored!
.. TIP::
Don't forget to make sure your PC/Laptop is configured with an IP adress that
falls within the IP range of the OPT1 subnet!
.. |Filtering Bridge Step 1.png| image:: images/Filtering_Bridge_Step_1.png
:width: 700px
.. |Filtering Bridge Step 2.png| image:: images/Filtering_Bridge_Step_2.png
:class: thumbimage
:width: 700px
.. |Filtering Bridge Step2a.png| image:: images/Filtering_Bridge_Step_2a.png
:class: thumbimage
:width: 700px
.. |Filtering Bridge Step 3a.png| image:: images/Filtering_Bridge_Step_3a.png
:width: 700px
.. |Filtering Bridge Step 3b.png| image:: images/Filtering_Bridge_Step_3b.png
:width: 700px
.. |Filtering Bridge Step 4.png| image:: images/Filtering_Bridge_Step_4.png
:width: 700px
.. |Filtering Bridge Step 5.png| image:: images/Filtering_Bridge_Step_5.png
:width: 700px
.. |Filtering Bridge Step 6.png| image:: images/Filtering_Bridge_Step_6.png
:width: 619px
.. |Filtering Bridge Step 7.png| image:: images/Filtering_Bridge_Step_7.png
:width: 700px
:height: 69px
.. |Filtering Bridge Step 9.png| image:: images/Filtering_Bridge_Step_9.png
:width: 700px
The firewall will be able to connect to the internet to fetch the latest updates via the management port.