OpenWRT 可以与交换机配合使用并进行 IP 过滤吗?如何操作?

OpenWRT 可以与交换机配合使用并进行 IP 过滤吗?如何操作?

OpenWRT 允许人们以多种方式配置路由器上的交换机 - 执行 VLAN 等。

但是 OpenWRT 是否可以像交换机一样运行,但也可以执行基于 IP 的过滤器 - 允许从端口 A 到 B 的所有流量,反之亦然,但阻止从端口 A 到某些 IP 地址的流量,并且由于路由器/调制解调器在那里,该流量通常会流向端口 B?

我需要阻止到特定 IP 地址的流量。路由器/调制解调器太笨,无法进行防火墙过滤。我无法在路由器后进行 NAT,因为它需要直接访问 wifi 点。因此,我唯一的机会是将 wifi 点连接到可以从路由器/调制解调器的流量中进行 IP 过滤的交换机。

答案1

您应该购买具有两个“真正”以太网接口的设备。一些超便宜的路由器实际上只有一个以太网接口,并使用内置交换机上的基于端口的 VLAN 将这个接口拆分为多个。这将严重限制可实现的吞吐量/带宽。您可能无论如何都无法使用这些(不支持 OpenWrt)。

MikroTik 发布了大多数路由器的基准测试,您可以检查这些基准测试以找到合适的设备。


您必须确保设备已连接到现有网络,这样任何流量都无法绕过其 CPU。在典型的路由器上,您只需将 WAN 端口连接到上行链路路由器(您现有的调制解调器/路由器设备),其余所有设备都连接到 LAN 端。

为了得到你想要的东西你现在必须做以下事情:

  • 禁用 DHCP 等
  • 在软件中桥接 WAN 和 LAN

在此过程中,您必须确保桥接路由器仍然可以通过网络以适当的 IP 地址访问。

如果一切顺利,您的路由器现在应该在其以太网接口之间桥接流量,并且您的网络基本上应该像以前一样工作。

您现在可以设置影响桥接流量的防火墙规则了。


我已经有好几年没有使用过 OpenWrt 了,而且关于这个特定主题的文档至少可以说严重缺乏。希望其他人可以在此贡献/验证具体步骤。

文档仅提供起点:

opkg update
opkg install kmod-nft-bridge

可以在/etc/firewall.user脚本中添加自定义规则(常规 Linux 风格)。它们看起来像这样:

nft add rule bridge filter forward iif eth1 oif eth2 ether type ip tcp dport 9999 drop

根据需要调整接口和协议、过滤器。

也可以使用nft list ruleset类型语法编写上述命令,然后将其包含/etc/config/firewall如下内容:

config include
    option  type        'nftables'
    option  path        '/etc/my_bridge_firewall.nft'
    option  position    'table-post'

再次强调:这一切都尚未得到证实。


MikroTik 路由器操作系统支持桥接过滤所以不需要在这些设备上安装 OpenWrt。

/interface bridge filter
add action=drop chain=forward in-interface=ether3 out-interface=ether2 mac-protocol=ip ip-protocol=tcp dst-port=9999 comment="Disallow TCP port 9999"

根据需要调整接口和协议、过滤器。在 Winbox 和 Webfig 中,您可以在 Bridge → Filters 中找到这些设置。您必须按照上面列出的顺序选择协议,否则某些字段将被禁用。

您还可以强制桥接流量使用“完整”IP 防火墙,方法是use-ip-firewall启用桥接中的设置。这可能会慢很多。

硬件卸载会干扰过滤器,因为交换芯片会在内部处理流量。不过,它不适用于 CPU/SoC 上物理接口之间的桥接。

桥接快进也可能会干扰过滤器,因此可能必须将其禁用。

相关内容