私はアクセスしたくないドメインをブロックするために/ 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をインストールして使用しましたが、これは完全にサポートされています。)