Catalyst 6500 シリーズ スイッチ/Cisco 7600 シリーズ ルータ Firewall Services Module コンフィギュレーション ガイド
アプリケーション プロトコル検査の設 定
アプリケーション プロトコル検査の設定
発行日;2012/02/03 | ドキュメントご利用ガイド | ダウンロード ; この章pdf | フィードバック

目次

アプリケーション プロトコル検査の設定

インスペクション エンジンの概要

アプリケーション プロトコル検査の実行時期

検査の制限事項

検査のサポート

インスペクション エンジンの設定

インスペクション エンジンの詳細

CUSeeMeインスペクション エンジン

DNS over UDPインスペクション エンジン

FTPインスペクション エンジン

H.323インスペクション エンジン

H.323インスペクション エンジンの設定

単一コール シグナリング接続上での複数コール

接続ステータスの表示

技術的なバックグラウンド

HTTPインスペクション エンジン

ICMPインスペクション エンジン

ICMPエラー インスペクション エンジン

ILSインスペクション エンジン

MGCPインスペクション エンジン

MGCPの概要

複数のコール エージェントおよびゲートウェイの設定

MGCP情報の表示

NBNSインスペクション エンジン

OraServインスペクション エンジン

RealAudioインスペクション エンジン

RSHインスペクション エンジン

RTSPインスペクション エンジン

SIPインスペクション エンジン

SIPインスペクション エンジンの設定

SIPの概要

技術的なバックグラウンド

Skinnyインスペクション エンジン

Skinnyの概要

分割されたSkinnyパケットの問題

SMTPインスペクション エンジン

SQL*Netインスペクション エンジン

Sun RPCインスペクション エンジン

TFTPインスペクション エンジン

XDMCPインスペクション エンジン

アプリケーション プロトコル検査の設定

この章では、「フィックスアップ(fixup)」と呼ばれているアプリケーション プロトコル検査の使用方法および設定手順について説明します。ユーザ データ パケットにIPアドレス情報が組み込まれているサービス、またはダイナミックに割り当てられるポート上でセカンダリ チャネルを開始するサービスには、インスペクション エンジンが必要です。これらのプロトコルでは、パケットをファスト パス経由で通過させる代わりに、Firewall Services Module(FWSM)で詳細なパケット検査を実行する必要があります(ファスト パスの詳細については、 ステートフル インスペクション機能を参照してください)。その結果、インスペクション エンジンにより、全般的なスループットに影響が及ぶことがあります。

FWSMでは、デフォルトでいくつかの一般的なインスペクション エンジンがイネーブルに設定されていますが、ネットワークによっては、他のインスペクション エンジンもイネーブルにする必要があります。この章で説明する内容は、次のとおりです。

「インスペクション エンジンの概要」

「インスペクション エンジンの設定」

「インスペクション エンジンの詳細」

インスペクション エンジンの概要

ここでは、次の内容について説明します。

「アプリケーション プロトコル検査の実行時期」

「検査の制限事項」

「検査のサポート」

アプリケーション プロトコル検査の実行時期

ユーザが接続を確立すると、FWSMはAccess Control List(ACL;アクセス制御リスト)に対してパケットを検証し、アドレス変換を作成し、ファスト パスでのセッション用エントリを作成します。したがって、以降のパケットは時間のかかる検証をバイパスできます。ただし、ファスト パスではポート番号を予測できることが前提なので、パケット内のアドレス変換は実行されません。

ほとんどのプロトコルは、セカンダリのTCPポートまたはUDPポートをオープンします。既知のポートでの初期セッションは、ダイナミックに割り当てられるポート番号のネゴシエーションに使用されます。

他のアプリケーションは、パケット内にIPアドレスを組み込みます。このアドレスは送信元アドレスと一致している必要があり、通常、FWSMを通過する時点で変換されます。

これらのアプリケーションを使用するには、アプリケーション検査をイネーブルにする必要があります。

IPアドレスが組み込まれるサービスに対してアプリケーション検査をイネーブルにすると、FWSMは組み込まれたアドレスを変換し、変換によって影響を受けるチェックサムまたは他のフィールドを更新します。

ダイナミックに割り当てられるポートを使用するサービスに対してアプリケーション検査をイネーブルにすると、FWSMはセッションをモニタしてダイナミックに割り当てられたポートを判別し、特定のセッション中、これらのポート上でのデータ交換を許可します。

検査の制限事項

アプリケーション プロトコル検査には、次の制限があります。

各コンテキストに、最大32のインスペクション エンジンを設定できます。この制限には、デフォルトでイネーブルになるTFTP、Sun PRC over UDP、NetBIOS NameServer、XDMCP、およびCUSeeMeインスペクション エンジンが含まれるので、設定できるインスペクション エンジンの総数は27です。OraServおよびRealAudioのインスペクション エンジンもデフォルトでイネーブルに設定されますが、この制限には影響しません。

検査を必要とするマルチメディア セッションのステート情報は、ステートフル フェールオーバー用のステート リンクに渡されません。

IPパケットが分割されている場合、検査されるのは最初のフラグメントだけです。

セグメント化されたTCPパケットの場合、メッセージが複数のセグメント間に分割されていると、FWSMはこれらのパケットを検査できません。

一部のインスペクション エンジンは、PAT、NAT、ポリシーNAT、外部NAT、または同じセキュリティ インターフェイス間のNATをサポートしていません。NATサポートの詳細については、「検査のサポート」を参照してください。

DNSフィックスアップの制限は、1秒あたり4000です。

検査のサポート

表 13-1 に、FWSMによりサポートされるインスペクション エンジンと、NAT、PAT、外部NAT、または同じセキュリティ インターフェイス間のNATをサポートしているかどうかを示します。インスペクション エンジンが外部NATをサポートしていない場合、外部NATの代わりに alias コマンドを使用できます。 alias コマンドの詳細は、『 Catalyst 6500 Series Switch and Cisco 7600 Series Router Firewall Services Module Command Reference 』を参照してください。

デフォルトにより、デフォルト ポートでイネーブルに設定されているインスペクション エンジンは、太字で表記されています。

 

表 13-1 インスペクション エンジンのサポート

アプリケーション1
設定
デフォルト ポート
NAT制限
説明
標準規格2

CUSeeMe

不可

UDP/7648

NATまたはPATは非サポート。NATアイデンティティまたはNAT除外のみを使用してください。

--

--

DNS over UDP

可能

UDP/53

WINSによる名前解決用のNATは非サポート。

RTPレコードは変更されません。

RFC 1123

FTP

可能

TCP/21

--

--

RFC 1123

H.323 H.225
および RAS

可能

TCP/1720

UDP/1718-1719

外部NATは非サポート。 alias コマンドを使用してください。

同じセキュリティ インターフェイス上のNATは非サポート。

セグメント化されたメッセージはサポートされません。

ITU-T H.323、H.245、H225.0、Q.931、Q.932

HTTP

可能

TCP/80

--

--

RFC 2616

ICMP

可能

--

--

--

--

ICMPエラー

可能

--

--

--

--

ILS (LDAP)

可能

TCP/389

外部NATは非サポート。 alias コマンドを使用してください。

PATは非サポート。

--

--

MGCP

可能

UDP/2427、2727

NATまたはPATは非サポート。NATアイデンティティまたはNAT除外のみを使用してください。

--

RFC2705bis-05

NetBIOS Name Server over IP

不可

UDP/137-138

--

--

--

OraServ

不可

UDP/1525

--

--

RealAudio

不可

UDP/7070

--

--

RSH

可能

TCP/514

PATは非サポート。

--

Berkeley UNIX

RTSP

可能

TCP/554

PATは非サポート。

外部NATは非サポート。 alias コマンドを使用してください。

HTTPクローキングは処理されません。

RFC 2326、RFC 2327、RFC 1889

SIP TCP

可能

TCP/5060

外部NATは非サポート。 alias コマンドを使用してください。

同じセキュリティ インターフェイス上のNATは非サポート。

--

RFC 2543

SIP UDP

可能

UDP/5060

外部NATは非サポート。 alias コマンドを使用してください。

同じセキュリティ インターフェイス上のNATは非サポート。

--

RFC 2543

SKINNY (SCCP)

可能

TCP/2000

外部NATは非サポート。 alias コマンドを使用してください。

同じセキュリティ インターフェイス上のNATは非サポート。

TFTPでアップロードしたCisco IP
Phoneコンフィギュレーションは処理されません。

--

SMTP

可能

TCP/25

--

--

RFC 821、RFC 1123

SQL*Net

可能

TCP/1521(v1)

ポリシーNATは非サポート。

v1およびv2

--

Sun RPC over UDP

不可

UDP/111

NATまたはPATは非サポート。NATアイデンティティまたはNAT除外のみを使用してください。

--

--

Sun RPC over TCP

可能

TCP/111

NATまたはPATは非サポート。NATアイデンティティまたはNAT除外のみを使用してください。

--

--

TFTP

不可

UDP/69

ペイロードIPアドレスは変換されません。

--

RFC 1350

XDMCP

不可

UDP/177

NATまたはPATは非サポート。NATアイデンティティまたはNAT除外のみを使用してください。

--

--

1.太字のインスペクション エンジンは、デフォルトにより、デフォルト ポートでイネーブルに設定されています。

2.FWSMはこれらの標準規格に適合していますが、検査対象パケットの適合は強制しません。たとえば、FTPコマンドは一定の順序であることが前提ですが、FWSMはこの順序を強制しません。

インスペクション エンジンの設定

インスペクション エンジンをディセーブル化または変更した場合、設定が適用されるのは、これらのコマンドの処理後に開始された接続だけです。特定のポートまたはアプリケーションのインスペクション エンジンをディセーブルにした場合も、既存の接続には適用されません。変更をただちに適用する場合には、 clear xlate コマンドを入力して、すべての既存のセッションを削除してください。


 

インスペクション エンジンを設定するには、次のコマンドを入力します。

FWSM/contexta(config)# fixup protocol {
dns [maximum-length length]
ftp [strict] [port[-port]] |
h323 {h225 | ras} [port[-port]] |
http
[port[-port]] |
icmp |
icmp error |
ils [port[-port]] |
mgcp [port[-port] |
rpc [port[-port] |
rsh [port[-port] |
rtsp [port[-port] |
sip [port[-port] |
sip udp |
skinny [port[-port] |
smtp [port[-port]] |
sqlnet [port[-port]]}
 

ほとんどのアプリケーションおよびプロトコルでは、複数のポート割り当てを定義できます。同じサービスの複数のインスタンスを異なるポート上で実行する場合に便利です。

複数のポートを(範囲を指定するかまたは個別のコマンドで)入力できるので、新しいポートを指定すると、すでに設定されているポートのほかに新しいポートがコンフィギュレーションに追加されます。ポートを削除する場合は、コマンドの no 形式を入力します。

次のキーワードを指定できます。

dns maximum-length length ― DNS応答の最大長を設定します。デフォルトは512バイトです。このインスペクション エンジンはUDPポート53を使用します。このポート設定は変更できません。

ftp strict ― FTPサーバが277コマンドだけを生成し、FTPクライアントがPORTコマンドだけを生成するように制限します。227コマンドとPORTコマンドは、エラー文字列に表示されないように検証されます。この制限により、クライアントは、コマンドが組み込まれたFTP要求を送信できません。新しいコマンドが許可される前に、各FTPコマンドの確認が必要になります。

h323 { h225 | ras } ― H.323およびRASのインスペクション エンジン( h225 および ras )を個別に設定できます。

各プロトコルのインスペクション エンジンの詳細については、「インスペクション エンジンの詳細」を参照してください。


 

FTPポート21のインスペクション エンジンは、デフォルトでイネーブルに設定されています。次に、FTPに追加ポートを定義する例を示します。

FWSM/contexta(config)# fixup protocol ftp 2100
FWSM/contexta(config)# fixup protocol ftp 4254
FWSM/contexta(config)# fixup protocol ftp 9090
 

これらのコマンドを入力すると、FWSMはポート21に加え、ポート2100、4254、および9090でFTPトラフィックを待ち受けます。

次に、SQL*Netに1500~2000のポート範囲を割り当てる例を示します。

FWSM/contexta(config)# fixup protocol sqlnet 1500-2000
 
 

インスペクション エンジンの詳細

「CUSeeMeインスペクション エンジン」

「DNS over UDPインスペクション エンジン」

「FTPインスペクション エンジン」

「H.323インスペクション エンジン」

「HTTPインスペクション エンジン」

「ICMPインスペクション エンジン」

「ICMPエラー インスペクション エンジン」

「ILSインスペクション エンジン」

「MGCPインスペクション エンジン」

「NBNSインスペクション エンジン」

「OraServインスペクション エンジン」

「RealAudioインスペクション エンジン」

「RSHインスペクション エンジン」

「RTSPインスペクション エンジン」

「SIPインスペクション エンジン」

「Skinnyインスペクション エンジン」

「SMTPインスペクション エンジン」

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

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

「TFTPインスペクション エンジン」

「XDMCPインスペクション エンジン」

CUSeeMeインスペクション エンジン

デフォルトでは、UDPポート7648でイネーブルに設定されます。

この設定は変更できません。

CUSeeMeクライアントでは、ユーザは他のユーザ(CUSeeMeまたは他のH.323クライアント)に直接接続して、両ユーザ間でオーディオ、ビデオ、およびデータを併用できます。CUSeeMeクライアントでは、CUSeeMeクライアントおよび他のベンダーのH.323準拠クライアントの両方が混在しているクライアント環境で会議を行うことができます。

CUSeeMeクライアントは、バックグラウンドで2つの異なるモードを使用します。他のCUSeeMeクライアントまたはCUSeeMe Conference Serverに接続した場合には、クライアントはCUSeeMeモードで情報を送信します。

異なるベンダーのH.323準拠ビデオ会議クライアントに接続した場合には、CUSeeMeクライアントはH.323モードのH.323標準フォーマットを使用して通信します。

CUSeeMeは、H.323インスペクションでサポートされるほか、UDPポート7648のCUSeeMe制御ストリーム上でNATを実行します。

DNS over UDPインスペクション エンジン

デフォルトでは、UDPポート53でイネーブルに設定されます。

Domain Name System(DNS;ドメイン ネーム システム)要求はインスペクション エンジンを必要とするので、DNSクエリは動作タイムアウトに基づく一般的なUDP処理の対象になりません。代わりに、DNSクエリおよび応答に関連するUDP接続は、DNSクエリへの応答が受信されると、ただちに終了します。DNSインスペクション エンジンは、DNS応答のIDがDNSクエリのIDと一致していることを確認するために、メッセージ交換をモニタします。FWSMによるDNSペイロードの変更の詳細については、「DNSおよびNAT」を参照してください。

この機能は、DNS Guard機能とは異なります。DNS Guard機能の詳細については、「その他の保護機能」を参照してください。


 

DNS応答の最大長を設定するには、次のコマンドを入力します。

FWSM/contexta(config)# fixup protocol dns [maximum-length length]
 

デフォルトは512バイトです。ポートは53(UDP)で、変更はできません。


 

FTPインスペクション エンジン

デフォルトでは、TCPポート21でイネーブルに設定されます。


 

FTPインスペクション エンジンを設定するには、次のコマンドを入力します。

FWSM/contexta(config)# fixup protocol ftp [strict] port[-port]
 

デフォルトのポートは21(TCP)です。


 

no fixup protocol ftp コマンドを使用してFTPインスペクション エンジンをディセーブルにした場合、発信ユーザが接続を開始できるのはパッシブ モードだけ、着信ユーザが接続を開始できるのはアクティブ モードだけになります。

FTPインスペクション エンジンはFTPセッションを検査し、4つのタスクを実行します。

動的なセカンダリ データ接続の準備 ― チャネルは、ファイルのアップロード、ファイルのダウンロード、またはディレクトリ リスト イベントの応答として割り当てられ、事前にネゴシエーションが必要です。ポートは、PORTコマンドまたはPASVコマンドによってネゴシエートされます。

ftp コマンドの応答シーケンスの追跡 ― strict オプションがイネーブルの場合、次の異常動作について、各 ftp コマンドと応答シーケンスが追跡されます。

不完全なコマンド ― PORTおよびPASV応答コマンド内のカンマ数が5つかどうかが確認されます。5つ以外の場合、PORTコマンドは不完全であるとみなされ、TCP接続は終了します。

不正コマンド ― RFCに規定されているように、 ftp コマンドが<CR><LF>文字で終了しているかどうかが確認されます。異なっている場合、接続は終了します。

RETRコマンドおよびSTORコマンドのサイズ ― 256の固定数になっているかどうかが確認されます。サイズが256を超えている場合、エラー メッセージが記録され、接続は終了します。

コマンド スプーフィング ― PORTコマンドは常にクライアントから送信される必要があります。PORTコマンドがサーバから送信されている場合、TCP接続は拒否されます。

応答スプーフィング ― PASV応答コマンド(227)は常にサーバから送信される必要があります。PASV応答コマンドがクライアントから送信されている場合、TCP接続は拒否されます。これにより、ユーザが[227 xxxxx a1, a2, a3, a4, p1, p2]を実行した場合のセキュリティ ホールが防止されます。

TCPストリームの編集

無効なポートのネゴシエーション ― ネゴシエートされたダイナミック ポートの値が1024未満かどうかが確認されます。1~1024のポート番号は既知の接続用に予約されているので、ネゴシエートされたポートがこの範囲内の場合には、TCP接続は解放されます。

コマンドのパイプライン化 ― PORTコマンドおよびPASV応答コマンド内のポート番号よりあとの文字数が、定数の8であるかどうかが相互確認されます。8を超えている場合、TCP接続は終了します。


strictオプションを使用すると、RFC標準に適合しないFTPクライアントがブレークされることがあります。


監査追跡の生成 ― FTPインスペクション エンジンは、次のシステム メッセージを生成します。

取り込まれた、またはアップロードされた各ファイルについて、システム メッセージ303002が生成されます。

メモリ不足によってセカンダリ ダイナミック チャネルの準備に失敗した場合、システム メッセージ201005が生成されます。

組み込みIPアドレスの変換 ― FTPインスペクション エンジンは、NATと連携してアプリケーション ペイロード内のIPアドレスを変換します。詳細についてはRFC 959に規定されています。

H.323インスペクション エンジン

デフォルトでは、H.323 H.225は、TCPポート1720でイネーブルに設定されます。

デフォルトでは、H.323 RASは、TCPポート1718~1719でイネーブルに設定されます。

fixup protocol h323 コマンドにより、H.323準拠エンドポイントがサポートされます。FWSMは、H.323バージョン2、3、および4をサポートしています。

H.323は、International Telecommunication Union(ITU;国際電気通信連合)により、LAN上でのマルチメディア会議用として定義されているプロトコル スイートです。H.323は、VoIPゲートウェイおよびVoIPゲートキーパをサポートします。

ここでは、次の内容について説明します。

「H.323インスペクション エンジンの設定」

「単一コール シグナリング接続上での複数コール」

「接続ステータスの表示」

「技術的なバックグラウンド」

H.323インスペクション エンジンの設定


 

H.323インスペクション エンジンを設定するには、次のコマンドを入力します。

FWSM/contexta(config)# fixup protocol h323 {h225 | ras} [port[-port]]
 

H.323およびRASのインスペクション エンジン( h225 および ras )を個別に設定できます。 h225 のデフォルト ポートは1720(TCP)、 ras のデフォルト ポートは1718~1719(UDP)です。


 

単一コール シグナリング接続上での複数コール

同じコール シグナリング チャネル上で複数のコールを実行すると、コール セットアップの時間が短縮され、FWSM上のポートの使用も削減されます。


 

H.225コール シグナリング チャネルをオープンに維持しておく長さを設定するには、次のコマンドを入力します。

FWSM/contexta(config)# timeout h225 hh[:mm[:ss]]
 

デフォルトは1時間です。


 

たとえば、タイムアウトを設定しないでチャネルを常時オープンにしておくには、次のコマンドを入力して、タイマーを0に設定します。

timeout h225 00:00:00
 

タイマーをディセーブルにし、すべてのコールがクリアされた直後にTCP接続を終了するには、次のように、タイムアウトの値を1秒に設定します。

timeout h225 00:00:01
 

接続ステータスの表示


 

H.225接続のステータスを表示するには、次のコマンドを入力します。

FWSM/contexta(config)# show conn state h225
 


 

技術的なバックグラウンド

H.323プロトコル スイートでは、集合的に、2つまでのTCP接続と4~6のUDP接続を使用できます。FastConnectは1つのTCP接続だけを使用し、RASは登録、アドミッション、およびステータスに1つのUDP接続を使用します。

H.323クライアントでは、最初にTCPポート1720を使用してH.323サーバへのTCP接続を確立し、Q.931コールのセットアップを要求できます。コール セットアップ プロセスの一環として、H.323端末は、H.245 TCP接続に使用するポート番号をクライアントに提供します。


) H.323ゲートキーパを使用している環境では、最初のパケットはUDPによって送信されます。


H.323インスペクション エンジンは、Q.931 TCP接続をモニタして、H.245のポート番号を判別します。H.323端末がFastConnectを使用していない場合、FWSMは、H.225メッセージの検査に基づいてH.245接続を動的に割り当てます。

各H.245メッセージ内で、H.323エンドポイントは、以降のUDPデータ ストリームに使用するポート番号を交換します。H.323インスペクション エンジンは、H.245メッセージを検査してこれらのポートを識別し、メディア交換用の接続を動的に作成します。Real-Time Transport Protocol(RTP)はネゴシエートされたポート番号を使用しますが、RTP Control Protocol(RTCP)は次の上位ポート番号を使用します。

H.323制御チャネルは、H.225、H.245、およびH.323 RASを処理します。H.323インスペクション エンジンは、次のポートを使用します。

1718 ― ゲートキーパ検出UDPポート

1719 ― RAS UDPポート

1720 ― TCP制御ポート

H.323インスペクション エンジンには、2つの主要機能があります。

H.225およびH.245メッセージ内に組み込まれた必要なIPv4アドレスに対し、NATを実行します。H.323メッセージはPER符号化フォーマットで符号化されているので、FWSMはASN.1デコーダを使用してH.323メッセージをデコードします。H.323インスペクション エンジンは、スタティックNATおよびダイナミックNATをサポートしています。同じセキュリティ インターフェイス上のNAT、または外部NATはサポートしていません。

ネゴシエートされたH.245およびRTP/RTCP接続が、動的に割り当てられます。

FWSMの管理者は、H.225コール シグナリングについて、既知のH.323ポート1720にACLを設定しておく必要があります。ただし、H.245シグナリング ポートは、H.225シグナリング内の両方のエンドポイント間でネゴシエートされます。


) H.323ゲートキーパが使用されている場合、FWSMは、AdmissionConfirm(ACF)メッセージの検査に基づいてH.225接続を開始します。


FWSMは、H.225メッセージを検査したあと、H.245チャネルを動的に割り当て、H.245チャネルをフィックスアップするために「フックアップ(接続)」します。すなわち、FWSMを通過したH.245メッセージはすべてH.245インスペクション エンジンを通過し、組み込みIPアドレスのNATが実行され、ネゴシエートされたメディア チャネルが開始されることを意味します。

H.323 ITU標準規格では、信頼性のある接続上に送信する前に、H.225およびH.245の前にTPKTヘッダーによりメッセージの長さを定義することが規定されています。TPKTヘッダーは
H.225/H.245メッセージと同じTCPパケットで送信されるとは限らないので、メッセージを適切に処理およびデコードするには、FWSMでTPKT長を保持しておく必要があります。FWSMは各接続のデータ構造を保持し、このデータ構造には次に送信されるメッセージのTPKT長が含まれます。

FWSMでいずれかのIPアドレスのNATを実行する必要がある場合には、チェックサム、User-User Information Element(UUIE)、およびTPKT(H.225メッセージのTCPパケットに含まれている場合)を変更する必要があります。TPKTが別のTCPパケットで送信される場合には、FWSMはTPKTのプロキシACKを実行し、H.245メッセージに新しい長さのTPKTを付加します。


) FWSMによるTPKTのプロキシACKでは、TCPオプションはサポートされません。


H.323インスペクション エンジンを通過するパケットを使用する各UDP接続は、H.323接続としてマークされ、管理者が timeout コマンドによって設定したH.323タイムアウトが適用されます。

HTTPインスペクション エンジン

HTTPインスペクション エンジンは、内部ユーザがHTTP GET要求を発行したときに、システム メッセージ304001を有効にします。

%FWSM-5-304001: user source_address Accessed [JAVA] URL dest_address : url .


 

HTTPインスペクション エンジンを設定するには、次のコマンドを入力します。

FWSM/contexta(config)# fixup protocol http [port[-port]]
 

デフォルトのポートは80(TCP)です。


 

ICMPインスペクション エンジン

ICMPインスペクション エンジンは、TCP/UDPトラフィックと同様に検査できるように、ICMPトラフィックに「セッション」を許可します。ICMPインスペクション エンジンを使用しない場合には、ACLにより、ICMPにFWSMを通過させないことを推奨します。ステートフル インスペクションが実行されない場合、ICMPはネットワークの攻撃に利用されることがあります。ICMPインスペクション エンジンは、各要求に対する応答が1つだけであり、シーケンス番号が正しいかどうかを確認します。


 

ICMPインスペクション エンジンを設定するには、次のコマンドを入力します。

FWSM/contexta(config)# fixup protocol icmp
 


 

ICMPのペイロードがスキャンされ、元のパケットから5タプルが取得されます。ICMPインスペクション エンジンは、1対1のNATおよびPATの両方をサポートしています。取得した5タプルを使用して検索が実行され、クライアントの元のアドレスが判別されます。ICMPインスペクション エンジンは、ICMPパケットに対して次の変更を行います。

IPヘッダーで、NAT IPがクライアントIP(宛先アドレス)に変更され、IPチェックサムが修正されます。

ICMPヘッダーで、ICMPパケット内の変更に基づいて、ICMPチェックサムが修正されます。

ペイロードでは、次の変更が行われます。

元のパケットのNAT IPが、クライアントIPに変更されます。

元のパケットのNATポートが、クライアント ポートに変更されます。

元のパケットのIPチェックサムが再計算されます。

ICMPエラー インスペクション エンジン

FWSMは、ICMPエラー メッセージのNATをサポートしています。この機能をイネーブルにすると、FWSMは、NATの設定に基づいて、ICMPエラー メッセージを送信する中間ホップ用の変換セッションを作成します。FWSMは、パケットを変換後のIPアドレスに書き換えます。


 

ICMPエラー インスペクション エンジンを設定するには、次のコマンドを入力します。

FWSM/contexta(config)# fixup protocol icmp error
 


 

ディセーブルにすると、FWSMは、ICMPエラー メッセージを生成する中間ノード用の変換セッションを作成しません。内部ホストとFWSM間の中間ノードで生成されたICMPエラー メッセージは、追加のNATリソースを使用しないで外部ホストに到達します。この方法が望ましくないのは、外部ホストでtracerouteコマンドを使用すると、FWSMの内部の宛先までのホップを追跡できるからです。FWSMで中間ホップのNATを実行しない場合、すべての中間ホップに、変換後の宛先IPアドレスが表示されます。

ILSインスペクション エンジン

デフォルトでは、TCPポート389でイネーブルに設定されます。

Internet Locator Service(ILS)は、Lightweight Directory Access Protocol(LDAP)に基づくLDAPv2準拠サービスです。ILSは、MicrosoftのNetMeeting、SiteServer、およびActive Directory製品で使用するために、Microsoft社が開発したものです。


 

ILSインスペクション エンジンを設定するには、次のコマンドを入力します。

FWSM/contexta(config)# fixup protocol ils [port[-port]]
 

デフォルトのポートは389(TCP)です。


 

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

LDAPサーバが外部にある場合、検索応答を実行するには、NATを使用しても、外部LDAPサーバに登録されている内部ピア間のローカル通信を可能にしておく必要があります。このような検索応答では、最初に変換セッションが検索され、次にNATエントリが検索されて正しいアドレスが取得されます。両方の検索に失敗した場合には、アドレスは変更されません。


) NAT除外またはアイデンティティNATを実行しているサイトでは、パフォーマンスを保持するために、このインスペクション エンジンをディセーブルにすることを推奨します。


ILSサーバがFWSM境界の内部にある場合には、追加の設定が必要になることがあります。この場合、指定ポート(通常はTCP 389)上でLDAPサーバにアクセスする外部クライアント用のACLが必要です。

ILS/LDAPは、クライアント/サーバ モデルに基づいて、単一TCP接続上のセッションを処理します。これらのセッションの一部は、クライアントの動作に応じて作成されます。

接続のネゴシエーション中に、クライアントからサーバに対して、Berkeley Internet Name Domain(BIND)Protocol Data Unit(PDU;プロトコル データ ユニット)が送信されます。サーバから正常なBIND RESPONSEを受信すると、他の処理メッセージ(ADD、DEL、SEARCH、MODIFYなど)が交換され、ILS Directory上で処理が実行されます。ADD REQUESTおよびSEARCH RESPONSE
PDUには、NetMeetingセッションを確立するためにH.323(SETUPおよびCONNECTメッセージ)によって使用されるNetMeetingピアのIPアドレスが含まれていることがあります。Microsoft
NetMeeting v2.Xおよびv3.Xでは、ILSをサポートしています。

ILSインスペクション エンジンは、次の処理を実行します。

BER(ビット エラー レート)デコード機能を使用して、LDAP REQUEST/RESPONSE PDUをデコードします。

LDAPパケットを解析します。

IPアドレスを取得します。

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

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

新たに符号化したPDUを、TCPパケットにコピーします。

TCPチェックサムおよびシーケンス番号を増分的に調整します。

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

照会の要求および応答は、サポートされません。

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

複数のディレクトリに別々の名前で登録されている単一ホストは、ILSインスペクション エンジンでサポートされません。すべてのディレクトリで同じ名前を使用する必要があります。

MGCPインスペクション エンジン

Media Gateway Control Protocol(MGCP)は、メディア ゲートウェイ コントローラまたはコール エージェントと呼ばれる外部コール コントロール エレメントからのメディア ゲートウェイを制御するために使用されます。メディア ゲートウェイは、一般的に、電話回線上で伝送されるオーディオ信号と、インターネットまたは他のパケット ネットワーク上で伝送されるデータ パケット間の通信を提供するネットワーク エレメントです。

MGCPを使用するには、通常、最低2つのポートを設定する必要があります。1つはゲートウェイがコマンドを受信するポート、もう1つはコール エージェントがコマンドを受信するポートです。通常、コール エージェントはポート2427にコマンドを送信し、ゲートウェイはポート2727にコマンドを送信します。


 

MGCPインスペクション エンジンを設定するには、次のコマンドを入力します。

FWSM/contexta(config)# fixup protocol mgcp port[-port]
 

デフォルトのポートは、2427および2727です。


 

FWSMは、MGCPについては、NATまたはPATのいずれもサポートしていません。

ここでは、次の内容について説明します。

「MGCPの概要」

「複数のコール エージェントおよびゲートウェイの設定」

「MGCP情報の表示」

MGCPの概要

次に、メディア ゲートウェイの例を示します。

トランキング ゲートウェイ:電話網とVoice over IP(VoIP)ネットワーク間のインターフェイスです。このゲートウェイは一般的に多数のデジタル回線を管理します。

レジデンシャル ゲートウェイ:VoIPネットワークに従来のアナログ(RJ11)インターフェイスを提供します。レジデンシャル ゲートウェイの例としては、ケーブル モデム/ケーブル セットトップ ボックス、xDSLデバイス、ブロードバンド ワイヤレス デバイスなどがあります。

ビジネス ゲートウェイ:VoIPネットワークに従来のデジタルPBX(構内交換機)インターフェイスまたは統合 ソフトPBX インターフェイスを提供します。

MGCPメッセージは、UDP上で転送されます。応答は、コマンドの送信元アドレス(IPアドレスおよびUDPポート番号)に返送されますが、コマンドの宛先と同じアドレスから応答が戻されるとは限りません。たとえば、複数のコール エージェントがフェールオーバー設定に使用され、コマンドを受信したコール エージェントからバックアップ コール エージェントに制御が渡されたあとで、応答が戻される場合です。

複数のコール エージェントおよびゲートウェイの設定

FWSMが複数のMGCPコール エージェントおよびゲートウェイをサポートするように設定するには、次のコマンドを使用します。

1つ以上のゲートウェイを管理するコール エージェントのグループを指定するには、次のコマンドを入力します。

FWSM/contexta(config)# mgcp call-agent ip_address group_id
 

この情報は、ゲートウェイからのコマンド送信先と異なるコール エージェントで接続を開始する場合に使用されます。したがって、どのコール エージェントからでも応答を送信できます。 ip_address に、コール エージェントのIPアドレスを指定します。 group_id は、0~4,294,967,295の数値です。同じ group_id のコール エージェントは、同じグループに属します。

応答を待機するためにキューに保管できるMGCPコマンドの最大数を指定するには、次のコマンドを入力します。

FWSM/contexta(config)# mgcp command-queue limit
 

limit の許容値の範囲は、1~4,294,967,295です。デフォルトは200です。制限値に達してから新しいコマンドを受信すると、キューの保管時間が最も長いコマンドが削除されます。

特定のゲートウェイを管理するコール エージェント グループを指定するには、次のコマンドを入力します。

FWSM/contexta(config)# mgcp gateway ip_address group_id
 

ゲートウェイのIPアドレスは、 ip_address オプションで指定します。 group_id オプションに、0~4,294,967,295の数値を指定します。この値は、ゲートウェイを管理しているコール エージェントの group_id と一致している必要があります。

次に、MGCPコマンド キューを150コマンドに制限し、コール エージェント10.10.11.5および10.10.11.6がゲートウェイ10.10.10.115を制御し、コール エージェント10.10.11.7および10.10.11.8がゲートウェイ10.10.10.116を制御するように設定する例を示します。

FWSM/contexta(config)# mgcp call-agent 10.10.11.5 101
FWSM/contexta(config)# mgcp call-agent 10.10.11.6 101
FWSM/contexta(config)# mgcp call-agent 10.10.11.7 102
FWSM/contexta(config)# mgcp call-agent 10.10.11.8 102
FWSM/contexta(config)# mgcp command-queue 150
FWSM/contexta(config)# mgcp gateway 10.10.10.115 101
FWSM/contexta(config)# mgcp gateway 10.10.10.116 102

MGCP情報の表示

MGCPに関する情報を表示するには、次のコマンドを入力します。

FWSM/contexta(config)# show mgcp {commands | sessions} [detail]
 

コマンド キュー内のコマンドをリストするには、 commands オプションを使用します。既存のMGCPセッションをリストするには、 sessions オプションを使用します。各コマンドまたはセッションの詳細情報を表示するには、 detail オプションを使用します。

MGCP接続に関する情報を表示するには、次のコマンドを入力します。

FWSM/contexta(config)# show conn {detail | state} mgcp
 

MGCP接続に関する詳細情報を表示するには、detailオプションを使用します。MGCPセッション用に作成されたメディア接続を表示するには、 state オプションを使用します。

NBNSインスペクション エンジン

デフォルトでは、UDPポート137および138でイネーブルに設定されます。

この設定は変更できません。

NetBiosインスペクション エンジンは、FWSMのNAT設定に基づいて、NetBios Name Service(NBNS)パケット内のIPアドレスを変換します。

OraServインスペクション エンジン

デフォルトでは、UDPポート1525でイネーブルに設定されます。

この設定は変更できません。

OraServインスペクション エンジンは、データ チャネルにFWSMの通過を許可します。

RealAudioインスペクション エンジン

デフォルトでは、UDPポート7070でイネーブルに設定されます。

この設定は変更できません。

RealAudioインスペクション エンジンは、データ チャネルの送信元ポートがUDPポート6790~7170の範囲の場合、データ チャネルにFWSMの通過を許可します。

RSHインスペクション エンジン

デフォルトでは、TCPポート514でイネーブルに設定されます。

Remote Shell(RSH)プロトコルは、TCPポート514でのRSHクライアントからRSHサーバへのTCP接続に使用されます。クライアントとサーバは、クライアントがSTDERR出力ストリームを待ち受けるTCPポート番号をネゴシエートします。RSHインスペクション エンジンは、必要に応じて、ネゴシエートされたポート番号のNATをサポートします。


 

RSHインスペクション エンジンを設定するには、次のコマンドを入力します。

FWSM/contexta(config)# fixup protocol rsh [port[-port]]
 

初期RSH接続のデフォルトのポートは、514(TCP)です。


 

RTSPインスペクション エンジン

Real Time Streaming Protocol(RTSP)は、RealAudio、RealNetworks、Apple QuickTime 4、RealPlayer、およびCisco IP/TVの接続に使用されます。FWSMは、マルチキャストRTSPをサポートしていません。

RTSPアプリケーションは、既知ポート554のTCP(まれにUDP)を制御チャネルとして使用します。FWSMは、RFC 2326に基づき、TCPだけをサポートしています。

TCP制御チャネルは、クライアント上に設定されたトランスポート モードに応じて、オーディオ/ビデオ トラフィックの伝送に使用するデータ チャネルをネゴシエートするために使用されます。

サポートされるReal Data Transport(RDT)は、rtp/avp、rtp/avp/udp、x-real-rdt、x-real-rdt/udp、およびx-pn-tng/udpです。

FWSMは、セットアップ応答メッセージをステータス コード200によって解析します。FWSMよりも外部にあるサーバからの応答メッセージを着信させるには、サーバからの着信接続用にダイナミック チャネルをオープンする必要があります。応答メッセージを発信する場合は、FWSMでダイナミック チャネルをオープンする必要はありません。

RFC 2326は、SETUP応答にクライアント ポートとサーバ ポートを含めることを規定していないので、FWSMでステートを保持し、SETUPメッセージ内のクライアント ポートを記憶しておく必要があります。QuickTimeでは、SETUPメッセージにクライアント ポートが設定され、サーバはサーバ ポートでのみ応答します。


 

RTSPインスペクション エンジンを設定するには、次のコマンドを入力します。

FWSM/contexta(config)# fixup protocol rtsp [port[-port]]
 

デフォルトのポートは554(TCP)です。


 

Cisco IP/TVを使用する場合には、RTSP TCPポート554およびTCP 8554を次のように設定します。

FWSM/contexta(config)# fixup protocol rtsp 554
FWSM/contexta(config)# fixup protocol rtsp 8554
 

RTSPインスペクション エンジンには、次の制限が適用されます。

FWSMでは、UDPポートを通過するRTSPメッセージは検査されません。

FWSMでは、着信RTSP接続は検査されません。

FWSMは、RealNetworksマルチキャスト モード(x-real-rdt/mcast)をサポートしていません。

FWSMは、RTSPのPATおよび外部NATをサポートしていません。

FWSMでは、RTSPメッセージがHTTPメッセージ内に隠されている場合、HTTPクローキングを認識できません。

FWSMでは、RTSPメッセージ上でNATを実行できません。組み込みIPアドレスが、HTTPまたはRTSPメッセージの一部であるSession Description Protocol(SDP)ファイル内に含まれているからです。パケットは分割されることがあります。FWSMは、分割されたパケットに対してはNATを実行できません。

Cisco IP/TVを使用する場合、FWSMがメッセージのSDP部分で実行する変換数は、Content Manager内のプログラム リスト数に比例します(各プログラム リストには最低6つのIPアドレスが組み込まれています)。

Apple QuickTime 4またはRealPlayerについては、NATを設定できます。Cisco IP/TVは、ViewerおよびContent Managerが外部ネットワーク上にあり、サーバが内部ネットワーク上にある場合に限り、NATをサポートします。

RealPlayerを使用する場合は、トランスポート モードを正しく設定することが重要です。FWSMでは、サーバからクライアントに、またはクライアントからサーバに、 access-list コマンド ステートメントを追加します。RealPlayerでは、 Options > Preferences > Transport > RTSP Settings をクリックして、トランスポート モードを変更します。

RealPlayerでTCPモードを使用する場合は、 Use TCP to Connect to Server および Attempt to use TCP for all content のチェックボックスを選択します。FWSMでインスペクション エンジンを設定する必要はありません。

RealPlayerでUDPモードを使用する場合は、 Use TCP to Connect to Server および Attempt to use UDP for staticl content のチェックボックスを選択します。さらに、FWSMでRTSPインスペクション エンジンを設定します。

SIPインスペクション エンジン

デフォルトでは、TCPおよびUDPポート5060でイネーブルに設定されます。

Session Initiation Protocol(SIP)は、Internet Engineering Task Force(IETF)に定義されているように、コール処理セッションを実現します。特に、二者間オーディオ会議または「コール」に使用されます。

ここでは、次の内容について説明します。

「SIPインスペクション エンジンの設定」

「SIPの概要」

「技術的なバックグラウンド」

SIPインスペクション エンジンの設定

SIPインスペクション エンジンを設定するには、次のコマンドを入力します。

SIP TCPインスペクション エンジンを設定するには、次のコマンドを入力します。

FWSM/contexta(config)# fixup protocol sip [port[-port]]
 

デフォルトのポートは5060(TCP)です。

SIP UDPインスペクション エンジンを設定するには、次のコマンドを入力します。

FWSM/contexta(config)# fixup protocol sip udp
 

デフォルトのポートは5060(UDP)で、唯一の使用可能ポートです。

SIPの概要

SIPは、SDPと連携してコール シグナリングを処理します。SDPは、メディア ストリームのポートを特定します。このインスペクション エンジンは、次のタイプのSIPメッセージをサポートしています。FWSMでは、その他のメッセージ タイプも許可されますが、検査の対象にはなりません。

(RFC 3261で再定義された)RFC 2543のメッセージのメッセージ:

INVITE

ACK

BYE

CANCEL

REGISTER

応答 1xx、2xx、3xx、4xx、5xx、6xx

RFC 2976のメッセージ:

INFO

RFC 3265のメッセージ:

SUBSRIBE

NOTIFY

RFC 3428のメッセージ:

MESSAGE

FWSM経由のSIPコールをサポートするために、FWSMはメディア接続アドレス、メディア ポート、およびメディアの初期接続を検査します。メディア ストリームは、シグナリングが既知の宛先ポート(UDP/TCP 5060)に送信される間にダイナミックに割り当てられるからです。また、SIPは、IPパケットのユーザ データ部分にIPアドレスを組み込みます。SIPインスペクション エンジンは、これらの組み込まれたIPアドレスに対してNATを適用します。同じセキュリティ インターフェイス間のNAT、または外部NATはサポートされません。

技術的なバックグラウンド

SIPインスペクション エンジンは、SIPのテキスト ベースのメッセージでNATを実行し、メッセージのSDP部分のコンテンツの長さを再計算し、さらにパケット長とチェックサムを再計算します。また、SIPメッセージのSDP部分に指定されたポートのメディア接続をダイナミックにオープンします。エンドポイントは、そのアドレス/ポート上で待ち受けるからです。

SIPインスペクション エンジンには、コールおよび送信元と宛先を識別するため、SIPペイロードからの情報を追跡するデータベースがあります。このデータベースには、SDPメディア情報フィールドに含まれていたメディア アドレスとメディア ポート、およびメディアのタイプが保管されます。1つのセッションに複数のメディア アドレスとポートが存在することもあります。RTP/RTCP接続は、これらのメディア アドレス/ポートを使用して2つのエンドポイント間でオープンされます。初回のコール セットアップ(INVITE)メッセージには、既知ポート5060を使用する必要があります。ただし、以降のメッセージには、このポート番号を含める必要はありません。SIPインスペクション エンジンは、シグナリング接続ピンホールをオープンし、これらの接続をSIP接続としてマークします。これは、メッセージにSIPを適用し、NATを実行するためです。

コールがセットアップされると、SIPセッションは、接続先エンドポイントからの応答メッセージにより、接続先エンドポイントが待ち受けるRTPポートを示すメディア アドレスとメディア ポートを受信するまで、「一時的な」ステートであるとみなされます。1分以内に応答メッセージを受信しなかった場合、そのシグナリング接続は切断されます。

最終ハンドシェイクが完了すると、コール ステートがアクティブになり、BYEメッセージを受信するまで、シグナリング接続が持続されます。

内部エンドポイントから外部エンドポイントにコールを開始する場合には、内部エンドポイントからのINVITEメッセージに指定される内部エンドポイントのメディア アドレスおよびメディア ポートにRTP/RTCP UDPパケットが転送されるように、外部インターフェイスに対してメディア ホールがオープンされます。内部インターフェイスへの非送信請求RTP/RTCP UDPパケットは、FWSMの設定で具体的に許可されている場合を除き、FWSMを通過しません。

メディア接続は、接続が休止してから2分以内に切断されます。ただし、このタイムアウトの値は変更できるので、より短い(または長い)時間を設定できます。『 Catalyst 6500 Series Switch and Cisco 7600 Series Router Firewall Services Module Command Reference 』の timeout コマンドの説明を参照してください。

Skinnyインスペクション エンジン

デフォルトでは、TCPポート2000でイネーブルに設定されます。

Skinny(またはSimple)Client Control Protocol(SCCP)は、VoIPネットワークで使用されるプロトコルです。


 

Skinnyインスペクション エンジンを設定するには、次のコマンドを入力します。

FWSM/contexta(config)# fixup protocol skinny [port[-port]]
 

デフォルトのポートは2000(TCP)です。


 

ここでは、次の内容について説明します。

「Skinnyの概要」

「分割されたSkinnyパケットの問題」

Skinnyの概要

Skinnyを使用するCisco IP Phoneは、H.323環境と併用できます。Cisco CallManagerを使用することにより、SkinnyクライアントとH.323準拠端末を相互運用できます。FWSMは、すべてのSCCPシグナリングおよびメディア パケットが確実にFWSMを通過できるように、SCCPシグナリング パケットのNATを提供します。このインスペクション エンジンは、同じセキュリティ インターフェイス間のNATをサポートしていません。

5つのバージョンのSCCPプロトコルがサポートされます。2.4、3.0.4、3.1.1、3.2、および3.3.2です。

FWSMは、DHCPオプション150および66をサポートしているので、TFTPサーバにCisco IP Phoneおよび他のDHCPクライアントの場所を送信できます。TFTPサーバは、Cisco IP Phone用のCisco CallManagerのアドレスを提供します。この機能の詳細については、「DHCPサーバの設定」を参照してください。Cisco CallManagerがCisco CallManager IPアドレスのNATを必要とするセキュリティの高いインターフェイス上にある場合、TFTPサーバはCisco CallManagerの変換前のローカル アドレスでファイルを提供するので、Cisco IP PhoneはCisco Call Managerと通信できません。IPアドレスではなくCisco CallManagerの名前を使用し、DNSサーバを使用して正しいアドレスを提供することを推奨します。DNSサーバもセキュリティの高いインターフェイス上にある場合には、FWSMはDNSインスペクション エンジンを使用して、DNS応答内のアドレスを変換します。

Cisco CallManager用のPAT変換の作成後にclear xlateコマンドを入力した場合、Cisco CallManagerの変換が完全に削除されるので、Skinnyコールを確立できなくなります。このような状況では、
Cisco IP PhoneをCisco CallManagerに登録し、FWSMを経由してコールを確立する必要があります。

分割されたSkinnyパケットの問題

FWSMでは、分割されたSkinnyパケットは正しく処理されません。たとえば、ボイス コンファレンス ブリッジを使用した場合、Skinnyパケットが分割され、FWSMによって廃棄されることがあります。Skinnyインスペクション エンジンは、各パケットを検証し、不正パケットとみなされるパケットを廃棄するからです。1つのSkinnyパケットが複数のTCPパケットに分割された場合、Skinnyインスペクション エンジンは、分割されたSkinnyパケット内の内部チェックサムが不正であると判断し、そのパケットを廃棄します。

SMTPインスペクション エンジン

デフォルトでは、TCPポート25でイネーブルに設定されます。

SMTPインスペクション エンジンは、Mail Guard機能をイネーブルにします。これにより、メール サーバが受信できるのは、RFC 821 section 4.5.1に定義された最小限の7つのコマンド(HELO、MAIL、RCPT、DATA、RSET、NOOP、およびQUIT)に制約されます。他のコマンドはすべて拒否されます。

Microsoft Exchangeサーバは、EHLOなどの拡張SMTPコマンドを使用するので、RFC 821 section 4.5.1に厳密には準拠していません。FWSMは、RFCに規定されているように、これらのコマンドをNOOPコマンドに変換し、SMTPサーバが最小限のSMTPコマンドだけを使用するように強制します。これにより、接続がFWSMを通過する際に、Microsoft OutlookクライアントとExchangeサーバで予期しない動作が発生することがあります。SMTPインスペクション エンジンをディセーブルにすれば対処できますが、この場合、Mail Guard機能による効果的な保護は得られません。


 

SMTPインスペクション エンジンを設定するには、次のコマンドを入力します。

FWSM/contexta(config)# fixup protocol smtp [port[-port]]
 

デフォルトのポートは25(TCP)です。


 

SMTPサーバは、応答コードの番号と任意の読み取り可能な文字列によって、クライアントの要求に応答します。SMTPインスペクション エンジンは、ユーザが使用できるコマンドおよびサーバが戻すメッセージを制御して、削減します。SMTPインスペクション エンジンは、3つの主要なタスクを実行します。

SMTP要求を最小限の7つのコマンド(HELO、MAIL、RCPT、DATA、RSET、NOOP、およびQUIT)に制限します。

[2]、[0]、[0]の文字を除き、サーバのSMTPバナーの文字をアスタリスクに変更します。Carriage Return(CR;復帰)およびLinefeed(LF;改行)の文字は無視されます。

SMTPコマンド応答シーケンスをモニタします。

監査追跡の生成 ― メール アドレス内の無効文字が置換された場合、監査記録108002が生成されます。詳細については、RFC 821を参照してください。

SMTPインスペクション エンジンは、コマンドと応答のシーケンスをモニタして、次の異常を検出します。

不完全なコマンド

コマンドの不正な終了(<CR><LR>で終了していない)

MAILコマンドおよびRCPTコマンドには、メールの送信者および受信者が指定されています。不正な文字が含まれていないかどうか、メール アドレスがスキャンされます。パイプライン文字(|)は削除されます(空白スペースに変更されます)。[<]および[>]は、メール アドレスを定義している場合にのみ認められます([>]の前に必ず[<]があることが前提です)。

SMTPサーバによる予期しない移行

未知のコマンドがあると、FWSMはパケット内のすべての文字をXに変更します。この場合、サーバからクライアントにエラー コードが戻されます。パケット内が変更されるので、TCPチェックサムが再計算されます。

TCPストリームの編集

コマンドのパイプライン化

SQL*Netインスペクション エンジン

デフォルトでは、TCPポート1521でイネーブルに設定されます。

SQL*Netプロトコルは、各種のパケット タイプで構成されています。FWSMは、FWSMの両側でデータ ストリームがOracleアプリケーションと一致して見えるように、これらのパケットを処理します。


 

SQL*Netインスペクション エンジンを設定するには、次のコマンドを入力します。

FWSM/contexta(config)# fixup protocol sqlnet [port[-port]]
 

デフォルトのポートは1521(TCP)です。


 

FWSMはすべてのアドレスにNATを適用し、パケット内に組み込まれているすべてのポートを検索して、SQL*Net Version 1をオープンします。

SQL*Net Version 2では、データ長が0のREDIRECTパケットの直後に送信されたすべてのDATAパケットまたはREDIRECTパケットがフィックスアップされます。

インスペクション エンジンを必要とするパケットには、ホスト/ポート アドレスが次の形式で組み込まれています。

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

SQL*Net Version 2 TNSFrameタイプ(Connect、Accept、Refuse、およびMarker)では、NAT対象アドレスを検出するためのスキャンは実行されません。また、インスペクション エンジンはパケット内に組み込まれたポートに対しては、ダイナミックな接続をオープンしません。

ペイロードのデータ長が0であるREDIRECT TNSFrameタイプの直後は、SQL*Net Version 2
TNSFrame、Redirect、およびDataパケットがスキャンされ、オープンするポートおよびNAT対象アドレスが検出されます。データ長が0のRedirectメッセージがFWSMを通過すると、次に送信されるDataまたはRedirectメッセージがNAT対象で、ポートが動的にオープンされることを示すために、接続データ構造にフラグが設定されます。Redirectメッセージに続くパケットが、前述のTNSフレームの1つだった場合には、フラグはリセットされます。

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

その他の場合には、常にSQL*Net Version 1が使用されます。TNSFrameタイプ(Connect、Accept、
Refuse、Resend、Marker、Redirect、およびData)と、すべてのパケットがスキャンされ、ポートとアドレスが検出されます。アドレスにNATが適用され、ポート接続がオープンされます。

Sun RPCインスペクション エンジン

デフォルトでは、UDPポート111でイネーブルに設定されます。

Sun Remote Procedure Call(RPC)は、Network File System(NFS)およびNetwork Information Service(NIS)など、多数のサービスに使用されています。

Sun RPCサービスは、システムの任意のポート上で実行できます。クライアントからサーバ上のRPCサーバにアクセスする場合には、サービスを実行しているポートを検出する必要があります。そのためには、既知ポート111上のポートマッパ プロセスにクエリを送信します。

クライアントからサービスのRPCプログラム番号を送信すると、ポート番号が戻されます。この時点で、クライアント プログラムは新しいポートにRPCクエリを送信します。

サーバから応答が送信されると、FWSMはこのパケットを代行受信し、そのポート上で、TCP/UDPの両方の初期接続を、短時間オープンします。クライアントがポートに接続し、接続が完全に確立されると、初期接続は失われます。クライアントからポートに再接続する場合には、クライアントは再びポートマッパ プロセスを繰り返す必要があります。または、初期接続を長時間オープンにしておくようにFWSMを設定しておけば、クライアントはキャッシュしたポート番号を使用できるので、ポートマッパ プロセスを繰り返す必要はありません。Sun RPC over TCPには、この方法が必要です。この方法を使用するのは、UDPのデフォルトの検査だけです。以下の、 rpc-server コマンドを参照してください。

RPCペイロード情報のNATまたはPATはサポートされません。NAT除外またはアイデンティティNATを使用してください。

TCP用のSun RPCインスペクション エンジンを設定するには、次のコマンドを入力します。

FWSM/contexta(config)# fixup protocol rpc [port[-port]]
 

デフォルトのポートは111(TCP)です。下記の rpc-server コマンドを同時に設定する必要があります。UDPインスペクション エンジンは、デフォルトでイネーブルに設定され、設定の変更はできません。

クライアントがSun RPCサービス(NFSまたはNIS)について、キャッシュしたポート番号を使用できるようにするには、次のコマンドを入力します。

FWSM/contexta(config)# rpc-server interface_name ip_address mask service service_type protocol {tcp | udp} port[-port] timeout hh:mm:ss
 

クライアントからSun RPCサービスを実行しているサーバへの初回接続後、クライアントはポートマッパ プロセスから提供されたSun RPCポート情報をキャッシュできます。クライアントは、以降の接続にこれらのキャッシュしたポートを使用できます。このコマンドにより、クライアントは指定された timeout に達するまで、キャッシュしたポート番号を使用できるので、ポートマッパ プロセスからのポート番号を再度要求する必要はありません。Sun RPC over TCPの場合、このコマンドは必須です。

TFTPインスペクション エンジン

デフォルトでは、UDPポート69でイネーブルに設定されます。

この設定は変更できません。

サーバとクライアント間にTFTP接続が確立されていれば、FWSMはTFTPサーバからクライアントの送信元ポートに戻されるすべてのUDP接続を許可します。

XDMCPインスペクション エンジン

デフォルトでは、UDPポート177でイネーブルに設定されます。

この設定は変更できません。

X Display Manager Control Protocol(XDMCP)のポート割り当ては、変更できません。XDMCPは、UDPポート177を使用して、確立後はTCPを使用するXセッションをネゴシエートするためのプロトコルです。

ネゴシエーションが成功した場合、Xwindowsセッションの開始時に、FWSMはTCPの逆接続を許可する必要があります。XDMCPによりセッションがネゴシエートされると、初回のTCP接続を処理するために1つの初期接続が作成され、そのあとで確立されたルールが参照されます。

X Windowsのセッション中は、管理者は既知ポート6000 + n上のXserverのディスプレイと通信します。各ディスプレイをXserverへの個別の接続にするには、次の端末設定を行います。

setenv DISPLAY Xserver:n
 

n は、ディスプレイの番号です。

XDMCPを使用すると、必要に応じてFWSMがNATを適用できるIPアドレスを使用して、ディスプレイがネゴシエートされます。XDCMPインスペクション エンジンは、PATをサポートしていません。