Facebookをブロックする方法

Facebookをブロックする方法

自分のマシンで Facebook をブロックしてみたいと思います。

/etc/hostsを使い始めましたが、これではすべてのサブドメインを捕捉できないので、調べてみたところ、これ(そして多くの同様の解決策)は、この声明につながる。

/usr/bin/whois -h whois.radb.net '!gAS32934' | head -n -1 | tail -n -1 | /usr/bin/xargs --max-args=1 | /usr/bin/xargs -I {} --max-args=1 iptables -A OUTPUT -d {} -j REJECT

[編集] ここで私がやっていることは、まず

whois -h whois.radb.net '!gAS32934'

facebookに登録されたすべてのIP範囲を取得するには、この記事次に、結果の先頭と末尾にある不要な文字を削除するトリミングを行います。これにより、スペースで区切られた IP 範囲のリストが得られます。次に、xarg を使用してこれらの IP 範囲を分割し、各 IP 範囲に対して次のようなステートメントを作成します。

iptables -A OUTPUT -d {} -j REJECT

ここで、{}は実際の範囲に置き換えられます。ではREJECTなく を使用します。1 DROP. はるかに高速であるためです。2. 実際には接続を禁止したいので、これが適切であると思われます。[/edit]

今試すping facebook.com

From myname (xxx.xxx.xxx.xxx) icmp_seq=1 Destination Port Unreachable

これはまさに私が期待していたことです。しかし、ブラウザ (Firefox) を使用して facebook.com を開くと、サイトは開きますが、これは私が期待していたことではありません。ブラウザ キャッシュの問題を排除するために、以前に試したことのない別の Facebook ドメイン (facebook.de) を再読み込みして開いてみましたが、役に立ちませんでした。

DROPの代わりに をよく見かけるのでREJECT、それも試してみましたが、結果は変わりませんでした。

ここでの疑問は、対応する IP がブロックされているのに、なぜブラウザは Web ページを読み込むことができるのかということです。ping がブロックされているのに、ブラウザはどうやって通過できるのでしょうか。何かが足りないのは明らかですが、それが何なのかはわかりません。

答え1

ホスト IP を取得:

host -t a facebook.com

CIDRを探す

whois 173.252.120.68 | grep CIDR

サブネットをブロックする

iptables -A OUTPUT -p tcp -d 173.252.120.68/18 -j DROP

ドメインをブロックします:

iptables -A OUTPUT -p tcp -d www.fаcebook.com -j DROP

iptables -A OUTPUT -p tcp -d fаcebook.com -j DROP

関連情報