iptablesを使って迅速に失敗する方法は?

iptablesを使って迅速に失敗する方法は?

からインスピレーションを受けるレンズ豆私は自分で1つを設定しました。

できること:

  1. Pi-holeは、私のローカルネットワーク上のRaspberry Pi仮想アダプタにプライベートIPとして設定されています。
  2. 既知のスパム/フィッシング/広告サーバー名のリストを取得します。
  3. dnsmasqをローカルDNSとして使用して、これらのサーバー名をローカルIP(別名Pi-hole)として識別します。
  4. Pi-holeでは、lighttpdはフィッシングサイトや広告の代わりに空のHTMLページとピクセル画像を提供します。
  5. 私のデスクトップ/スマートフォン/タブレットのすべてのブラウザが不要なコンテンツを削除します。

このアプローチの利点は、同じ(元の)ターゲットIPのVirtualHostsなどのエントリに影響を与えないことです。名前だけでホストをブロックします。欠点は自宅でしか使えないということです。

この設定は約160万のサイトの99%で動作しますが、一部のサイトはhttpsまたは他のポートを使用して8080コンテンツを提供します。空のコンテンツはポートでのみ提供されるため、80これらのサイトは次のようになるまで永遠に待つ必要があります。 Firefoxはあきらめました。

常に機能するようにするには、リクエストデバイスへのコンテンツの配信を停止し、lighttpdを削除し、いくつかの簡単なiptablesルールを追加して、Pi-holeへの接続が迅速に失敗するようにしたいと思います。

要求する当事者ができるだけ早く放棄するようにするにはどうすればよいですか? (つまり、この特定のホストのルールは何であるべきかを意味します。)

良い方法の提案がありますか?

答え1

DROPこれをチェーンiptablesの基本操作に設定したようですINPUT。に変更するとREJECTすぐに失敗します。

答え2

別の成功を収めなかったまま、あちこち回りますが、iptablesまったく異なるアプローチをとりました。

スパム/フィッシング/広告サーバー名に対するすべてのDNSクエリは0.0.0.0で応答します。例:ブラウザはそれをルーティングできないことを検出し、すぐに失敗します。

関連情報