Youtube.com、facebook.comなどのhttpsWebサイトをブロックしたい。
URLルールを使用してそれをブロックすることはできないことを私は知っています。 URLが暗号化されているため。
そこで、フィルタリングしたいドメインを含むすべてのDNSクエリをブロックしようとしました。そこで、次のルールを追加しました。
iptables -A OUTPUT -p udp --dport 53 -m string --domain yahoo.com -j DROP
しかし、youtubeは実行し続けます。しかし、しばらく非アクティブ(約15分)が経過すると、YouTubeはブロックされます。
説明はありますか?
YouTubeをすぐにブロックするにはどうすればよいですか?
あなたがしていることは効果がありますが、いくつかの問題があります:
ブラウザとオペレーティングシステムはDNSルックアップをキャッシュします。サイトが読み込まれるたびに、必ずしも完全なDNSルックアップが発生するわけではありません。
一部のブラウザは、ネットワークの問題があると考えているため、DNSがブロックされているように見える場合(独自のDNSサーバーに接続するなど)、別のことを試みる場合があります。 Google Chromeはこれを行う可能性があります。
Google Chromeおよび他のブラウザはまもなく「DNSoverHTTPS」を実装する可能性があります。つまり、ポート53に対して何をしても、DNSにはまったく使用されないため、効果はありません。
IPアドレスによるブロックは、YoutubeのIPアドレスが何らかの理由で変更されるまでしばらくの間機能します。
システムでその機能を管理上ブロックしていない限り、知識のあるユーザーはDNSサーバーを変更できます。
YouTubeをすぐにブロックするにはどうすればよいですか?
必要なことを行う「正しい」方法は、HTTPSトラフィックをフィルタリングできる「Man-In-The-Middle」透過HTTPSインターセプトプロキシを設定することです。次に、プロキシにyoutube.com
を含むURLをブロックするように指示します。
おそらくご存知のように、暗号化されているため、443でyoutube.com
を単純に検索することはできません。
ローカルマシンで遊んで、それがどのように機能するかを確認できるのはBurp Proxyです。これはテスト用であり、多くのユーザーのトラフィックを管理するためのものではありません。しかし、あなたは概念を学ぶことができます。
セキュリティ警告を回避するために、プロキシを使用するすべてのマシンにプロキシのSSL証明書をインストールする必要があります。
#nslookup youtube.com
Non-authoritative answer:
Name: youtube.com
Address: 172.217.16.46
Name: youtube.com
Address: 172.217.20.206
iptables -t filter -A FORWARD -p tcp -s 192.168.1.0/24 -d 172.217.16.46 --dport 80 -j DROP
iptables -t filter -A FORWARD -p tcp -s 192.168.1.0/24 -d 172.217.20.206 --dport 80 -j DROP
ソース: http://forum.oszone.net/post-692775-5.html
または
iptables -I FORWARD -s 10.0.0.0/24 -p tcp -m string --algo bm --string ".youtube.com" -j DROP
ソース: http://moshelpers.ru/?q=node/71
または最初の例では、ローカルネットワーク用のマシンゲートウェイがあり、そこでブロックするためのルールを作成します。たとえば、リソースyoutube.comは次のようになります。
iptables -A FORWARD -m string --string "youtube.com" --algo kmp --to 65535 -j DROP
Linuxマシンでアドレスをブロックするには、ルールを少しコードで編集します。
iptables -A INPUT -m string --string "youtube.com" --algo kmp --to 65535 -j DROP
ソース: http://sudouser.com/blokirovka-nezhelatelnyx-url-s-pomoshhyu-iptables.html
-p tcp
の場合のみ、タイムアウトなしでtcp接続が一度に切断されます。次のことを試すことができます。
-j REJECT --reject-with tcp-reset
ソース: http://forum.ixbt.com/topic.cgi?id=76:108
申し訳ありませんが、すべての情報源-ロシアのサイト:)
あなたのコマンドは:
iptables -A OUTPUT -p udp --dport 53 -m string --domain yahoo.com -j DROP
まず、UDPとポート53のみをブロックします
iptables -I INPUT 1 -s 172.217.0.0/16 -j DROP
iptables -I FORWARD 1 -s 172.217.0.0/16 -j DROP
iptables -I INPUT 2 -s 157.240.0.0/16 -j DROP
iptables -I FORWARD 2 -s 157.240.0.0/16 -j DROP
最初に、データが入る場所であるINPUTチェーンをブロックする必要があります。FORWARDチェーンは、ニーズにとって不要な場合があります。次に、YouTubeでpingを実行し、次にそのIPでwhoisを実行して、所有しているブロックを確認しました。
最後に、すべてのIPをブロックしたので、DNSルックアップを気にする必要はありません。
@ djsmiley2kのコメントで述べられているように、あなたは確かにDNSキャッシングに直面しています。これは、マシンが最近解決した場合、特定のドメインのDNSサーバーを再度要求しないことを意味します。
ドメインの即時ブロックを強制するには、DNSキャッシュフラッシュを強制する必要があります。 OSによって、コマンドは異なります。あなたは例を見つけることができます ここ
要約すると、iptablesルールを追加した直後に、次のいずれかを試すことができます。
$ service nscd reload
または
$ service dnsmasq restart
または
$ rndc restart