/etc/hosts を使用して Telegram をブロックする

/etc/hosts を使用して Telegram をブロックする

アクセスしたくないドメインをブロックするために /etc/hosts を使用していますが、ほとんどのドメインでは機能します。ただし、Telegram ウェブチャット (web.telegram.org) では機能していないようです。

私のファイルには次の行があります:

0.0.0.0 web.telegram.org
0.0.0.0 www.telegram.org
0.0.0.0 telegram.org

しかし、サイトにアクセスしてウェブ アプリの全機能を使用することはできます。何か間違っているのでしょうか?

答え1

/etc/hosts を編集しているので、ルート アクセス権があります。最善かつ最もエレガントな方法は、iptables を使用することです (つまり、ボックスから www.telegram.org に送信されるパケットをブロックします)。

コマンドラインで iptables コマンドを入力してテストできます。

# iptables -A OUTPUT -d www.telegram.org -j REJECT

次のようにルールを追加したことがわかります。

# iptables -S OUTPUT

-P OUTPUT ACCEPT
-A OUTPUT -d 149.154.167.120/32 -j REJECT --reject-with icmp-port-unreachable

そして、次のようにしてアクセスの試行をテストできます。

# wget  web.telegram.org                                                     
--2017-04-26 14:38:01--  http://web.telegram.org/
Resolving web.telegram.org... 149.154.167.120, 2001:67c:4e8:fa60:3:0:811:140
Connecting to web.telegram.org|149.154.167.120|:80... failed: Connection refused.
Connecting to web.telegram.org|2001:67c:4e8:fa60:3:0:811:140|:80... failed: Network is unreachable.

使用している OS が不明なので、新しいバージョンの iptables がインストールされていない可能性があり、-S スイッチが不足している可能性があります。-L を使用できます。

# iptables -L OUTPUT

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             149.154.167.120     reject-with icmp-port-unreachable 

追加したルールを削除する場合は、上記のコマンドで -A を -D に置き換えるだけです。

iptables-save > /etc/sysconfig/iptables注意: これらのルールを再起動後も永続的にしたい場合は、/etc/sysconfig/iptables に手動で追加する必要があります。

iptables は非常に複雑ですが、マニュアルページは非常に役立ちます。

(私のサーバーでは CentOS 6 と 7 を実行しています。firewalld は CentOS 7 の新しいデフォルトのフロントエンドですが、完全にサポートされている iptables-services をインストールして代わりに使用しています。)

答え2

ちなみに、ホストを 0.0.0.0 ではなく 127.0.0.1 に設定することになります...これが元々の問題かもしれません。

とにかく、もう 1 つのトリックは、問題のある IP 番号に特別なルートを追加することです。

 # route add -host 10.11.12.13 dev lo

再起動時にこれらのルールが再作成されるように、これらを rc.local (または同等のもの) に追加する必要があります。

私はこれを使用して、自分の会社のウェブサイトのパスワードクラッキングを試みる人々をブロックしました。

答え3

メッセージを取得するためにWebSocketを使用しています

追加

0.0.0.0 zws2.web.telegram.org

PS: Chrome DevToolsでWebSocketをデバッグする方法を確認してください

関連情報