Используя DD-WRT на маршрутизаторе Linksys, я настроил частную сеть как 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
Поэтому я подумал, что, просто добавив «-i br1» после команды FORWARD в каждой из вышеперечисленных строк, я смогу заблокировать ее только в гостевой (br1) сети, например:
iptables -I FORWARD -i br1 -s 111.221.74.0/24 -j DROP
Однако это никому не мешает. Что я делаю не так? Заранее спасибо.
P.S. В качестве дополнительной ссылки, вот мои существующие текущие правила брандмауэра:
#Enable NAT on the WAN port to correct a bug in builds over 17000 iptables -t nat -I POSTROUTING -o `get_wanface` -j SNAT --to `nvram get wan_ipaddr` #Allow br1 access to br0, the WAN, and any other subnets (required if SPI firewall is on) 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 #Restrict br1 from accessing br0 iptables -I FORWARD -i br1 -o br0 -m state --state NEW -j DROP #Restrict br1 from accessing the WAN subnet iptables -I FORWARD -i br1 -d `nvram get wan_ipaddr`/`nvram get wan_netmask` -m state --state NEW -j DROP #Restrict br1 from accessing the router's local sockets iptables -I INPUT -i br1 -m state --state NEW -j DROP #Allow br1 to access DHCP on the router iptables -I INPUT -i br1 -p udp --dport 67 -j ACCEPT #Allow br1 to access DNS on the router iptables -I INPUT -i br1 -p udp --dport 53 -j ACCEPT 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-адресов назначения не является долгосрочным решением, потому что они могут измениться в любое время. Вам следует заблокировать имя хоста skype * .skype.com на уровне DNS. Для этого вы можете использовать службу фильтрации 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