2016-10-10 71 views
-1

我使用的是OpenWRT路由器。我需要在特定時間阻止一個URL或多個URL(非IP)。例如,我想阻止facebook.com,以便該路由器的客戶端不能訪問該網站。防火牆規則應該有選擇,但我不知道該怎麼做。使用openwrt路由器阻止facebook.com

回答

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

相關問題