Cisco ASA 5500 シリーズ コンフィギュレーション ガイド(CLI8.2 を使用)
接続の制限値とタイムアウトの設定
接続の制限値とタイムアウトの設定
発行日;2012/02/01 | 英語版ドキュメント(2012/01/05 版) | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 21MB) | フィードバック

目次

接続の制限値とタイムアウトの設定

接続の制限に関する情報

TCP 代行受信

クライアントレス SSL 互換での管理パケットの TCP 代行受信のディセーブル化

デッド接続検出(DCD)

TCP シーケンスのランダム化

接続の制限値とタイムアウトの設定

接続の制限値とタイムアウトの設定例

接続の制限値とタイムアウトの設定

この章では、TCP と UDP の最大接続数、最大初期接続数、クライアントあたりの最大接続数、接続タイムアウト、デッド接続検出を設定する方法、および TCP シーケンスのランダム化をディセーブルにする方法について説明します。適応型セキュリティ アプライアンスを通過する接続、または適応型セキュリティ アプライアンスへの管理接続に対して制限値を設定できます。ここでは、次の項目を取り上げます。

「接続の制限に関する情報」

「接続の制限値とタイムアウトの設定」

「接続の制限値とタイムアウトの設定例」


) 最大接続数、最大初期接続数、および TCP シーケンスのランダム化は、NAT コンフィギュレーションでも設定できます。同じトラフィックに対して両方の方法でこれらの設定値を設定した場合、適応型セキュリティ アプライアンスは小さい方の制限値を使用します。TCP シーケンスのランダム化がいずれかの方法でディセーブルにされている場合、適応型セキュリティ アプライアンスは TCP シーケンスのランダム化をディセーブルにします。


接続の制限に関する情報

この項では、接続を制限する目的について説明します。次の項目を取り上げます。

「TCP 代行受信」

「クライアントレス SSL 互換での管理パケットの TCP 代行受信のディセーブル化」

「デッド接続検出(DCD)」

「TCP シーケンスのランダム化」

TCP 代行受信

初期接続の数を制限することで、DoS 攻撃(サービス拒絶攻撃)から保護されます。適応型セキュリティ アプライアンスでは、クライアントあたりの制限値と初期接続の制限を利用して TCP 代行受信を開始します。代行受信によって、TCP SYN パケットを使用してインターフェイスをフラッディングする DoS 攻撃から内部システムを保護します。初期接続とは、送信元と宛先の間で必要になるハンドシェイクを完了していない接続要求のことです。TCP 代行受信では、SYN クッキー アルゴリズムを使用して TCP SYN フラッディング攻撃を防ぎます。SYN フラッディング攻撃は、通常はスプーフィングされた IP アドレスから送信されてくる一連の SYN パケットで構成されています。SYN パケットのフラッディングが定常的に生じると、SYN キューが一杯になる状況が続き、接続要求に対してサービスを提供できなくなります。接続の初期接続しきい値を超えると、適応型セキュリティ アプライアンスはサーバのプロキシとして動作し、クライアント SYN 要求に対する SYN-ACK 応答を生成します。適応型セキュリティ アプライアンスがクライアントから ACK を受信すると、クライアントを認証し、サーバへの接続を許可できます。

TCP 代行受信に関する統計情報(攻撃を受けた上位 10 サーバなど)を表示する方法については、「脅威検出の設定」を参照してください。

クライアントレス SSL 互換での管理パケットの TCP 代行受信のディセーブル化

デフォルトでは、TCP 管理接続では TCP 代行受信が常にイネーブルになっています。TCP 代行受信をイネーブルにすると、3 ウェイ TCP 接続確立のハンドシェイク パケットが代行受信されるため、適応型セキュリティ アプライアンスではクライアントレス SSL のパケットを処理できなくなります。クライアントレス SSL では、クライアントレス SSL 接続で selective-ack や他の TCP オプションを提供するために、3 ウェイ ハンドシェイク パケットを処理する機能が必要になります。管理トラフィックの TCP 代行受信をディセーブルにするには、初期接続制限を設定します。初期接続制限に達した後にだけ TCP 代行受信をイネーブルにできます。

デッド接続検出(DCD)

DCD では、デッド接続を検出して、トラフィックをまだ処理できる接続を期限切れにすることなく、そのデッド接続を期限切れにすることができます。DCD は、アイドル状態でも有効な接続を維持する場合に設定します。

DCD をイネーブルにすると、アイドル タイムアウト動作が変化します。アイドル タイムアウトになると、DCD プローブが 2 つのエンドホストそれぞれに送信され、接続の有効性が判断されます。設定された間隔でプローブが送信された後にエンドホストが応答を返さないと、その接続は解放され、リセット値が設定されていれば各エンドホストに送信されます。両方のエンドホストが応答して接続の有効性が確認されると、アクティビティ タイムアウトは現在時刻に更新され、それに応じてアイドル タイムアウトが再スケジュールされます。

DCD をイネーブルにすると、TCP ノーマライザでのアイドルタイムアウト処理の動作が変更されます。DCD プローブにより、 show conn コマンドで表示される接続でのアイドル タイムアウトがリセットされます。タイムアウト コマンドで設定したタイムアウト値を超過していても、DCD プローブのために存続している接続を判別するため、 show service-policy コマンドには、DCD からのアクティビティ数を示すカウンタが含まれています。

TCP シーケンスのランダム化

各 TCP 接続には、クライアントで生成される ISN とサーバで生成される ISN の 2 つの ISN があります。適応型セキュリティ アプライアンスは、着信と発信の両方向で通過する TCP SNY の ISN をランダム化します。

保護されたホストの ISN をランダム化することにより、攻撃者が新しい接続で次の ISN を予測できないようにして、新規セッションが乗っ取られるのを防ぎます。

TCP 初期シーケンス番号のランダム化は、必要に応じてディセーブルにできます。次に例を示します。

別の直列接続されたファイアウォールでも初期シーケンス番号がランダム化され、トラフィックに影響することはないものの、両方のファイアウォールでこの動作を実行する必要がない場合。

適応型セキュリティ アプライアンスで eBGP マルチホップを使用しており、eBGP ピアで MD5 を使用している場合。ランダム化により、MD5 チェックサムは分解されます。

適応型セキュリティ アプライアンスで接続のシーケンスをランダム化しないようにする必要がある WAAS デバイスを使用する場合。

接続の制限値とタイムアウトの設定

接続の制限値とタイムアウトを設定するには、次の手順を実行します。


ステップ 1 トラフィックを特定するには、 class-map コマンドを使用してクラスマップを追加します。詳細については、「通過トラフィック用のレイヤ 3/4 クラスマップの作成」または 「管理トラフィック用のレイヤ 3/4 クラスマップの作成」を参照してください。

たとえば、次のコマンドを使用してすべてのトラフィックを照合できます。

hostname(config)# class-map CONNS
hostname(config-cmap)# match any
 

特定のトラフィックを照合するため、アクセスリストと照合できます。

hostname(config)# access list CONNS extended permit ip any 10.1.1.1 255.255.255.255
hostname(config)# class-map CONNS
hostname(config-cmap)# match access-list CONNS
 

ステップ 2 クラスマップ トラフィックで実行するアクションを設定するポリシーマップを追加または編集するには、次のコマンドを入力します。

hostname(config)# policy-map name
hostname(config-pmap)# class class_map_name
hostname(config-pmap-c)#
 

class_map_nameステップ 1 で指定したクラスマップです。

次に例を示します。

hostname(config)# policy-map CONNS
hostname(config-pmap)# class CONNS
hostname(config-pmap-c)#
 

ステップ 3 最大接続制限値、または TCP シーケンスのランダム化をイネーブルにするかどうかを設定するには、次のコマンドを入力します。

hostname(config-pmap-c)# set connection {[conn-max n] [embryonic-conn-max n] [per-client-embryonic-max n] [per-client-max n] [random-sequence-number {enable | disable}]}
 

conn-max n 引数には、許可される同時 TCP 接続や UDP 接続の最大数を 0 ~ 65535 の範囲で設定します。デフォルトは 0 で、この場合は接続数が制限されません。

embryonic-conn-max n 引数には、許可される同時初期接続の最大数を 0 ~ 65535 の範囲で設定します。デフォルトは 0 で、この場合は接続数が制限されません。

per-client-embryonic-max n 引数には、クライアントごとに許可される同時初期接続の最大数を 0 ~ 65535 の範囲で設定します。デフォルトは 0 で、この場合は接続数が制限されません。

per-client-max n 引数には、クライアントごとに許可される同時接続の最大数を 0 ~ 65535 の範囲で設定します。デフォルトは 0 で、この場合は接続数が制限されません。

random-sequence-number { enable | disable } キーワードで、TCP シーケンス番号のランダム化をイネーブルまたはディセーブルにします。詳細については、「TCP シーケンスのランダム化」を参照してください。

このコマンドを 1 行ですべて入力することも(順序は任意)、各アトリビュートを別々のコマンドとして入力することもできます。適応型セキュリティ アプライアンスは、コマンドを実行コンフィギュレーション内で 1 行に結合します。


) 管理トラフィックの場合は、conn-max キーワードと embryonic-conn-max キーワードだけを設定できます。


ステップ 4 接続タイムアウトを設定するには、次のコマンドを入力します。

hostname(config-pmap-c)# set connection timeout {[embryonic hh:mm:ss] {tcp hh:mm:ss [reset]] [half-closed hh:mm:ss] [dcd hh:mm:ss [max_retries]]}
 

embryonic hh : mm : ss keyword キーワードには、TCP 初期(ハーフオープン)接続が閉じられるまでのタイムアウトを 0:0:5 から 1193:00:00 の間で設定します。デフォルト値は 0:0:30 です。この値を 0 に設置することもでき、この場合は接続がタイムアウトしないことを意味します。

tcp hh : mm : ss キーワードには、アイドル タイムアウトを 0:5:0 から 1193:00:00 の間で設定します。デフォルト値は 1:0:0 です。この値を 0 に設置することもでき、この場合は接続がタイムアウトしないことを意味します。 reset キーワードを指定すると、接続のタイムアウト時にリセット パケットが TCP エンドポイントに送信されます。適応型セキュリティ アプライアンスは、(同じ送信元ポートと宛先ポートで)タイムアウト フローとして別のパケットを送信するホストに対して応答する場合に限りリセット パケットを送信します。ホストは、リセット パケットを受信すると、内部の接続テーブルからその接続を削除します。その後ホスト アプリケーションは、SYN パケットを使用して新しい接続の確立を試行できます。

half-closed hh : mm : ss アイドル タイムアウトを 0:5:0 から 1193:0:0 の範囲で設定します。デフォルト値は 0:10:0 です。ハーフクローズの接続は DCD の影響を受けません。また、適応型セキュリティ アプライアンスは、ハーフクローズ接続を切断するときにリセット パケットを送信しません。

dcd キーワードは、DCD をイネーブルにします。DCD では、デッド接続を検出して、トラフィックをまだ処理できる接続を期限切れにすることなく、そのデッド接続を期限切れにすることができます。DCD は、アイドル状態でも有効な接続を維持する場合に設定します。TCP 接続がタイムアウトすると、適応型セキュリティ アプライアンスは、エンドホストに DCD プローブを送信して接続の有効性を判断します。最大リトライ回数を超えてもエンドホストの一方が応答しない場合、適応型セキュリティ アプライアンスはその接続を解放します。両方のエンドホストが応答して接続の有効性が確認されると、適応型セキュリティ アプライアンスはアクティビティ タイムアウトを現在時刻に更新し、それに応じてアイドル タイムアウトを再スケジュールします。retry-interval には、DCD プローブに応答がない場合に別のプローブを送信するまで待機する時間を、 hh : mm : ss 形式で、0:0:1 から 24:0:0 の範囲で設定します。デフォルト値は 0:0:15 です。max-retries には、接続が無活動状態であると宣言するまでに失敗する DCD の連続リトライ回数を設定します。最小値は 1、最大値は 255 です。デフォルトは 5 です。

このコマンドを 1 行ですべて入力することも(順序は任意)、各アトリビュートを別々のコマンドとして入力することもできます。コマンドは実行コンフィギュレーションで 1 行に結合されます。


) このコマンドは、管理トラフィックでは使用できません。


ステップ 5 1 つ以上のインターフェイスでポリシーマップをアクティブにするには、次のコマンドを入力します。

hostname(config)# service-policy policymap_name {global | interface interface_name}
 

policy_map_name は、ステップ 2 で設定したポリシーマップです。すべてのインターフェイスでトラフィックにポリシーマップを適用するには、 global キーワードを使用します。特定のインターフェイスでトラフィックにポリシーマップを適用するには、 interface interface_name オプションを使用します。 interface_name は、 nameif コマンドによってインターフェイスに割り当てた名前です。

グローバル ポリシーは 1 つしか適用できません。インターフェイスのグローバル ポリシーは、そのインターフェイスにサービス ポリシーを適用することで上書きできます。各インターフェイスには、ポリシーマップを 1 つだけ適用できます。


 

接続の制限値とタイムアウトの設定例

次の例では、すべてのトラフィックに対して接続の制限値とタイムアウトを設定しています。

hostname(config)# class-map CONNS
hostname(config-cmap)# match any
hostname(config-cmap)# policy-map CONNS
hostname(config-pmap)# class CONNS
hostname(config-pmap-c)# set connection conn-max 1000 embryonic-conn-max 3000
hostname(config-pmap-c)# set connection timeout tcp 2:0:0 embryonic 0:40:0 half-closed 0:20:0 dcd
hostname(config-pmap-c)# service-policy CONNS interface outside
 

複数のパラメータを使用して set connection コマンドを入力するか、各パラメータを別々のコマンドとして入力できます。適応型セキュリティ アプライアンスは、コマンドを実行コンフィギュレーション内で 1 行に結合します。たとえば、クラス コンフィギュレーション モードで次の 2 つのコマンドを入力するとします。

hostname(config-pmap-c)# set connection conn-max 600
hostname(config-pmap-c)# set connection embryonic-conn-max 50
 

show running-config policy-map コマンドの出力には、2 つのコマンドの結果が単一の結合コマンドとして表示されます。

set connection conn-max 600 embryonic-conn-max 50