Iptables
iptables 可以區分網橋的介面嗎?
我在這樣的網橋中有三個介面
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 放在不同的子網中,然後以某種方式在兩個子網之間路由?
是的,有
physdev
:物理開發
該模組匹配受制於橋接設備的橋接埠輸入和輸出設備。該模組是啟用透明橋接 IP 防火牆的基礎架構的一部分,僅對 2.5.44 以上的核心版本有用。
$$ ! $$–physdev-in名稱 接收數據包的網橋埠的名稱(僅適用於進入INPUT、FORWARD和PREROUTING鏈的數據包)。如果介面名稱以“+”結尾,那麼任何以此名稱開頭的介面都將匹配。如果數據包沒有通過網橋設備到達,則此數據包將不匹配此選項,除非“!” 用來。 $$ ! $$–physdev-out名稱 將通過其發送數據包的橋接埠的名稱(用於進入FORWARD和POSTROUTING鏈的橋接數據包)。如果介面名稱以“+”結尾,那麼任何以此名稱開頭的介面都將匹配。 $$ ! $$–physdev-is-in 如果數據包通過網橋介面進入,則匹配。 $$ ! $$–physdev-is-out 匹配數據包是否將通過網橋介面離開。 $$ ! $$–physdev-is-bridged 如果數據包正在被橋接,因此沒有被路由,則匹配。這僅在 FORWARD 和 POSTROUTING 鏈中有用。