Iptables
如何在 DD-WRT 中配置 iptables 以僅在 br1 上阻止 Skype?
在 Linksys 路由器上使用 DD-WRT,我將專用網路設置為 br0,將訪客網路設置為 br1。
我只想在訪客網路上阻止對 Skype 的訪問,而我見過的阻止 Skype 的最簡單方法是阻止對其身份驗證伺服器的訪問。
通過添加以下防火牆規則,我能夠成功阻止每個連接到路由器的 Skype 訪問:
iptables -I FORWARD -s 111.221.74.0/24 -j DROP iptables -I FORWARD -s 111.221.77.0/24 -j DROP iptables -I FORWARD -s 157.55.130.0/24 -j DROP iptables -I FORWARD -s 157.55.235.0/24 -j DROP iptables -I FORWARD -s 157.55.56.0/24 -j DROP iptables -I FORWARD -s 157.56.52.0/24 -j DROP iptables -I FORWARD -s 194.165.188.0/24 -j DROP iptables -I FORWARD -s 195.46.253.0/24 -j DROP iptables -I FORWARD -s 213.199.179.0/24 -j DROP iptables -I FORWARD -s 63.245.217.0/24 -j DROP iptables -I FORWARD -s 64.4.23.0/24 -j DROP iptables -I FORWARD -s 65.55.223.0/24 -j DROP
所以我認為只需在上述每一行的 FORWARD 命令後添加“-i br1”,我就可以只在來賓 (br1) 網路上阻止它,如下所示:
iptables -I FORWARD -i br1 -s 111.221.74.0/24 -j DROP
但是,這不會阻止任何人。我究竟做錯了什麼?提前致謝。
PS 作為進一步的參考,這裡是我預先存在的目前防火牆規則:
#在 WAN 埠上啟用 NAT 以糾正超過 17000 版本中的錯誤 iptables -t nat -I POSTROUTING -o `get_wanface` -j SNAT --to `nvram get wan_ipaddr` #允許 br1 訪問 br0、WAN 和任何其他子網(如果 SPI 防火牆打開則需要) iptables -I FORWARD -i br1 -m state --state NEW -j ACCEPT iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu #限制br1訪問br0 iptables -I FORWARD -i br1 -o br0 -m state --state NEW -j DROP #限制br1訪問WAN子網 iptables -I FORWARD -i br1 -d `nvram get wan_ipaddr`/`nvram get wan_netmask` -m state --state NEW -j DROP #限制br1訪問路由器的本地socket iptables -I INPUT -i br1 -m state --state NEW -j DROP #允許br1訪問路由器上的DHCP iptables -I 輸入 -i br1 -p udp --dport 67 -j 接受 #允許br1訪問路由器上的DNS iptables -I 輸入 -i br1 -p udp --dport 53 -j 接受 iptables -I INPUT -i br1 -p tcp --dport 53 -j ACCEPT
您的 Skype 規則正在阻止來自給定 IP 地址範圍的流量。因此,流量來自您的 WAN 介面,而不是您的訪客網橋 br1。這就是為什麼
-i br1
不起作用。要解決此問題,請改為阻止從訪客橋進入的那些目的地的流量。例如:
iptables -I FORWARD -i br1 -d 111.221.74.0/24 -j DROP
阻止特定的目標 IP 地址不是一個長期的解決方案,因為這些地址隨時可能發生變化。您應該在 dns 級別阻止 Skype 的主機名 *.skype.com。您可以使用 dns 過濾服務來執行此操作。您可以通過擷取他們的 dns 查詢並重新路由它們來強制您的客戶使用您的過濾服務。這可以通過下面的 iptables 命令來完成。請將 guest_ip_range 替換為客人使用的 CIDR 格式的子網和遮罩,並將 dns_filtering_service 替換為過濾服務的 dns 伺服器。
iptables --table nat --append PREROUTING --in-interface br0 --source guest_ip_range -protocol tcp --dport 53 --jump DNAT --to dns_filtering_service iptables --table nat --append PREROUTING --in-interface br0 --source guest_ip_range -protocol udp --dport 53 --jump DNAT --to dns_filtering_service