DNSサーバーが20 Mbpsをプッシュしているのはなぜですか?


22

私はEC2でDNSサーバーを実行しており、昨日、請求ダッシュボードをチェックして、今月1.86 TBの使用済みデータを見つけたときに、約20 Mbpsをプッシュしていました。それは私の小さなプロジェクトラボにとって大きな法案です。パフォーマンスの低下に気づいたことはなく、以前にトラフィックのしきい値を設定することもありませんでしたが、今では帯域幅料金が200ドル以上かかっています。

誰かが私のDNSサーバーを増幅攻撃の一部として使用したように見えますが、その方法に迷っています。

構成は次のとおりです。

// BBB.BBB.BBB.BBB = ns2.mydomain.com ip address

options {
        listen-on port 53 { any; };
//      listen-on-v6 port 53 { ::1; };
        directory "/var/named";
        dump-file "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-transfer { BBB.BBB.BBB.BBB; };
        allow-query-cache { BBB.BBB.BBB.BBB; };
        allow-query { any; };
        allow-recursion { none; };

        empty-zones-enable no;
        forwarders { 8.8.8.8; 8.8.4.4; };

        fetch-glue no;
        recursion no;

        dnssec-enable yes;
        dnssec-validation yes;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};

zone "mydomain.com" IN {
        type master;
        file "zones/mydomain.com";
        allow-transfer { BBB.BBB.BBB.BBB; localhost; };
};

この構成を考えると、ローカルでホストしていないゾーンのクエリに応答するべきではありませんか?このサーバーはいくつかのドメインのSOAですが、他のサーバーによる検索には使用されません(誰もがOpenDNSまたはGoogleに対して解決します)。ここでどのディレクティブが間違っているのですか、それとも忘れていますか?私のログ(63MB +)はこれでいっぱいです:

client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied

9
これは、あなたの質問に答えていませんが、アラート課金設定する必要がありdocs.aws.amazon.com/awsaccountbilling/latest/aboutv2/...を
ティム・

RFC 7873がサポートされていないすべてのクライアントに対して、TCPへのフォールバックを強制することは受け入れられますか?
カスペルド16

1
BINDのレート制限
ルイFリベイロ

@RuiFRibeiro権限のあるDNSサーバーのレート制限が役立つ場合があります。ただし、レート制限自体が弱点となり、DoS攻撃で悪用される可能性があります。攻撃者がレート制限付きの権限のあるサーバーでホストされているドメインのクエリで再帰をあふれさせると、その再帰の正当なユーザーは攻撃中のドメインのレコードを解決できなくなる可能性があります。この攻撃は、広く展開されていないNSEC / NSEC3積極的に使用することで軽減できます。
カスペルド16

回答:


19

サーバーが信頼できるクエリのみに応答するように設定されている場合でも、増幅攻撃に使用される可能性ANYがあります。ゾーンのルートに対するクエリは、ゾーンのルートが特にSPF / DKIM / DNSSECを使用した多数のレコード。

これはおそらくシステムで起こっtcpdumpていることです- 確認に使用します。増幅攻撃で信頼できる記録を使用している場合、最良の選択肢は、単に新しいIPに移動し、追跡しないこと、ゾーンルート記録を変更して効果の低い増幅ベクトルにすること、または実装することです応答率の制限(BINDがサポートしている場合)。


彼らは私のゾーンを照会していません...私のサーバーはまったく応答する代わりにこれらをドロップするべきではありませんか?
ラッセルアンソニー

4
@RussellAnthony表示されているログエントリについては、はい、ドロップしていると思いますが、攻撃トラフィックが成功した場合、ログエントリは作成されないため、ログに関しては帯域幅の使用は見えません。攻撃がまだ続いている場合(まだ新しいログエントリを取得していますか?)ANY失敗したクエリに加えて、成功したクエリがたくさんあるに違いありません。
シェーンマッデン

2
追加されrate-limit { responses-per-second 1; };、かなりのトラフィックがドロップされたようです。バインド自体がRRLであることに気付きませんでした。
ラッセルアンソニー

1
信頼できるレコードのクエリを送信していた場合、ドメイン名を知っている必要があります。その場合、正当なユーザーと同じ速さで新しいIPアドレスを見つけることができるため、新しいIPへの移行が役立つことはあまりありません。
カスペルド16

6
レート制限がDoS攻撃ベクトルにならないようにしてください。攻撃者が応答制限を使い果たした場合、正当なキャッシュ(OpenDNSやgoogleなど)でも名前の解決に失敗する可能性があります。
ジョナスシェーファー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.