FTP ALG
ファイル転送プロトコルは、IP ネットワークでファイルを交換するために広く一般的に使用されている方法です。FTP ALG は、ポート、PASV、および 227 コマンドを監視します。必要にNAT IP、ポート、またはメッセージおよびゲートの開口部の両方でパケットの送信を実行します。
FTP ALG の概要
FTP(ファイル転送プロトコル)は、IP ネットワークを通じてファイルを交換する方法として広く一般的に使用されています。メインコントロール接続に加え、クライアントとサーバー間のデータ転送にもデータ接続が行います。ホスト、ポート、方向が制御チャネルを介してネゴシエートされます
アクティブ モード FTP の場合、Junos OS ステートフル ファイアウォール サービスは、サーバーが接続する IP アドレスとポート番号を提供する PORT コマンドについて、クライアントからサーバーへのアプリケーション データをスキャンします。パッシブモード FTP の場合、Junos OS ステートフル ファイアウォール サービスは、PASV コマンドについてクライアントからサーバーへのアプリケーション データをスキャンし、227 応答についてサーバーからクライアントへの応答をスキャンします。この応答には、クライアントが接続する IP アドレスとポート番号が含されます。
FTP は、ASCII のアドレスとポート番号を表します。その結果、アドレスとポートが書き換わると、TCP シーケンス番号が変更される可能性があります。その後、NAT サービスは、後続のすべてのパケットでシーケンス NAT を実行することで、このデルタを 1 つのアドレスと ACK 番号で維持する必要があります。
FTP ALG は、以下をサポートしています。
動的データ接続にデータ ポートとファイアウォールの権限を自動的に割り当てる
アクティブ モードとパッシブ モードの両方で制御接続を監視します。
制御パケットを適切なアドレスとポート情報NAT書き換える
ネットワーク アドレス変換、プロトコル変換(NAT-PT)
トランスポート層メカニズムとしての TLS(セキュリティの管理)
ルーティング用 IPv6 FTP ALG
FTP でのポート/PASV リクエストと対応する 200/227 応答は、ホストが FTP データ接続のためにリッスンする TCP ポートをアナウンスするために使用されます。
これらのリクエストと応答には、ETM/EPSV/229 コマンドが使用されます。FTP ALG は ELD/EPSV/229 がすでにサポートしていますが、IPv4 アドレスに対してのみです。
ソフトウェア Junos OS 10.4 では、ETM/EPSV/229 コマンドが更新され、IPv4 と IPv6 の両方のアドレスがサポートされます。
FTP ALG は、事前に保存されている 3 つのキャッシュを使用してセッション Cookie を保存します。FTP ALG で IPv4 と IPv6 の両方のアドレスがサポートされている場合、IPv6 アドレスを格納するために、セッション Cookie 構造は 256 ビット(32 バイト)で大きく変更されます。
IPv6 用 FTP ALG サポート
FTP ALG は、FTP 制御チャネル上のコマンドと応答を監視して構文的な正しさを確認し、対応するピンホールを開いて、データ チャネル接続を確立できます。リリース 10.4 Junos OS FTP ALG は、IPv4 ルーティング、IPv6 ルーティング、NAT モードのみをサポートしました。FTP ALG はJunos OS 11.2 以降のリリースでは、IPv6 NAT および NAT-PT モードもサポートしています。
FTP コマンドについて
FTP ALG は、FTP 制御チャネル上のコマンドと応答を監視して構文的な正しさを確認し、対応するピンホールを開いて、データ チャネル接続を確立できます。プロトコル Junos OS 10.4 では、FTP ALG は IPv4 ルーティングおよび NAT モード、および IPv6 ルーティング モードのみをサポートしました。FTP ALG はJunos OS 11.2 以降のリリースでは、IPv6 NAT および NAT-PT モードもサポートしています。
PORT コマンド
PORT コマンドは、アクティブ FTP モードで使用されます。PORT コマンドは、サーバーが接続するアドレスとポート番号を指定します。このコマンドを使用する場合、引数は32ビットインターネット ホスト アドレスと16ビットTCPポート アドレスの連結です。アドレス情報は 8 ビット フィールドに分割され、各フィールドの値は 10 進数として送信されます(文字列表現)。フィールドはカンマで区切られます。
次に、サンプル PORT コマンドを示します。h1 はインターネット ホスト アドレスの中で最も高い順序の 8 ビットです。
ポート h1、h2、h3、h4、p1、p2
PASV コマンド
PASV コマンドは、サーバーのデフォルト データ ポートではないデータ ポートでリッスンし、別の接続を開始するのではなく、接続を待機するサーバーに要求します。PASV コマンドへの応答には、サーバーがリッスンしているホストアドレスとポート アドレスが含まれます。
拡張 FTP コマンド
拡張 FTP コマンドは、FTP が IPv4 以外のネットワーク プロトコル用のデータ接続エンドポイント情報を通信する方法を提供します。拡張 FTP コマンドは、RFC 2428 で指定されています。RFC 2428 では、拡張 FTP コマンド ETM および EPSV に、それぞれ FTP コマンド PORT と PASV を置き換える。
ETM コマンド
ELD コマンドを使用すると、データ接続用の拡張アドレスを指定できます。拡張アドレスは、ネットワーク プロトコルだけでなく、ネットワークアドレスとトランスポート アドレスで構成する必要があります。
ELD の形式は次の形式です。
E<space><d><net-><><net-addr><d><tcp-port><d>
パラメーター |
説明 |
---|---|
net-1 |
指定されたアドレス ファミリー IANA。 |
net-addr |
ネットワーク アドレスのプロトコル固有の文字列。 |
tcp ポート |
ホストがデータ接続をリッスンしているTCPポート番号。 |
区切り 記号 |
区切り文字は、33~126 の範囲の ASCII 文字の 1 文字である必要があります。文字は「|」(ASCII 124)が推奨されます。 |
次のコマンドは、IPv4 アドレスを使用して TCP ポート 6275 でホスト 132.235.1.2 へのデータ接続を開くサーバーを指定する方法を示しています。
E|1|132.235.1.2|6275|
次のコマンドは、IPv6 ネットワーク プロトコルとネットワーク アドレスを使用してポート 5282 で TCP データ接続を開くサーバーを指定する方法を示しています。
E|2|1080:8:800:200C:417A|5282|
このモードでは、FTP ALG は ELG コマンドにのみ焦点を当て、EHOLE コマンドから IPv6 アドレスとポートを抽出し、ピンホールを開きます。
EPSVモード
EPSVコマンドは、サーバーがデータポートでリッスンして接続を待つ必要を要求します。このコマンドへの応答には、リッスン接続の TCP ポート番号だけが含まれます。
レスポンス文字列の例は次のとおりです。
Entering Extended Passive Mode (|||6446|)
拡張アドレスを使用してパッシブ モードに入る場合、対応コードは229である必要があります。229 のペイロードから TCP ポートを抽出し、ピンホールを開く必要があります。
例: FTP ALG の設定
この例では、FTP ALG 用に NAT-PT を設定する方法を示しています。
要件
開始する前に、以下を実行します。
ソース プール内のすべての IP アドレスにプロキシ ARP をNATします。
FTP 向け ALG の概念を理解する。 FTP ALG の概要 を参照してください。
概要
この例では、FTP用のLGは、複数のデバイスの反対側にあるクライアントとサーバー間でFTPトラフィックを監視し、交換ジュニパーネットワークスしています。
この例では、FTP ALG 用に NAT-PT を設定する方法を示しています。
構成
静的プールNAT ルール セットのNATの設定
CLI迅速な設定
この例のセクションを迅速に設定するには、以下のコマンドをコピーして、テキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に一致する必要がある詳細情報を変更し、コマンドを階層レベルで CLI にコピー アンド ペーストして、設定モードから を入力します。 [edit]
commit
set security nat static rule-set rs1 from zone untrust set security nat source rule-set rs-source to zone trust set security nat source rule-set rs-source rule src-nat match source-address 3333::130/128 set security nat source rule-set rs-source rule src-nat match destination-address 40.0.0.211/32 set security nat source rule-set rs-source rule src-nat then source-nat interface set security nat static rule-set rs2 from zone untrust set security nat static rule-set rs2 rule r2 match destination-address 4444::141/128 set security nat static rule-set rs2 rule r2 then static-nat prefix 40.0.0.211/32
手順
次の例では、設定階層内のさまざまなレベルに移動する必要があります。その方法の詳細については、「 CLI ガイド 」の「 設定モードでの CLI エディターの使用 」を参照してください。
ソース ポリシー プールをNATするには、以下の手順に示します。
ソース ルール、NAT ルール セットNATインターフェイス インターフェイスNAT作成します。
[edit ] user@host# set security nat source rule-set rs-source from zone untrust user@host# set security nat source rule-set rs-source to zone trust user@host# set security nat source rule-set rs-source rule src-nat match source-address 3333::130/128 user@host# set security nat source rule-set rs-source rule src-nat match destination-address 40.0.0.211/32 user@host# set security nat source rule-set rs-source rule src-nat then source-nat interface user@host# set security nat static rule-set rs2 from zone untrust user@host# set security nat static rule-set rs2 rule r2 match destination-address 4444::141/128 user@host# set security nat static rule-set rs2 rule r2 then static-nat prefix 40.0.0.211/32
ポリシーを使用NAT PT アプリケーションを関連付ける。
[edit] user@host# set security policies from-zone trust to-zone untrust policy ftp-basic match source-address any user@host# set security policies from-zone trust to-zone untrust policy ftp-basic match destination-address any user@host# set security policies from-zone trust to-zone untrust policy ftp-basic match application junos-ftp user@host# set security policies from-zone trust to-zone untrust policy ftp-basic then permit
結果
設定モードから、 コマンドを入力して設定を確認 show security nat
します。出力結果に意図した設定が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
user@host# show security nat static { rule-set rs2 { from zone untrust; rule r2 { match { destination-address 4444::141/128; } then { static-nat { prefix { 40.0.0.211/32 } } } } } }
[edit] user@host# show security policies from-zone untrust to-zone trust { policy ftp-basic { match { source-address any; destination-address any; application [ junos-ping junos-mgcp junos-ftp junos-rsh junos-h323 ]; } then { permit; } } } default-policy { permit-all; }
デバイスの設定が完了したら、設定モード commit
から を入力します。
検証
設定が正常に機能されていることを確認するには、次のタスクを実行します。
静的プール NAT セットのNAT検証
目的
FTP ALG をサポートNAT使用したソース プールとルール セットの間で適切に動作しているポリシーを検証します。
アクション
動作モードから コマンドを入力 show configuration security nat
します。