物理开发

物理开发

我在这样的桥中有三个接口

auto br0
iface br0 inet static
    bridge_ports enp0s10 wlx00e032800384 wlx08beac0a6c1d
    address 192.168.1.31
    netmask 255.255.255.0

一个开放的 AP 正在第三个接口上运行,首先我想阻止除 1 个 MAC 地址之外的所有内容。我认为这样就可以了(并将该接口上的任何内容限制为只能 ssh 到 AP 框)

iptables -A INPUT -i wlx08beac0a6c1d -m mac ! --mac-source 00:30:65:05:9F:4D -j DROP
iptables -A INPUT -i wlx08beac0a6c1d -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o wlx08beac0a6c1d -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i wlx08beac0a6c1d -j DROP
iptables -A OUTPUT -o wlx08beac0a6c1d -j DROP

但事实并非如此。

我的猜测是,原因是因为iptables只看到br0而不关心各个接口?有办法做到这一点吗?

我想一种方法是将开放的 AP 放在不同的子网上,然后以某种方式在两个子网之间路由?

答案1

是的,与physdev:

物理开发

该模块与从属于桥接设备的桥接端口输入和输出设备相匹配。该模块是实现透明桥接 IP 防火墙的基础设施的一部分,仅对 2.5.44 版本以上的内核版本有用。

[!] --physdev-in姓名
接收报文的桥接端口名称(仅适用于进入桥接端口的报文)输入,向前预路由链)。如果接口名称以“+”结尾,则任何以此名称开头的接口都将匹配。如果数据包没有通过桥接设备到达,则该数据包将不匹配此选项,除非“!”用来。
[!] --physdev-out姓名
将要发送数据包的桥接端口的名称(对于进入桥接数据包的桥接数据包)向前后布线链)。如果接口名称以“+”结尾,则任何以此名称开头的接口都将匹配。
[!] --physdev-is-in
如果数据包已通过桥接接口进入,则匹配。
[!] --physdev-已退出
如果数据包将通过桥接接口离开,则匹配。
[!] --physdev-is-bridged
如果数据包正在桥接,因此未进行路由,则匹配。这仅在 FORWARD 和 POSTROUTING 链中有用。

相关内容