2016-10-10 8 views
-1

私はOpenWRTルータを使用しています。特定の時間、URLまたは複数のURL(IPではない)をブロックする必要があります。たとえば、このルータのクライアントがウェブサイトにアクセスできないようにfacebook.comをブロックしたいとします。ファイアウォールのルールにはオプションがあるはずですが、その方法はわかりません。ブロックfacebook.com openwrtルータを使用しています

答えて

0

ここでは、IPアドレスではなくドメイン名でブロックする方法の1つです。

このような複雑な方法が必要な主な理由は、各ドメイン名(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 

は今、あなただけの絶えずのsyslogを解析し、対応する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

関連する問題