在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