Cisco ASA シリーズファイアウォール ASDM コンフィギュレーションガイドソフトウェアバージョン 7.3
データベースおよびディレクトリ プロトコルのインスペクション
データベースおよびディレクトリ プロトコルのインスペクション
発行日;2015/06/03 | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 12MB) | フィードバック

目次

データベースおよびディレクトリ プロトコルのインスペクション

ILS インスペクション

SQL*Net インスペクション

Sun RPC インスペクション

Sun RPC インスペクション

許可された Sun RPC サービスの識別

データベースおよびディレクトリ プロトコルのインスペクション

ここでは、データベースおよびディレクトリ プロトコルのアプリケーション インスペクションについて説明します。特定のプロトコルにインスペクションを使用する必要がある理由、およびインスペクション適用の方法全体については、「アプリケーション レイヤ プロトコル インスペクションの準備」を参照してください。

「ILS インスペクション」

「SQL*Net インスペクション」

「Sun RPC インスペクション」

ILS インスペクション

ILS インスペクション エンジンは、LDAP を使用してディレクトリ情報を ILS サーバと交換する Microsoft NetMeeting、SiteServer、および Active Directory の各製品に対して NAT をサポートします。

ASA は ILS に対して NAT をサポートします。NAT は、ILS または SiteServer Directory のエンドポイントの登録および検索で使用されます。LDAP データベースには IP アドレスだけが保存されるため、PAT はサポートされません。

LDAP サーバが外部にある場合、内部ピアが外部 LDAP サーバに登録された状態でローカルに通信できるように、検索応答に対して NAT を行うことを検討してください。このような検索応答では、最初に xlate が検索され、次に DNAT エントリが検索されて正しいアドレスが取得されます。これらの検索が両方とも失敗した場合、アドレスは変更されません。NAT 0(NAT なし)を使用していて、DNAT の相互作用を想定していないサイトの場合は、パフォーマンスを向上させるためにインスペクション エンジンをオフにすることをお勧めします。

ILS サーバが ASA 境界の内部にある場合は、さらに設定が必要なことがあります。この場合、外部クライアントが指定されたポート(通常は TCP 389)の LDAP サーバにアクセスするためのホールが必要となります。


) ILS トラフィック(H225 コール シグナリング)はセカンダリ UDP チャネルだけで発生するため、TCP 接続は一定間隔の間に TCP アクティビティがなければ切断されます。デフォルトでは、この間隔は 60 分です。この値は、TCP timeout コマンドを使用して調整できます。ASDM では、[Configuration] > [Firewall] > [Advanced] > [Global Timeout] ペインにあります。


ILS/LDAP はクライアント/サーバ モデルに従っており、セッションは 1 つの TCP 接続で処理されます。クライアントのアクションに応じて、このようなセッションがいくつか作成されることがあります。

接続ネゴシエーション時間中、クライアントからサーバに BIND PDU が送信されます。サーバから成功を示す BIND RESPONSE を受信すると、ILS Directory に対する操作を実行するためのその他の操作メッセージ(ADD、DEL、SEARCH、MODIFY など)が交換される場合があります。ADD REQUEST PDU および SEARCH RESPONSE PDU には、NetMeeting セッションを確立するために H.323(SETUP および CONNECT メッセージ)によって使用される、NetMeeting ピアの IP アドレスが含まれている場合があります。Microsoft NetMeeting v2.X および v3.X は、ILS をサポートしています。

ILS インスペクションでは、次の操作が実行されます。

BER 復号化機能を使用して LDAP REQUEST PDU/RESPONSE PDU を復号化する。

LDAP パケットを解析する。

IP アドレスを抽出する。

必要に応じて IP アドレスを変換する。

BER 符号化機能を使用して、変換後のアドレスが含まれる PDU を符号化する。

新しく符号化された PDU を元の TCP パケットにコピーする。

TCP チェックサムとシーケンス番号の増分を調整する。

ILS インスペクションには、次の制限事項があります。

照会要求や応答はサポートされません。

複数のディレクトリのユーザは統合されません。

複数のディレクトリに複数の ID を持っている単一のユーザは NAT には認識されません。

ILS インスペクションをイネーブルする方法については、「アプリケーション レイヤ プロトコル インスペクションの設定」を参照してください。

SQL*Net インスペクション

SQL*Net インスペクションはデフォルトでイネーブルになっています。

SQL*Net プロトコルは、さまざまなパケット タイプで構成されています。ASA はこれらのパケットを処理して、ASA のどちらの側の Oracle アプリケーションにも一貫性のあるデータ ストリームが表示されるようにします。

SQL*Net のデフォルトのポート割り当ては 1521 です。これは、Oracle が SQL*Net 用に使用している値ですが、構造化照会言語(SQL)の IANA ポート割り当てとは一致しません。


) SQL 制御 TCP ポート 1521 と同じポートで SQL データ転送が行われる場合は、SQL*Net のインスペクションをディセーブルにします。SQL*Net インスペクションがイネーブルになっていると、セキュリティ アプライアンスはプロキシとして機能し、クライアントのウィンドウ サイズを 65000 から約 16000 に減らすため、データ転送の問題が発生します。


ASA は、すべてのアドレスを変換し、パケットを調べて、SQL*Net バージョン 1 用に開くすべての埋め込みポートを見つけます。

SQL*Net バージョン 2 の場合、データ長ゼロの REDIRECT パケットの直後に続くすべての DATA パケットまたは REDIRECT パケットはフィックスアップされます。

フィックスアップが必要なパケットには、埋め込みホスト アドレスおよびポート アドレスが次の形式で含まれています。

(ADDRESS=(PROTOCOL=tcp)(DEV=6)(HOST=a.b.c.d)(PORT=a))
 

SQL*Net バージョン 2 の各 TNSFrame タイプ(Connect、Accept、Refuse、Resend、Marker)は、NAT 対象のアドレスがあるかどうかがスキャンされません。また、インスペクションがパケット内に埋め込まれたポートにダイナミック接続を開くこともありません。

SQL*Net バージョン 2 の TNSFrame、Redirect パケット、および Data パケットは、ペイロードのデータ長がゼロの REDIRECT TNSFrame タイプの後に続く場合、開くポートおよび NAT 対象のアドレスがあるかどうかスキャンされます。データ長ゼロの Redirect メッセージが ASA を通過すると、後に続く Data メッセージまたは Redirect メッセージは変換対象でありポートはダイナミックに開かれると想定するフラグが、接続データ構造に設定されます。先行するパラグラフの TNS フレームのいずれかが Redirect メッセージの後に到着した場合、フラグはリセットされます。

SQL*Net インスペクション エンジンは、チェックサムを再計算し、IP および TCP の長さを変更し、新旧のメッセージの長さの差を使用してシーケンス番号と確認応答番号を再調整します。

SQL*Net バージョン 1 では、その他のすべての場合を想定しています。TNSFrame タイプ(Connect、Accept、Refuse、Resend、Marker、Redirect、Data)とすべてのパケットは、ポートおよびアドレスがあるかどうかスキャンされます。アドレスが変換され、ポート接続が開かれます。

SQL*Net インスペクションをイネーブルする方法については、「アプリケーション レイヤ プロトコル インスペクションの設定」を参照してください。

Sun RPC インスペクション

この項では、Sun RPC アプリケーション インスペクションについて説明します。

「Sun RPC インスペクション」

「許可された Sun RPC サービスの識別」

Sun RPC インスペクション

Sun RPC インスペクション エンジンは、Sun RPC プロトコルのアプリケーション インスペクションをイネーブルまたはディセーブルにします。Sun RPC は、NFS および NIS で使用されます。Sun RPC サービスはどのポート上でも実行できます。サーバ上の Sun RPC サービスにアクセスしようとするクライアントは、そのサービスが実行されているポートを知る必要があります。そのためには、予約済みポート 111 でポート マッパー プロセス(通常は rpcbind)に照会します。

クライアントがサービスの Sun RPC プログラム番号を送信すると、ポート マッパー プロセスはサービスのポート番号を応答します。クライアントは、ポート マッパー プロセスによって特定されたポートを指定して、Sun RPC クエリをサーバに送信します。サーバが応答すると、ASA はこのパケットを代行受信し、そのポートで TCP と UDP の両方の初期接続を開きます。


ヒント Sun RPC インスペクションはデフォルトではイネーブルです。Sun RPC サーバ テーブルを管理するだけで、ファイアウォールの通過を許可されているサービスを識別できます。Sun RPC インスペクションをイネーブルする方法については、「アプリケーション レイヤ プロトコル インスペクションの設定」を参照してください。

Sun RPC インスペクションには、次の制限事項が適用されます。

Sun RPC ペイロード情報の NAT または PAT はサポートされていません。

Sun RPC インスペクションはインバウンド ACL のみをサポートします。Sun RPC インスペクションはアウトバウンド ACL はサポートしません。これは、インスペクション エンジンでセカンダリ接続でなくダイナミック ACL が使用されるためです。ダイナミック ACL は常に入力方向に追加され、出力方向には追加されません。したがって、このインスペクション エンジンはアウトバウンド ACL をサポートしません。ASA に設定されているダイナミック ACL を表示するには、 show asp table classify domain permit コマンドを使用します。

許可された Sun RPC サービスの識別

ファイアウォールの通過を許可する Sun RPC サーバおよびサービスを識別する必要があります。Sun RPC インスペクションでは、トラフィックを評価するときにこのテーブルを使用します。

手順


ステップ 1 [Configuration] > [Firewall] > [Advanced] > [SUNRPC Server] を選択します。

ステップ 2 次のどちらかを実行します。

[Add] をクリックして新しいサーバを追加します。

サーバを選択し、[Edit] をクリックします。

ステップ 3 サービス プロパティを設定します。

[Interface Name]:サーバへのトラフィックが伝送されるインターフェイス。

[IP Address/Mask]:Sun RPC サーバのアドレス。

[Service ID]:サーバのサービス タイプ。サービス タイプ(100003 など)を判定するには、Sun RPC サーバ マシンの UNIX または Linux コマンド ラインで、 sunrpcinfo コマンドを使用します。

[Protocol]:サービスがプロトコルとして使用する TCP または UDP。

[Port/Port Range]:サービスで使用されているポートまたはポートの範囲。

[Timeout]:接続のアイドル タイムアウト。

ステップ 4 [OK] をクリックします。