ウェブサイトにwww.google.com
のようなドメイン名がないとします。 接続する唯一の方法は、216.58.212.68
のようなIPアドレスを使用することです。 。 /etc/hosts
にエントリを追加した場合 0.0.0.0 216.58.212.68
のように見えます 、そのWebサイトへの接続をブロックしますか? Webブラウザもアクセスできなくなりますか?
さらに、これは192.168.0.1
などのローカルアドレスにも適用されますか? ?
承認された回答:
いいえ。hostsファイルはルーティングに影響しません。名前の検索にのみ影響します。 216.58.212.68
以降 はIPアドレスであるため、システムはホストテーブルでそれを検索しません。
ホストファイルの詳細については、こちらをお読みください:http://manpages.ubuntu.com/manpages/trusty/man5/hosts.5.html
システムからIPアドレスへの接続をブロックする場合は、次のような2つの方法があります。
-
route
を使用したブラックホールトラフィック コマンド:route add 216.58.212.68 gw 127.0.0.1 lo
-
route
を使用してトラフィックを拒否する コマンド:route add -host 216.58.212.68 reject
-
ip
を使用したヌルルート コマンド:ip route add blackhole 216.58.212.68/32
これで、システムへのトラフィックを名前でブロックする場合は、その名前がループバックアドレスを指す偽のエントリをhostsファイルに追加できます。
127.0.0.1 badactor.evil.com
次に、システムがDNSの前にhostsファイルルックアップを使用するように設定されている限り、システムからそのホストに到達しようとするトラフィックはすべて偽造されます。特にDNSベースのルックアップは引き続き機能しますが、Pi HoleなどのDNSMASQサーバーを使用して、DNSルックアップもブロックできます。
route
のマニュアルページを必ずお読みください およびip
コマンドなので、必要に応じて、再起動後もこれらのコマンドを永続化する方法を理解できます。