FTPS コンポーネントにもこの Passive プロパティが存在していますが、V6 製品では Passive に false を設定しても必ず PASSIVE モードで接続されます。これはファイアウォール使用時に SSL 接続を PORT モードで行うことは困難だからです。(特に NAT ファイアウォールの場合、リモート側からのデータコネクションで使用するポートを特定することが困難。) このため、SSL 製品のFTPS コンポーネントでは Passive プロパティは互換性のため残したまま、その値の如何にかかわらず常に Passive モードで接続するようになっていました。
ただし、SSL V8 製品では再び Passive プロパティの設定が有効となり、SSL 製品でも PORT モードと PASV モードを選択使用することが可能となっています。これは、Config() で上記の問題に対応できるようになったためです。このために使用する設定は以下の通りです。
- ftp.Config("PortRange=...");
- ftp.Config("ActiveModePORTAddress=...");
PortRange 設定により FTPS コンポーネントが PORT モード時にリスンする TCP/IP ポートの範囲を指定し、ActiveModePORTAddress 設定により、PORT コマンドのパラメータとしてサーバ側に通知する IP アドレスとポートを設定します。これにより、PORT コマンドでサーバに通知するアドレスとポートをクライアント PC のものではなくファイアウォールの外側アドレス (およびポート) を設定することが可能となります。そして、ファイアウォールの当該インターフェイスおよびポートへの外部からの接続を、当該クライアントにフォワードするように設定します。
以上により、ファイアウォールがパケットの書き換えを行うことなく外部のサーバと FTP(S) の PORT モード接続を行うことが可能となります。
各設定の詳細については、製品添付のヘルプをご参照ください。
0 件のコメント:
コメントを投稿