web-dev-qa-db-ja.com

ホストを127.0.0.1よりも0.0.0.0にブロックする方が良いですか?

/etc/hostsファイルでブロックしたいホストがいくつかあります。そのために、DNSクエリが解決される偽のIPアドレスを定義する必要があります。

これまでに見たほとんどのチュートリアルでは、その解決策として127.0.0.1について言及しています。しかし、私はおそらくもっと良いアドレスや他のアドレスがあるのではないかと思っていました。

そのため、hostsファイルで0.0.0.0を使用することを考えていました。これは、127.0.0.1を使用して特定のホストをブロックするのと同じように機能すると思いますか?

11
comfreak

Windowsでは です 違い:127.0.0.1に送信されたパケットは、コンピュータで実行しているサーバー(そしてあなたは 知らないうちにサーバーを実行している可能性があります )を攻撃しますが、パケットを送信しようとすると0.0.0.0は直ちにエラーコード1214ERROR_INVALID_NETNAME )を返します。

TL; DR:0.0.0.0を使用

7
kinokijuf

それらは(通常は)同じであり、パケットは最終的に同じになります。要求と、ローカルインターフェース上のいくつかの時間とトラフィックがごくわずかなリソースを浪費することで、独自のホストを攻撃します。 (127.0.0.0/8の任意のアドレス、たとえば127.2.3.4でも同じです。)

ちなみに、ホストがブロックしたいサービスをホストが実行していない場合にのみうまく機能します(ホストにウェブサーバーがあるときにウェブサーバーをブロックするために使用するなど)。絶対に存在しないアドレス(たとえば、192.168.255.254)を使用すると、これを防ぐことができますが、接続のホストに到達できないために遅延が発生します。

ファイアウォールによるブロックは、通常はうまく機能します。 :-)

1
grin