特定のIPアドレスまたは範囲を含むDNSクエリ応答をブロックするためにどのようなオプションがありますか?
DNS再バインド攻撃 を読んでいて、どうすればそれらをブロックできるのか疑問に思っています。
攻撃者が再バインド攻撃を試みると、ブラウザをだまして、悪意のあるコンテンツが127.0.0.1
または私のLAN内のアドレスから提供されたと信じ込ませようとします。これを行うには、DNSサーバーを構成して不正なアドレスを提供します(悪意のあるスクリプト内から照会された場合)。ローカルアドレスまたはLANアドレスになる転送DNSクエリへのすべての応答をブロックすることで、これを防ぎたいと思います。
ローカルネットワークにBind9ゾーンを使用し、フォワーダーを使用して外部アドレスを解決しています。
バインドボックスは、私のNATルーターの背後にあるDebianサーバーです。ファイアウォールに対してUFWを実行し、ポート53を介したTCP/UDPを許可します。
Bindを取得して、deny-answer-addresses
機能を使用して返されたアドレスをフィルタリングすることができます。これを使用するには、/etc/bind/named.conf.options
構成ファイルのoptions
セクションに以下を追加します。
deny-answer-addresses { 192.0.2.0/24; } except-from { "example.net"; };
これにより、ローカルでホストされているexample.net
ドメイン以外から、DNSクエリに応答して192.0.2.xアドレスが返されるのを防ぐことができます。
バインドマニュアルでは、次の方法でエイリアスをフィルタリングすることも推奨しています。
deny-answer-aliases { "example.net"; };
http://www.sput.nl/internet/dns-morons.html で見つけたフィルターの推奨セットは、私自身のテストに基づく最も一般的なDNS再バインド攻撃をカバーしているようです。
deny-answer-addresses {
// Unconfigured
0.0.0.0;
// RFC 1918
10.0.0.0/8;
172.16.0.0/12;
192.168.0.0/16;
// RFC 3927
169.254.0.0/16;
// IPv6
// :: to ::ffff:ffff:ffff.
// Includes ::, ::1, IPv4-Compatible IPv6 Addresses ::/96,
// and IPv4-mapped IPv6 addresses ::ffff:0:0/96
::/80;
// IPv6 Link local
fe80::/10;
// RFC 6052
64:ff9b::/96;
} except-from { "Your.Domain"; };
deny-answer-aliases { "Your.Domain"; };
127.0.0.0/8
はスパムブロックリストなどのサービスでよく使用されるため、除外することはおそらくお勧めできません。