很多用户拥有ISP提供的路由器或自己的网关/路由器设备,他们更倾向于保留这些设备,在不更换现有网络设备的前提下提升网络安全性。透明网桥可以在保留原有网络基础设施的同时,在网络中插入防火墙。
什么是透明网桥
透明网桥能够检查遍历一个物理网络接口上的网络流量,并根据防火墙规则及其他安全保护措施,将允许通过的流量转发到另一个网络接口。
透明网桥至少需要两个物理网络接口:一个用于入站连接,一个用于出站连接。
透明网桥的部署位置
透明网桥通常部署在以下位置:
1、调制解调器和路由器之间
如果使用独立的调制解调器和独立的路由器,可以在二者之间放置透明过滤桥,使防火墙位于网络的最外层。如果只关注保护网络边界,可以选择这种部署方式。
注意:
- 源或目标IP地址是路由器的公有WAN地址,因此无法知道流量来自网络中的哪个设备,网络流量缺乏可见性。
- 虽然可以阻止进出网络的流量,但无法阻止网络内部(如各种VLAN之间)的流量,因为网桥位于路由器WAN接口之前。
2、路由器和网络交换机之间
如果使用多合一调制解调器/路由器或其他路由器/网关设备,则可以在路由器和网络交换机之间放置透明网桥。
该部署的最大优势在于,除了通过WAN接口进出网络的流量外,还可以过滤本地网络内部的流量。由于所有本地路由的网络流量都必须经过路由器,因此也必须经过透明网桥,从而对内部网络(包括各种VLAN)拥有更大的可见性。
3、在单个VLAN上,如DMZ网络
即使主网络路由器拥有强大的防火墙和其他安全功能,也可能希望部署第二个防火墙,以更好地保护本地网络免受面向公众的DMZ网络的影响。企业可能倾向于为辅助防火墙选用不同供应商的产品,以最大限度地降低某一品牌防火墙的漏洞被辅助防火墙利用的风险(如果它们是同一供应商的话)。
从本质上讲,可以在网络上的任意两台设备之间放置透明网桥。我甚至测试过两台PC之间的透明过滤网桥,以测试示例网络中使用的Gowin R86S-P2的吞吐量。在启用Intel N5105 CPU的Zenarmor的情况下,吞吐量可达1.8-2 Gbps,对于较旧、较慢的CPU来说相当不错。R86S-P2几乎可以完全饱和2.5 Gbps的带宽。
示例网络
以下是在本示例中使用的网络设备,包括现有路由器(Grandstream GCC6010)、网络交换机(Grandstream GWN7811P)和无线接入点(Grandstream GWN7664E)。网络上还有一台PC(ZimaBoard 832)。

在本指南的示例场景中,将把透明桥接设备(Gowin R86S-P2)放置在路由器和网络交换机之间,以便获得更高的设备可见性。

大多数透明过滤桥指南会演示如何设置仅包含两个网络接口的过滤桥。但是,我将演示如何使用三个物理接口。我非常喜欢为所有网络基础设施(如路由器/防火墙、服务器、NAS和其他设备)配置专用的管理接口。
拥有专用管理接口的第三个接口的优势在于,在配置桥接接口时,您不会被锁定在OPNsense Web界面之外。我注意到一个常见问题:用户经常会无意中将自己锁定在Web界面之外——即使桥接器本身工作正常。
1. 安装OPNsense
对于本指南,只需让安装程序在不按任何键的情况下启动,以便它使用WAN/LAN接口分配的默认设置。在大多数情况下,OPNsense默认将第一个接口作为LAN,第二个接口作为WAN。安装程序运行到提示符后,输入installer/opnsense用户名和密码进行安装。安装完成后,通过 https://192.168.1.1 登录OPNsense。
2. 更改LAN接口IP(可选)
建议在配置新的MGMT接口之前,先在OPNsense中更改LAN接口的默认IP地址范围,因为目标是将MGMT接口放在现有网络上。转到Interfaces > [LAN]页面,将IPv4地址更改为192.168.2.1/24。
点击Save按钮,但不要点击Apply changes!如果单击“应用更改”,将会在更改DHCP范围之前断开与Web UI的连接。

转到Services > ISC DHCPv4 > [LAN]页面。将Range更改为192.168.2.100-192.168.2.199。

返回Interfaces > [LAN]页面,然后单击Apply changes。此时会暂时无法访问OPNsense Web UI。断开并重新连接PC(或执行DHCP续订),应该会获得一个新的192.168.2.x地址。访问 https://192.168.2.1,重新登录OPNsense。
3. 配置管理接口
是否可以简单地使用默认的LAN接口作为管理接口,在另外两个物理接口上创建网桥?可以这样做,但如果不正确更改设置,可能会将自己锁定在OPNsense Web UI之外。
3.1 分配MGMT接口
转到Interfaces > Assignments页面。Device下拉列表中应该列出了未使用的网络接口,在本示例中,选择igc2作为MGMT接口。输入接口的描述信息MGMT,单击Add按钮分配接口。

3.2 启用MGMT接口
在接口菜单中,单击MGMT接口,选中Enable Interface复选框,并选中Prevent interface removal选项,以减少在以后需要进行更改时意外删除接口的可能性。
在IPv4 Configuration Type部分中选择Static IPv4,为管理接口设置静态IP。在静态IPv4配置部分中,输入IPv4地址,需要确保该静态IP地址不位于主路由器上设置的DHCP范围内,并且不会与管理网络上的任何其他静态IP地址冲突。点击页面底部的Save按钮,然后点击页面顶部的Apply changes按钮。

3.3 创建防火墙规则
默认情况下,新接口没有分配任何防火墙规则,这意味着接口上的所有网络流量都被阻止(由于防火墙的“默认拒绝”策略)。
在Firewall > Rules > MGMT页面上,需要添加以下规则:
| 动作 | TCP/IP版本 | 协议 | 源 | 目标 | 目标端口 | 描述 |
|---|---|---|---|---|---|---|
| Pass | IPv4 | TCP | MGMT net | MGMT address | 443 (HTTPS) | Allow access to OPNsense web UI |
提示: 如果希望允许SSH访问OPNsense系统,则还需要创建与上述规则类似的规则,将目标端口更改为22即可。
4. 测试MGMT接口
在配置网桥并删除现有LAN接口(因为它将成为过滤网桥的一部分)之前,先测试对MGMT接口的访问是否顺利。确保在设置过滤网桥时不会失去对OPNsense系统的访问权限。测试没有问题后,通过 https://192.168.1.99 登录OPNsense Web UI。
现在可以自由修改其他两个接口的配置,而不必担心失去对OPNsense的访问权限。即使没有正确配置透明桥,只要不修改MGMT接口的配置,仍然可以正常访问OPNsense。
5. 配置透明网桥
本节中的步骤与OPNsense官方说明相对接近,但有一些细微差异。由于已经配置了单独的物理MGMT接口,因此可以跳过有关在网桥上配置管理接口的OPNsense步骤。
5.1 禁用出站NAT规则生成
由于OPNsense将作为过滤网桥而不是路由器运行,因此可以禁用出站NAT。在Firewall > NAT > Outbound页面上,单击Disable outbound NAT rule generation的单选按钮。

点击Save和Apply changes。
5.2 修改系统可调选项
导航到System > Settings > Tunables页面,修改几个系统可调参数。

在浏览器中按Ctrl+F搜索文本,或向下滚动查找可调选项。单击铅笔图标来编辑条目。将net.link.bridge.pfil_bridge值更改为1以便在桥接接口上启用过滤。将net.link.bridge.pfil_member值更改为0以禁用对单个物理接口的过滤。点击Apply changes应用更改。
5.3 创建Bridge接口
转到Interfaces > Devices > Bridge,单击+按钮添加桥接接口。在Member interfaces选项中选中LAN和WAN,输入桥的描述信息BRIDGE。

点击Save。
5.4 分配网桥接口
转到Interfaces > Assignments页面,Device选中bridge0 (BRIDGE),输入接口的描述信息,如BRIDGE。点击Add。

5.5 启用桥接接口
转到Interfaces > [BRIDGE]启用桥接接口。选中Enable Interface和Prevent interface removal复选框。将所有内容保留为默认值。点击Save并Apply changes。

5.6 在WAN接口上禁用阻止私有网络和Bogons
转到WAN接口配置页面(Interfaces > [WAN])。
取消选中Block private networks和Block bogon networks选项,以防止阻止内部私有IP地址(因为网桥将过滤内部网络上的流量)。

5.7 在WAN接口上禁用IP地址
过滤网桥的物理接口不需要为其分配任何IP地址,因为流量将仅通过过滤网桥。在WAN接口,同时将IPv4配置类型和IPv6配置类型选项设置为None。

5.8 在LAN接口上禁用DHCP服务器
在Services > ISC DHCPv4 > [LAN]页面上,取消选中Enable DHCP server on LAN interface复选框。点击Save。

5.9 在LAN接口上禁用IP地址
转到Interfaces > [LAN]页面,将IPv4配置类型和IPv6配置类型选项设置为None。

5.10 在Bridge上创建防火墙规则
配置过滤桥的最后一步是创建防火墙规则。建议先创建一个“允许所有”规则,以验证流量是否可以顺利通过透明桥,然后再实施更严格的防火墙规则。
在Firewall > Rules > BRIDGE页面上,单击+按钮添加规则。
添加以下规则以允许所有流量:
| 动作 | TCP/IP版本 | 协议 | 源 | 目标 | 目标端口 | 描述 |
|---|---|---|---|---|---|---|
| Pass | IPv4+IPv6 | any | any | any | any | allow all |
点击Save然后点击Apply changes。
6. 测试透明网桥
将以太网电缆从路由器的LAN接口插入其中一个透明过滤桥接接口,将另一根电缆从网络交换机插入另一个透明过滤桥接接口。OPNsense盒子将位于路由器和网络交换机之间,网络上的其余设备都位于该位置(如果有其他设备直接连接到路由器的LAN端口,则来自这些设备的流量将不会被透明过滤桥过滤)。
6.1 创建阻止规则来测试过滤流量(可选)
如果想测试使用透明桥阻止流量,可以简单地阻止所有通过该桥的HTTPS流量(不用担心,仍然可以通过MGMT接口访问OPNsense Web UI)。
在BRIDGE接口的allow all规则上方创建以下阻止规则:
| 动作 | TCP/IP版本 | 协议 | 源 | 目标 | 目标端口 | 描述 |
|---|---|---|---|---|---|---|
| Block | IPv4+IPv6 | TCP | any | any | 443 (HTTPS) | Block HTTPS |
尝试访问任何网站,应该会发现它已被阻止(除非打开了现有连接——默认情况下,防火墙状态不会自动清除)。完成该阻止规则的测试后,可以禁用或删除它,以便可以再次访问网站。
7. 允许OPNsense访问Internet以获取更新和插件
透明网桥已经可以正常工作,但当尝试更新OPNsense时,它会失败,因为还没有为OPNsense系统本身配置网关或DNS。
虽然已为MGMT接口配置了静态IP地址,但不包括网关或DNS配置。转到System > Gateways > Configuration页面,单击+按钮。输入网关的Name,如MGMT_Gateway,Interface选择MGMT,IP Address输入主网络路由器的LAN接口IP地址,如192.168.1.1。点击Save按钮。

7.1 添加系统DNS设置
默认情况下,System > Settings > General页面上没有指定DNS服务器,需要将DNS服务器添加到列表中。该页面上列出的DNS服务器是OPNsense系统本身将使用的DNS服务器。可以使用主路由器的IP地址作为DNS服务器。

7.2 更新OPNsense
现在转到System > Firmware > Status页面,然后单击Check for updates按钮来验证是否能够检查OPNsense更新。
8. 配置其他安全功能
除了在透明桥上使用标准防火墙规则来保护您的网络外,还可以在OPNsense系统上配置其他安全服务,以进一步提高网络的安全性。三个流行的选择是Zenarmor、Suricata和CrowdSec,每项服务都提供不同类型的保护。
Zenarmor提供云威胁情报来阻止广告、应用程序和恶意活动。此外,还有许多报告可用于帮助可视化和分析网络流量。免费版提供了一套基本保护,如果需要更多安全功能和其他配置文件,可以选择家庭版订阅。
提示: 将Zenarmor与透明过滤桥一起使用时,无需使用“桥接模式”设置Zenarmor,因为由于Zenarmor创建桥接的方式,这将绕过标准OPNsense防火墙规则。建议在透明过滤桥上使用Zenarmor的“路由模式”,这样仍然可以在透明桥上使用标准防火墙规则。
Suricata拥有非常适合基于Web和应用程序防火墙的规则集。免费规则集只能使用30天前的列表,如果想阻止新出现的威胁,则需要为专业规则集付费。如果托管各种公开暴露的应用程序或处于不受信任的环境中,Suricata非常有用。
CrowdSec利用众包恶意IP数据集,这些数据集可用于阻止传入/传出的恶意IP地址(比Zenarmor和Suricata范围更广且资源效率更高)。此外,它还为OPNsense Web UI和SSH服务提供暴力破解和其他保护,还可以用作网络上其他CrowdSec安装的LAPI(本地API)。
觉得内容不错?我要