GNU/Linux >> Linux の 問題 >  >> Linux

次の方法で /etc/hosts ファイルを Web サイト ブロッカーとして使用するのは安全ではありませんか?

短い答え

安全ですか /etc/hosts を使用するには 「null」アドレスをブロックする Web サイトとしてファイルしますか?

答えは いいえ です。

リクエストが実際に「null」にならない以外の理由がない場合。それらはまだアクティブなリクエストです。そして、OP が示すように、要求は正当なインターネット ホストに対するものであるため、要求を localhost にリダイレクトするこの種のショートカット メソッド 開発環境でのネットワーク コードのテストを妨げる可能性があります。

おそらく、特定のインターネット ホストとの間のトラフィックをブロックするより良い方法は、iptables を利用することです。 これは Linux カーネルのファイアウォールへのインターフェースです。 iptables は、ほとんどの GNU/Linux システムのデフォルトのネットワーク ルール テーブルです。一部のディストリビューションでは ufw を使用しています iptables のフロントエンドとして .

iptables を使用する場合 、これは DROP する簡単なスクリプトです ~/blocking.txt というプレーン テキスト ファイルに 1 行に 1 つのアドレスまたはホスト名が含まれる IP アドレスまたはホスト名のリストのすべての着信および発信パケット

## Block every IP address in ~/blocking.txt
## DROP incoming packets to avoid information leak about your hosts firewall
## (HT to Conor Mancone) REJECT outgoing packets to avoid browser wait
for i in $(cat ~/blocking.txt); do
    echo "Blocking all traffic to and from $i"    
    /sbin/iptables -I INPUT -s $i -j DROP
    /sbin/iptables -I OUTPUT -d $i -j REJECT
done

サンプル ~/blocking.txt

websiteiwanttoblock.com
anotherone.com
ip.add.of.net/mask

localhost を配置しないでください このファイル内の IP アドレス。

長い答え

localhost へのインターネット ホストの再割り当て中 /etc/hosts で file はブロックするための一般的なショートカット テクニックです。 不要なインターネット ホストを保護するため、この方法には深刻なセキュリティ上の欠点があります。

着信リクエスト

特定のユーザー リクエストによって意図的に開始されたものではない着信リクエスト。最も一般的な例は、Web ページ上の広告です。入ってくるパケットをたどってみましょう...

まず、wireshark を起動します .次に、最大のインターネット広告会社を /etc/hosts に配置します。 次の行を含むファイル:

127.0.0.1   google.com

次に、ブラウザですべての広告ブロッカーを無効にし、youtube に移動します 任意のビデオをランダムに再生します。

Google の IP アドレス空間を広く含むパケットをフィルタリングすると:

ip.addr==172.217.0.0/16

Google からまだパケットを受信して​​います。

これはどういう意味ですか?

これは、悪意のあるサーバーがマルウェアを挿入し、ローカルホストにまだ到着して送信されているパケットを介してコンピューティング プラットフォームを攻撃できる可能性があることを意味します。 /etc/hosts の使用 ファイアウォール ルールを介してパケットをドロップまたは拒否するのではなく、不十分なセキュリティ対策です。 ブロックしません 悪意のある可能性のあるホストからの着信パケットも、トラブルシューティングのための効果的なフィードバックも提供しません。

送信リクエスト

localhost に送信される発信リクエスト ファイアウォールルールによって拒否またはドロップされるのではなく、カーネルによって引き続き処理されます。 /etc/hosts のときに発生する望ましくないアクションがいくつかあります。 ファイアウォールではなく使用されます:

  • 送信パケットが localhost に到達すると、余分な処理が発生します。たとえば、ウェブサーバーがホスト上で実行されている場合、localhost に送信されたパケットはウェブサーバーによって処理される可能性があります。

  • /etc/hosts の場合、発信リクエストからのフィードバックが混乱する可能性があります 特定のドメインが取り込まれています。

iptables は多くのルールを処理できます

一部によると:

ServerFault:iptables がサポートできるルールの数

32 ビット マシンで考えられる理論上の制限は、3,800 万ルールです。ただし、参照された投稿に記載されているように、 iptables ルール リストが拡張され、必要なカーネル メモリも拡張されます。


<ブロック引用>

[...] シンプルな OS レベルの Web サイト ブロック手法を探しているときに、Linux のホスト ファイルを使用する解決策にたどり着きました [...]

明確にするために、/etc/hosts ホスト名を IP アドレスにマップするだけです。 127.0.0.1 のエントリ サーバーへのアクセスをブロックするのではなく、コンピュータがその特定の名前をローカルで 127.0.0.1 に解決するようにするだけです。 .あなたとサーバーは制限なしでパケットを交換している可能性があります.

<ブロック引用>

127.0.0.1 をよく使う場合 Web 開発の目的で、これは危険ですか?少なくとも、私が現在取り組んでいる Web 開発プロジェクトを台無しにする可能性はありますか?

いいえ、127.0.0.1 に解決します あなたをさらなる危険にさらすことはありません。これは、Web サイトの名前が 127.0.0.1 を含む任意の IP に解決される可能性があるためです。 (DNS サーバーがそれをブロックしない限り)。 evilpage.example の場合 127.0.0.1 に解決したかった 、それぞれの DNS A を指定するだけで済みます /etc/hosts に頼る必要はありません。 . (参照:DNS レコードが 127.0.0.1 を指していても安全ですか?)

127.0.0.1 で何かを実行していることに注意してください DNS リバインディング攻撃に対して脆弱になる可能性があります。


ウェブサーバーがローカル マシンのポート 80 または 443 (127.0.0.1) で実行されている場合を除きます。 )、それはあなたの Web プロジェクトに影響を与えるべきではありません。もしそうなら、それは迷惑かもしれません。 http://example.com/api/ にリクエストを送信した場合 、その後 http://127.0.0.1/api/ にリクエストを送信することになります . /api/ というリソースがある場合 、その後、リクエストを受け取り、アプリに干渉することになります.しかし、@Arminusが言及したことを強調したい最大のポイントは、 /etc/hosts/ ファイルは、IP アドレスをホスト名にマッピングするためのものです。特定のホストをブロックする場合は、UFW などのファイアウォールをインストールするか、デフォルトの Linux ファイアウォールである iptables を使用することをお勧めします。開始に役立つリンクを次に示します:

UFW:https://www.linux.com/learn/introduction-uncomplicited-firewall-ufw

iptables:https://www.howtogeek.com/177621/the-beginners-guide-to-iptables-the-linux-firewall/


Linux
  1. /dev/shm/ と /tmp/ はいつ使用する必要がありますか?

  2. Linux の /etc/init.d と /etc/rcX.d ディレクトリの間の接続は何ですか?

  3. /etc/hosts のサイズ制限は?

  1. Linux / etc/fstabファイルの紹介

  2. Linux/OSX の /etc/hosts/ ファイルで、ワイルドカード サブドメインを使用するにはどうすればよいですか?

  3. /etc/issues をセットアップして eth0 の IP アドレスを表示する方法

  1. / etc / hostsを補完するユーザー固有のHostsファイルを作成しますか?

  2. /etc/sysconfig ディレクトリについて

  3. Linux の /etc/hosts ファイルについて