web-dev-qa-db-ja.com

DNSレート制限と1秒あたりの応答およびウィンドウの値をバインドする

私のDNSサーバーのnamed.confで

    rate-limit {
            responses-per-second 5;
            window 5;
    };

これは実際にはどういう意味ですか? DNSクライアントの問題を引き起こす可能性がありますか?これは構成がきつすぎるですか?

8
Red Cricket

1つのDNSクライアントが1秒間に取得できる同一の応答の数を制限します。 window 5オプションは、5 * 5応答のバーストを許可します。

「同一の応答」と「単一のDNSクライアント」は、ここでは少し明白ではない用語です。詳細については、こちらをお読みください: http://web.archive.org/web/20140209100744/http://ss.vix .su /〜vjs/rl-arm.html

一般的にレート制限するのは良いことです-いつかDOS攻撃の場合に役立つかもしれません。ほとんどの場合、デフォルトで問題ありません。

7
skarap

BIND 9.9の管理者リファレンスマニュアル をお読みください。

基本的に、responses-per-secondは1秒間に1つの宛先に送信できる同一の応答の数です。定義はトリッキーです。

単一の宛先は、必要に応じてipv4-prefix-lengthまたはipv6-prefix-lengthで構成されたサイズの、ネットワークアドレスのブロックです。したがって、ipv4-prefix-lengthが24で、192.0.2.1192.0.2.2の両方がDNSサーバーにクエリを実行している場合、これらはこのクォータを共有し、2つの間で非常に多くのクエリしか送信できません。

同一の応答は、特定の存在する名前または存在しない名前に対する特定のRRtypeに対するクエリへの応答です。次のクエリはすべて異なります。

IN A example.net.
IN A www.example.net.
IN AAAA example.net.
IN A nonexistent.domain.example.net.

ただし、次のクエリはすべて同じです(nonexistent.domain.example.net.などがその名前に準拠していると想定)。

IN A nonexistent.domain.example.net.
IN A nonexistent.domain2.example.net.
IN SOA other.nonexistent.domain.example.net.

windowは、状況をさらに複雑にします。これは、クォータをバンクできる秒数です。 windowresponses-per-secondを乗算すると、割り当て量がプラスになる最大値、またはより基本的にはバースト容量が得られます。

キャッチオールの例を挙げましょう:

あなたはexample.net.の非再帰的な権威ネームサーバーです。過去10秒間にDNSトラフィックがまったく見られず、問題の構成がグローバルに適用されることを想像してください。次のイベントが順次発生します。

  1. ホスト198.51.100.1はIN NS example.net.に対して100クエリを送信します。 25が許可され、残りの75は無視されます。
  2. ホスト198.51.100.1はIN A nonexistent.example.net.に対して100クエリを送信します。 25が許可され、残りの75は無視されます。
  3. ホスト198.51.100.1はIN MX nonexistent-domain.example.net.に対して1つのクエリを送信します。存在しないドメインの制限に達したため、無視されます。
  4. ホスト198.51.100.1はIN A example.net.に対して1つのクエリを送信します。許可されています。
  5. ホスト192.0.2.1〜192.0.2.50はそれぞれ、IN NS example.net.に対する単一のクエリを送信します。それらの25は返信を受け取り、残りの25は無視されます。 198.51.100.0/24の割り当てはこれらのホストには適用されませんが、192.0.2.0/24の割り当てを共有します。
  6. 1秒パス
  7. ホスト192.0.2.26〜192.0.2.50はクエリIN NS example.net.を繰り返します。割り当ては1秒あたり5つのクエリによってのみ補充されるため、そのうちの5つは応答を受け取り、残りの20つは無視されます。
11
Falcon Momot
iptables -A INPUT -p udp --dport 53 -m recent --set --name dnslimit
iptables -A INPUT -p udp --dport 53 -m recent --update --seconds 60 --hitcount 11 --name dnslimit -j DROP 

IPtablesも同様に機能します。攻撃が見つかった場合、サービスからトラフィックを完全に遮断します。

4
Tiffany Walker

私はレート制限するのは良い考えではないと思います、自分自身に尋ねてください:あなたもウェブサーバーの応答をレート制限しますか? DNS応答がWebサーバー応答ほど重要ではないと思うのはなぜですか?
そして、レート制限を行ったとしても、その5リクエスト/秒は非常に低く聞こえます。

0
Sandor Marton