重複の可能性:
iptablesはhttpsのウェブサイトをブロックします。
Zentyal Osをファイアウォールとして使用していますが、httpサイトをブロックするのと同じように機能しますが、https facebookサイトをブロックすることはできません。私の唯一の目標は、ポート443をブロックする必要があるように、https Facebookのウェブサイトもブロックする必要があることです。
したがって、iptablesと透明モードを使用して制御する機会はありますか?
ベストアンサー1
注:この記事は数時間前に書かれましたが、Sandyの妨害のために出て送信ボタンを押すのを忘れました。
したがって、これを達成するには2つの方法があり、どちらもさまざまなタスクを実行します。誰でもプロキシサイトを使用して制限をバイパスできるので、実際にFacebookをブロックすることは不可能です。また、SSHトンネルを介して無制限のサーバーに接続することもできます。それでも私たちはここにいます...
iptables
bash$ sudo iptables -A OUTPUT -p tcp -d 69.171.247.21 --dport 443 -j REJECT
bash$ sudo iptables -A OUTPUT -p tcp -d 66.220.149.88 --dport 443 -j REJECT
bash$ sudo iptables -A OUTPUT -p tcp -d 66.220.152.16 --dport 443 -j REJECT
bash$ sudo iptables -A OUTPUT -p tcp -d 69.171.234.21 --dport 443 -j REJECT
bash$ sudo iptables -A OUTPUT -p tcp -d 69.171.237.16 --dport 443 -j REJECT
欠点は、これがFacebookが解決のためにfacebook.comの新しいIPアドレスを追加するのを妨げないことです。継続的に実行し、最新の情報を得るためのスクリプトを作成できます。
#!/bin/bash
for i in $(host facebook.com | grep "has address " | cut -d' ' -f4)
do iptables -A OUTPUT -p tcp -d $i --dport 443 -j REJECT
done
注:エラーが発生する可能性があるため、少しの修正が必要です。
ドメインネームサーバー
このソリューションも完璧ではありません。 DNSは命名システムの基礎であるため、IPアドレスを直接入力すると勝ちます。ネットワークに内部ネームサーバーがある場合は、facebook.comのエントリを他の場所で確認するように設定できます。私はこれを上記のiptablesで使用します。
シートベルト-まったく推奨されていません
我々はさらに一歩進むことができます。ネットワークにFacebookをブロックするすべてのコンピュータがある場合は、ルートCA証明書を生成してすべてのコンピュータに公開鍵をインストールできます。ブローカーは、証明書を使用するすべてのWebサイトへのすべてのSSLトラフィックを削除し、Facebook接続を積極的に終了します。しかし、これは危険な考えであり、プライバシーに影響を与えます(特に企業環境では)。