Iptables
如何防止 TINC 中繼 DHCP
我在幾個執行 Debian 7 Wheezy 的 NAT 路由器中執行 tinc,VPN 可以正常工作幾個月,除了因為我將它設置為交換機模式,它會在所有 VPN 上中繼 DHCP 請求和應答。問題是主機 A 使用 10.10.10.2-254 的池用於 DHCP,10.10.10.1 作為網關(主機 A),主機 B 使用 10.10.10.2-254 的池用於 DHCP,10.10.20.1 作為網關(主機 B),等等。
請注意,tinc tap(乙太網)介面跨物理 LAN 介面橋接,因為我的“雲”的目的是讓所有網路(A,B ..)中的所有主機出現在同一個 LAN 中。
我正在尋找一個簡單的解決方案來克服這個問題。嘗試將 iptables 與 physdev 和 physdev-in 一起使用,指定 tinc 介面,但這似乎不起作用。
有沒有其他解決方案?
PS:將 tinc 切換到路由器模式不是解決方案,因為我真的需要多播和其他不可路由的協議。
如果您將 sysctl 變數 net.bridge.bridge-nf-call-iptables 設置為 1,它應該與 iptables -t mangle -m physdev 一起使用。
sysctl -w net.bridge.bridge-nf-call-iptables=1 iptables -t mangle -I PREROUTING -m physdev --physdev-in vpn1 \ -p udp --dport 67:68 -j DROP
您還可以使用 ebtables 阻止它:
## dont accept dhcp packets directed to the local machine ebtables -A INPUT --in-interface vpn1 --protocol ipv4 \ --ip-protocol udp --ip-destination-port 67:68 -j DROP ## dont forward dhcp packets coming in from vpn ebtables -A FORWARD --in-interface vpn1 --protocol ipv4 \ --ip-protocol udp --ip-destination-port 67:68 -j DROP ## dont send dhcp requests over vpn ebtables -A FORWARD --out-interface vpn1 --protocol ipv4 \ --ip-protocol udp --ip-destination-port 67:68 -j DROP