/etc/hosts を使用したテレグラムのブロック

/etc/hosts を使用したテレグラムのブロック

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

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

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

ただし、まだWebサイトにアクセスしてWebアプリのフル機能を使用できます。私は何が間違っていましたか?

ベストアンサー1

/etc/hostsを編集しているので、rootアクセス権があります。最良かつ最もエレガントな方法は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を実行しています。ファイアウォールはCentOS 7の新しいデフォルトのフロントエンドですが、iptables-servicesをインストールして使用しましたが、これは完全にサポートされています。)

おすすめ記事