2016-10-10 6 views
-1

Я использую маршрутизатор OpenWRT. Мне нужно заблокировать URL или несколько URL (не IP) для определенного времени. например, я хочу заблокировать facebook.com, чтобы клиенты этого маршрутизатора не могли получить доступ к веб-сайту. правила брандмауэра должны иметь возможность сделать это, но я не знаю, как это сделать.Блок facebook.com с использованием openwrt router

ответ

0

Вот один из способов блокировки по доменному имени, а не по IP-адресу.

Основная причина, по которой вам нужен такой сложный метод, заключается в том, что каждое доменное имя (например, facebook.com) может быть разрешено как другой IP-адрес в любой момент времени. Итак, нам нужно сохранить список разрешенных IP-адресов и добавить правила iptables на основе этого списка.

Во-первых, вы должны включить ведение журнала в Dnsmasq конфигурации:

uci set [email protected][0].logqueries=1 
uci commit dhcp 
/etc/init.d/dnsmasq restart 

Это даст вам записи журнала, как:

daemon.info dnsmasq[2066]: reply facebook.com is 31.13.72.36 

Теперь вы просто должны постоянно анализировать системный журнал и добавить соответствующие правила Iptables (обратите внимание, что вам, скорее всего, нужен более универсальный скрипт и ipset для повышения производительности):

logread -f | awk '/facebook.com is .*/{print $11}' | while read IP; do iptables -I OUTPUT -d $IP -j DROP; done 
+0

У меня есть еще одна возможность сделать это, а не напрямую обращаться к iptables. Мы можем использовать прокси. tinyproxy может быть хорошим выбором. – Raihanhbh