OPNsense防火墙规则设置示例

为便于使用者理解并使用防火墙规则,我将各种常用规则编辑成示例。这些示例中使用的任意IP地址可以替换为别名,以方便对不同的网络和设备进行管理。

下面分LAN和WAN两个接口来介绍不同的防火墙规则。

LAN规则

默认情况下,OPNsense 中的 LAN 网络有反锁定规则(防止你将自己锁定在 Web 界面之外)和允许访问所有本地和远程网络的“允许任何”规则。当你在另一个物理接口上创建新 VLAN 或网络时,默认情况下会阻止对所有其他网络的访问,因为没有为新网络定义防火墙规则(DHCP 运行所需的隐藏自动生成规则除外)。下面的示例假设你有多个本地网络,并且你希望允许不同网络中的设备之间进行通信。下面是一些示例:

允许 VLAN 10 上的单个设备访问 VLAN 20 上单个设备的任意端口

该规则允许 VLAN 10 上 IP 地址为 192.168.10.10 的设备访问VLAN 20上 IP 地址为 192.168.20.10 设备上运行的任何对外服务:

选项
动作 pass
接口 VLAN10
协议 any
192.168.10.10
源端口 any
目标 192.168.20.10
目标端口 any
描述 允许设备到设备访问

允许 VLAN 10 上的任意设备访问 VLAN 20 上单个设备的任何端口

该规则允许 VLAN 10 上的所有设备访问VLAN20上地址为 192.168.20.10 的设备上运行的任何对外服务:

选项
动作 pass
接口 VLAN10
协议 any
VLAN10
源端口 any
目标 192.168.20.10
目标端口 any
描述 允许 VLAN 10 访问设备

允许任何设备访问任何网络或设备(本地网络和 Internet)

这是安装 OPNsense 时由 OPNsense 在 LAN 接口上创建的默认“全部允许”规则。

选项
动作 pass
接口 LAN NET
协议 any
any
源端口 any
目标 any
目标端口 any
描述 允许访问任何网络/设备

 

阻止 VLAN 10 上的单个设备访问 Internet

该示例阻止 VLAN 10 上 IP 地址为 192.168.10.10 的特定设备访问 Internet 和其他本地网络(例如 VLAN 20):

选项
动作 阻止
接口 VLAN10
协议 any
192.168.10.10
源端口 any
目标 any
目标端口 any
描述 阻止访问 Internet

如果你的 VLAN 已经相互隔离,则对其他本地网络的访问已经被阻止,因此此规则实质上是阻止访问 Internet。

注意:此规则不会阻止 VLAN 10 内任意之间的访问,因为从一个设备到同一VLAN内另一设备的任意流量都被视为本地流量,不会通过路由器。

阻止 VLAN 10 上的所有设备访问 Internet

要阻止整个 VLAN 10 网络上的所有设备,不为 VLAN 10 接口添加任何防火墙规则就可以实现。默认情况下,所有出站流量都被阻止,因此该规则是多余的。但是,出于学习目的,以下规则将阻止所有出站流量:

选项
动作 阻止
接口 VLAN10
协议 any
VLAN10 NET
源端口 any
目标 any
目标端口 any
描述 阻止访问 Internet

阻止 VLAN 10 上的所有设备访问 Internet 上的单个主机/服务器

该示例阻止 VLAN 10 上的所有设备访问 Internet 上的一个特定 IP 地址(例如 8.8.8.8):

选项
动作 阻止
接口 VLAN10
协议 any
VLAN10 NET
源端口 any
目标 8.8.8.8
目标端口 any
描述 阻止访问主机/服务器 8.8.8.8

允许所有内部网络上的 ICMP 消息

一般情况下,管理员都会禁用内部和外部网络上的所有 ICMP 消息,以保证网络安全。但有时为了排除故障需要,可能需要在内部网络上允许 ping 来解决网络上的连接问题。

如果有多个 VLAN,建议创建防火墙规则组或使用浮动规则。对于防火墙规则组或浮动规则,只选择你希望使用 ICMP 的 LAN/VLAN 接口,然后创建下面的规则。下面的示例使用组名 ICMPGroup 作为接口(因为组已经知道应用规则的接口)。如果使用浮动规则,可以选择合适的 LAN/VLAN 接口列表,而不是使用组名称作为接口。这些是最常见和最有用的 ICMP 消息:

选项
动作 pass
接口 ICMPGroup
协议 ICMP
ICMP类型 Echo Request
any
目标 any
描述 允许 ICMP 回显请求消息
选项
动作 pass
接口 ICMPGroup
协议 ICMP
ICMP类型 Echo Reply
any
目标 any
描述 允许 ICMP 回显回复消息
选项
动作 pass
接口 ICMPGroup
协议 ICMP
ICMP类型 Destination Unreachable
any
目标 any
描述 允许 ICMP 目标不可达消息
选项
动作 pass
接口 ICMPGroup
协议 ICMP
ICMP类型 超时
any
目标 any
描述 允许 ICMP 超时消息

如果想使用 ICMP 但阻止将其用于某些网络,例如管理 的VLAN 或其他敏感网络,可以在“允许”规则上方添加“阻止”规则。如下面所示,只需添加以下规则:

选项
动作 阻止
接口 ICMPGroup
协议 ICMP
ICMP类型 Echo Request
any
目标 MGMT NET
描述 阻止到管理 VLAN 的 ICMP 回显请求消息

通过端口转发将 LAN上的DNS请求重定向到Unbound DNS

如果希望将端口53上的所有出站DNS请求重定向到本地的Unbound DNS解析器,可以在LAN 网络上创建一个NAT端口转发规则。

选项
动作 pass
接口 LAN
协议 TCP/UDP
any
源端口 any
目标/反转 选中
目标 LAN net
目标端口 53 (DNS)
重定向目标 IP 127.0.0.1
重定向目标端口 53 (DNS)
描述 将外部 DNS 请求重定向到本地 DNS 解析器
过滤规则关联 添加关联的过滤规则(或通过)

如果有多个希望重定向DNS请求的本地网络,可以转到“防火墙 > 组”页面并将所有需要的接口添加到组中来创建一个防火墙组。这将允许创建单个规则来重定向整个网络的 DNS请求。

选项
动作 pass
接口 MyGroup
协议 TCP/UDP
any
源端口 any
目标/反转 选中
目标 MyGroup net
目标端口 53 (DNS)
重定向目标 IP 127.0.0.1
重定向目标端口 53 (DNS)
描述 将外部 DNS 请求重定向到本地 DNS 解析器
过滤规则关联 添加关联的过滤规则(或通过)

通过NAT端口转发将LAN 上的 NTP请求重定向到本地NTP服务

将端口123上的所有出站 NTP(网络时间协议)请求重定向到本地NTP服务器:

选项
动作 pass
接口 LAN
协议 TCP/UDP
any
源端口 any
目标/反转 已选中
目标 lan net
目标端口 123 (NTP)
重定向目标 IP 127.0.0.1
重定向目标端口 123 (NTP)
描述 将外部 NTP 请求重定向到本地 NTP 服务
过滤规则关联 添加关联的过滤规则(或通过)

WAN规则

允许在WAN上远程访问OPNsense上的VPN服务器

由于 OpenVPN 服务托管在 OPNsense 路由器上,可以将以下规则添加到WAN接口。这适用于在路由器上运行的任何服务,因为正常情况下是不需要将任何端口转发到网络内的设备:

选项
动作 pass
接口 wan
协议 UDP
any
源端口 any
目标 WAN address
目标 1194
描述 允许远程访问 OpenVPN

使用NAT端口转发远程访问VLAN 10 上的Web服务器

转到“防火墙 > NAT > 端口转发”页面。创建规则的过程与其他 LAN/WAN 规则类似,这里还需要指定网络上内部设备的 IP/别名和端口号。

注意:创建NAT端口转发规则时,页面底部的“过滤规则关联”默认情况下设置为“无”,这意味着无法从网络外部访问内部服务器。如果不使用多WAN 配置,请选择“pass”;如果使用多 WAN 配置或希望在WAN 接口上自动创建相应的 WAN 规则,请选择“添加关联过滤规则”。使用“Pass”选项的好处是WAN 规则不会与 NAT 端口转发规则混淆。如果希望在 WAN 接口上查看规则,则需要选择“添加关联过滤规则”以使规则可见。

选项
动作 pass
接口 WAN
协议 TCP
any
源端口 any
目标 WAN address
目标端口 443 (HTTPS)
重定向目标 IP 192.168.10.10
重定向目标端口 443 (HTTPS)
描述 允许远程访问Web 服务器
过滤规则关联 添加关联的过滤规则(或通过)

外部端口和托管服务的内部设备上的端口可以不同。可以为一些服务(例如 SSH)使用不同的外部端口,这可以在一定程度上增加防火墙的安全性。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注