如何在DD-WRT中configurationiptables来阻止br1上的Skype?

在Linksys路由器上使用DD-WRT,我有一个私人networking设置为br0,一个访客networking设置为br1。

我只想在访客networking上阻止对Skype的访问,而阻止Skype访问的最简单的方法是阻止访问他们的validation服务器。

通过添加以下防火墙规则,我能够成功地阻止每个连接到路由器的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”,我可以只在guest(br1)networking上阻塞它,就像这样:

  iptables -I FORWARD -i br1 -s 111.221.74.0/24 -j DROP 

但是,这并不阻止任何人。 我究竟做错了什么? 提前致谢。

PS作为进一步的参考,这里是我现有的防火墙规则:

 #启用广域网端口的NAT,以纠正17000以上的错误
 iptables -t nat -I POSTROUTING -o`get_wanface` -j SNAT  - 到`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访问路由器的本地套接字
 iptables -I INPUT -i br1 -m state --state NEW -j DROP

 #Allow br1访问路由器上的DHCP
 iptables -I INPUT -i br1 -p udp --dport 67 -j ACCEPT

 #允许br1访问路由器上的DNS
 iptables -I INPUT -i br1 -p udp --dport 53 -j ACCEPT
 iptables -I INPUT -i br1 -p tcp --dport 53 -j ACCEPT

您的Skype规则阻止源自给定IP地址范围的stream量。 所以stream量进入你的广域网接口,而不是你的客户桥。 这就是为什么-i br1不起作用。

要解决这个问题,请将stream量拦截来宾桥进入的目的地。 例如:

 iptables -I FORWARD -i br1 -d 111.221.74.0/24 -j DROP 

阻止特定的目标IP地址不是一个长期的解决scheme,因为这些地址可以在任何时候改变。 您应该在dns级别阻止Skype的主机名* .skype.com。 您可以使用DNS筛选服务来执行此操作。 你可以强制你的客户使用你的过滤服务,通过捕获他们的DNS查询并重新路由它们。 这可以通过下面的iptables命令来完成。 请将guest_ip_rangereplace为客户端正在使用的CIDR格式的子网和掩码,并将dns_filtering_servicereplace为您的过滤服务的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