Iptables

如何防止 TINC 中繼 DHCP

  • December 21, 2014

我在幾個執行 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

引用自:https://serverfault.com/questions/578326