Citrix ADC

DNS DDoS攻撃の軽減

DNSサーバーは,ネットワークの最も重要なコンポーネントの1つであり,攻撃から保護する必要があります。DNS攻撃の最も基本的な種類の1は,DDoS攻撃です。このタesc escプの攻撃は増加しており,破壊的である可能性があります。DDoS攻撃を軽減するには,次の操作を実行できます。

  • ネガティブレコ,ドをフラッシュします。
  • ネガティブレコ,ドの存続時間(ttl)を制限します。
  • DNSキャッシュによって消費されるメモリを制限することにより,Citrix ADCメモリを保持します。
  • dnsレコドをキャッシュに保持します。
  • dnsキャッシュバescパスを有効にします。

ネガティブ·レコ,ドのフラッシュ

DNS攻撃は,キャッシュに負のレコード(NXDOMAINおよびNODATA后)を埋め尽くします。その結果,正当な要求に対する応答はキャッシュされないため,新しい要求はDNS解決のためにバックエンドサーバーに送信されます。したがって,応答が遅れます。

Citrix ADCアプライアンスのDNSキャッシュからネガティブDNSレコードをフラッシュできるようになりました。

Cliを使用したネガティブ·キャッシュ·レコ,ドのフラッシュ

コマンドプロンプトで入力します。

flush dns proxyrecords type (dnsRecordType | negRecType) NXDOMAIN | NODATA

例:

flush dns proxyrecords -negRecType NODATA

GUIを使用したネガティブ·キャッシュ·レコ,ドのフラッシュ

  1. 設定> [トラフィック管理> [DNS> [レコド]に移動します。
  2. 詳細ペ电子邮箱ンで,[プロキシレコ,ドのフラッシュ]をクリックします。
  3. フラッシュ·タescプ“ボックスで,”ネガティブ·レコ,ドを選択します。
  4. ネガティブレコドタプ]ボックスで,[NXDOMAIN]または[NODATA后]のいずれかを選択します。

ランダムなサブドメesc escンおよびnxdomain攻撃に対する保護

ランダムなサブドメインおよびNXDOMAIN攻撃を防ぐために,DNSキャッシュメモリを制限し,負のレコードのTTL値を調整できます。

DNSキャッシュによって消費されるメモリの量を制限するには,最大キャッシュサイズ(MB単位)と,否定応答を格納するためのキャッシュサイズ(MB単位)を指定します。いずれかの制限に達すると,それ以上のエントリはキャッシュに追加されません。また,syslogメッセージが記録され,SNMPトラップが設定されている場合はSNMPトラップが生成されます。これらの制限が設定されていない場合,システムメモリを使い果たすまでキャッシュが続行されます。

負のレコ,ドのttl値が高いと,長期間価値のないレコ,ドが保存される可能性があります。TTL値が低いほど,バックエンドサ,バ,に要求が送信されます。

負のレコードのTTLは,TTL値またはSOAレコードの”有効期限”値のいずれか小さい方の値に設定されます。

  • この制限は,パケットエンジンごとに追加されます。たとえば,maxCacheSizeが5 MBに設定され,アプライアンスに3つのパケットエンジンがある場合,合計キャッシュサイズは15 MBになります。
  • 負のレコドのキャッシュサズは,最大キャッシュサズ以下である必要があります。
  • DNSキャッシュメモリの制限を,すでにキャッシュされているデータの量よりも低い値に減らすと,データが期限切れになるまで,キャッシュサイズは制限を超えたままになります。まり,ttl0を超えるか,フラッシュされます(刷新DNS代理记录コマンド,またはCitrix ADC GUIのプロキシレコ,ドのフラッシュ)。
  • snmpトラップを構成するには,”SNMPトラップを生成するようにNetScalerを構成するを参照してください。

Cliを使用してDNSキャッシュによって消費されるメモリを制限する

コマンドプロンプトで入力します。

设置dns参数-maxCacheSize -maxNegativeCacheSize

例:

设置dns参数- maxnegativecachesize 100 - maxnegativecachesize 25

GUIを使用してDNSキャッシュによって消費されるメモリを制限する

設定> [トラフィック管理> [DNS]に移動し,[DNS設定の変更]をクリックして,次のパラメ,タを設定します。

  • 最大キャッシュサ电子邮箱ズ(mb)
  • 負の最大キャッシュサ电子邮箱ズ(mb)

cliを使用して,ネガティブレコ,ドのttlを制限します

コマンドプロンプトで入力します。

设置dns参数-maxnegcacheTTL

例:

设置dns参数-maxnegcacheTTL 360

guiを使用して,ネガティブレコ,ドのttlを制限します

  1. 設定> [トラフィック管理> [DNS]に移動します。
  2. DNS設定の変更]をクリックし,[ネガティブキャッシュの最大ttl(秒)]パラメ,タを設定します。

DNSレコドをキャッシュに保持する

攻撃により、DNSキャッシュが重要でないエントリでいっぱいになる可能性がありますが,すでにキャッシュされている正当なレコードがフラッシュされて,新しいエントリ用のスペースが確保される可能性があります。攻撃が無効なデータをキャッシュに埋め込むのを防ぐために,正規のレコードがTTL値を超えた後でも保持できます。

cacheNoExpireパラメータを有効にした場合,キャッシュ内の現在のレコードは,パラメータを無効にするまで保持されます。

  • このオプションは,最大キャッシュサイズが指定されている場合にのみ使用できます(maxCacheSizeパラメータ)。
  • maxnegcacheTTLが設定されていて,キャッシュNoExpireが有効になっている場合,キャッシュNoExpireが優先されます。

Cliを使用してDNSレコドをキャッシュに保存する

コマンドプロンプトで入力します。

设置dns参数-cacheNoExpire (ENABLED | DISABLED)

例:

设置dns参数-cacheNoExpire ENABLED

GUIを使用してDNSレコ,ドをキャッシュに保存する

  1. 設定> [トラフィック管理> [DNS]に移動し,[DNS設定の変更]をクリックします。
  2. キャッシュの有効期限なし]を選択します。

DNSキャッシュバescパスを有効にする

DNS要求の可視性と制御を向上させるには,cacheHitBypassパラメーターを設定して,すべての要求をバックエンドサーバーに転送し,キャッシュを構築できるようにしますが,使用しないようにします。キャッシュが構築されたら,パラメータを無効にして,リクエストがキャッシュから送られるようにすることができます。

Cliを使用してDNSキャッシュバescパスを有効にする

コマンドプロンプトで入力します。

设置dns参数cachehitbypass (ENABLED | DISABLED)

例:

设置dns参数-cacheHitBypass ENABLED

图形界面を使用してDNSキャッシュバ远程服务器パスを有効にする

  1. 設定> [トラフィック管理> [DNS]に移動し,[DNS設定の変更]をクリックします。
  2. キャッシュヒットバ@ @パス]を選択します。

Slowloris攻撃を防ぐ

複数のパケットにまたがるdnsクエリは,Slowloris攻撃の潜在的な脅威を示します。Citrix ADCアプライアンスは、複数のパケットに分割されたDNSクエリをサイレントにドロップできます。

クエリが複数のパケットに分割されている場合は,splitPktQueryProcessingパラメ,タをallowまたはdropに設定できます。

注意:この設定は,dns tcpにのみ適用されます。

Cliを使用してDNSクエリを1のパケットに制限する

コマンドプロンプトで入力します。

设置dns参数splitpktqueryprocessing(允许| DROP)

例:

设置dns参数-splitPktQueryProcessing DROP

图形界面を使用してDNSクエリを1のパケットに制限する

  1. 設定> [トラフィック管理> [DNS]に移動し,[DNS設定の変更]をクリックします。
  2. 分割パケットクエリ処理]ボックスで,[允许]または[下降]を選択します。

キャッシュから提供されるDNS応答の統計情報を収集する

キャッシュから提供されるdns応答の統計を収集できます。次に,これらの統計を使用して,より多くのDNSトラフィックがドロップされるしきい値を作成し,帯域幅ベースのポリシーでこのしきい値を適用します。以前は,キャッシュから提供された要求の数が報告されなかったため,DNS負荷分散仮想サーバーの帯域幅の計算は正確ではありませんでした。

プロキシモードでは,要求バイト,応答バイト,受信した合計パケット数,および送信した合計パケット数の統計情報が継続的に更新されます。以前は,特にDNS負荷分散仮想サ,バ,では,これらの統計情報が常に更新されるとは限りません。

プロキシモ,ドでは,キャッシュから提供されるDNS応答の数も決定できるようになりました。これらの統計を収集するために,次のオプションがstat lb vserver コマンドに追加されました。

  • リクエスト-dnsまたはが受信したリクエストの総数dns_tcp仮想サバ。バックエンドに転送された要求と,キャッシュから応答された要求が含まれます。
  • Vserverヒット-バックエンドに転送されたリクエストの総数。キャッシュから提供されるリクエストの数は,リクエストの総数と仮想サーバーから提供されるリクエストの数の差です。
  • 応答—この仮想サバによって送信された応答の総数。たとえば、DNS磅仮想サーバーが5つのDNS要求を受信し,そのうちの3つをバックエンドに転送し,キャッシュから2つを提供した場合,これらの統計の対応する値は次のようになります。
    • Vserverヒット: 3
    • リクエスト: 5
    • 反応: 5
DNS DDoS攻撃の軽減