SSL/TLS セキュア FTP によるファイアウォールのトラバース

このトピックでは、ネットワーク・アドレス変換 (NAT) とファイアウォールのフィルター操作の両方を使用して、SSL/TLS によって保護された FTP セッションの使用を可能にする FTP の機能について説明します。

FTP は、ファイルの転送に以下の TCP 接続を必要とします。

  • 制御接続
  • データ接続

制御接続は、FTP クライアントから FTP サーバー (デフォルト・ポート 21) へ確立されます。データ接続は、FTP クライアントから FTP サーバーへ、または FTP サーバーから FTP クライアントへ確立されます。この方向は、クライアントが、アクティブ・モードまたはパッシブ・モードのどちらの FTP を選択したかに基づきます。

  • アクティブ・モード

    アクティブ・モードの FTP では、データ接続が FTP サーバーから FTP クライアントへ確立されます。これは、制御接続とは逆の方向となります。アクティブ・モードのデータ接続は、サーバー・ホスト上のウェルノウン・ポート (デフォルト・ポート 20) からクライアント・ホスト上の一時ポートへ確立されます。

  • パッシブ・モード

    パッシブ・モードの FTP では、データ接続は、FTP クライアントから FTP サーバーへ確立されます。これは、制御接続と同じ方向となります。データ接続は、サーバー・ホスト上の一時ポートからクライアント・ホスト上の一時ポートへ確立されます。

    パッシブ・モードは、ファイアウォール・フレンドリーな FTP とも呼ばれます。インターネット FTP サーバーに接続するイントラネット FTP クライアントは、企業ファイアウォールを介してアウトバウンドへの接続を確立することができますが、ファイアウォールを介してインバウンドへの接続を確立することはできません。パッシブ・モードでは、制御接続とデータ接続の両方が、インターネットへのファイアウォールを介してアウトバウンドへ確立されます。

FTP クライアント・ユーザーは、使用するモードを決定します。アクティブ・モードがデフォルトですが、ユーザーは通常はパッシブ・モードへ変更することができます。z/OS® FTP クライアント・ユーザーは、NOFWFRIENDLY パラメーターおよび FWFRIENDLY パラメーターを指定して LOCSITE サブコマンドを発行することで、アクティブ・モードとパッシブ・モードとを切り換えることができます。

アクティブ・モードおよびパッシブ・モードの FTP はいずれも、制御接続を介して IP アドレスとポート情報の交換を必要とします。アクティブ・モードの場合、FTP クライアントは PORT コマンドを送信して、データ接続の確立のためにサーバーが接続する必要がある IP アドレスとポート番号を指定します。パッシブ・モードの場合、FTP クライアントは PASV コマンドをサーバーに送信します。サーバーは、データ接続の確立のためにクライアントが接続する必要がある IP アドレスとポート番号を指定して応答します。

ファイアウォールは、多くの場合 FTP を認識しています。ファイアウォールは FTP 制御接続を介したやりとりをモニターし、データ接続が確立される予定の IP アドレスおよびポート番号を確認します。NAT ファイアウォールは、PORT コマンド上または PASV 応答内の IP アドレスを変更します。ファイアウォールをフィルタリングすると、データ接続の確立を可能にするために IP アドレスとポート情報に基づく動的フィルターがインストールされます。

FTP で SSL/TLS 使用する場合、制御接続は通常は暗号化されます。そのため、FTP クライアントとサーバーとの間のファイアウォールは、PORT コマンドおよび PASV 応答でやりとりされるデータを確認することはできません。ファイアウォールは NAT を正常に実行できず、データ接続用の動的フィルターをインストールできません。その結果、データ接続が失敗する可能性が非常に高くなります。

z/OS FTP には、そのようなファイアウォールを介した FTP セッションを可能にすることを特に目的とする以下の機能のサポートが含まれています。

  • 拡張パッシブ・モード (EPSV)

    拡張パッシブ・モードの処理は、パッシブ・モードに非常によく似ています。クライアントは PASV コマンドをサーバーに送信する代わりに、EPSV コマンドをサーバーに送信します。サーバーの EPSV 応答には、ポート番号のみが含まれます。クライアントは常に、制御接続に使用したのと同じ IP アドレスをデータ接続に使用します。z/OS FTP クライアント・ユーザーは、IPv4 接続の場合、EPSV4 パラメーターおよび FWFRIENDLY パラメーターを指定して LOCSITE サブコマンドを発行することで拡張パッシブ・モードに切り換えます。また、これらのオプションを、z/OS FTP クライアントの FTP.DATA ファイルで構成することもできます。

    EPSV では、NAT ファイアウォールを介して SSL/TLS で保護されたセッションは許可されます。しかし EPSV 単独では、動的フィルターも実装するファイアウォールを介して SSL/TLS で保護された FTP セッションは許可されません。

  • PASSIVEIGNOREADDR 構成オプション

    この z/OS FTP クライアント・オプションは、z/OS FTP クライアントに、FTP がパッシブ・モードの場合に PASV 応答内の IP アドレスを無視してポート番号のみを使用するように指示します。 クライアントはデータ接続に、FTP サーバーへのログインに使用したのと同じ IP アドレスを使用します。z/OS FTP クライアント・ユーザーは、PASSIVEIGNOREADDR オプションを指定して LOCSITE サブコマンドを発行することで、このサポートを使用可能にします。また、このオプションを z/OS FTP クライアントの FTP.DATA ファイルで構成することもできます。

    PASSIVEIGNOREADDR 構成は、NAT ファイアウォールを介して SSL/TLS によって保護されたセッションを、拡張パッシブ・モードと同じ方法で、同じ制限に従って可能にします。 サーバーが EPSV コマンドをサポートしていない場合は、PASSIVEIGNOREADDR オプションを使用できます。

  • PASSIVEDATAPORTS ステートメント (FTP.DATA 内)

    この z/OS FTP サーバー・オプションを使用すると、z/OS FTP サーバーが PASV および EPSV 応答でパッシブ・モードのデータ接続のために使用できる、ポート番号の範囲を定義できます。z/OS FTP サーバー上の PASSIVEDATAPORTS ステートメントが FTP クライアントから EPSV との組み合わせで使用される場合、ファイアウォール管理者が PASSIVEDATAPORTS 範囲内の 1 つ以上のポートへのアクセスを FTP データ接続に許可する、静的フィルター規則を追加すれば、2 つの手法は一緒に、静的 IP フィルターも実装する NAT ファイアウォールを介して SSL/TLS で保護された FTP セッションを許可します。

  • クリア・コマンド・チャネル (CCC) コマンド

    SSL/TLS セキュリティーを無効にするには、SSL/TLS によって保護された制御接続で CCC コマンドを使用します。制御接続は SSL/TLS によって保護された状態で開始され、ユーザー ID とパスワードまたはパスワード・フレーズをサーバーとやりとりするまで、その方法が維持されます。その時点で、FTP クライアントはサーバーに CCC コマンドを送信できます。それにより、制御接続に対して SSL/TLS が無効になり、PORT コマンドおよび PASV と EPSV コマンドへの応答が、制御接続において暗号化されていないデータでやりとりされます。これらのやりとりが暗号化されていないデータで行われると、FTP クライアントと FTP サーバーの間のファイアウォールは、接続が SSL/TLS で保護されていない場合と同様に、NAT 処理および動的フィルター処理を実行できます。CCC コマンドは、データ接続に対するセキュリティーをオフにすることはできません。

    z/OS FTP サーバーでの CCC コマンドの受け入れを可能にするには、FTP サーバーで TLSRFCLEVEL RFC4217 または TLSRFCLEVEL CCCNONOTIFY を構成します。

    z/OS FTP クライアントでの CCC コマンドのサポートを可能にするには、FTP クライアントで TLSRFCLEVEL RFC4217 または TLSRFCLEVEL CCCNONOTIFY を構成し、クライアントの TLSRFCLEVEL 値をサーバーの TLSRFCLEVEL 値とマッチングさせます。TLSRFCLEVEL 値を変更するには、LOCSITE サブコマンドを使用します。z/OS FTP クライアントで TLSRFCLEVEL RFC4217 または TLSRFCLEVEL CCCNONOTIFY が構成されている場合は、FTP サーバーにログインした後に CCC サブコマンドを使用して、FTP サーバーに CCC コマンドを送信します。

使用するサポートは、ご使用のネットワーク・トポロジーによって異なります。以下のシナリオは、お客様のネットワークで、SSL/TLS によって保護された FTP セッションを確実に実現するために検討する、いくつかの選ばれたシナリオです。これらのシナリオは、z/OS が、セキュア FTP セッションの 1 つ以上のエンドポイントであることを前提としています。パートナー・エンドポイントとしては、z/OS、または z/OS と同じ RFC レベル (主に RFC 4217) をサポートする市場にある任意のセキュア FTP 製品を使用できます。

  • 図 1 で示すように、ファイアウォールは NAT のみ (フィルター操作は最小限、またはなし) を実行しています。FTP クライアントは NAT ファイアウォールの背後にあるプライベート・ネットワーク内にあり、FTP サーバーはインターネットなどのパブリック・ネットワーク上にあります。
    図 1. SSL/TLS で保護された FTP セッションのシナリオ 1
    ファイアウォールは NAT のみを実行します。
FTP クライアントはプライベート・ネットワーク内にあり、FTP サーバーはパブリック・ネットワーク内にあります。

    標準のパッシブ・モード (PASV) は、通常はこのようなシナリオで機能します。拡張パッシブ・モード (EPSV) も機能しますが、一般的には必要とされません。

  • 図 2 で示すように、ファイアウォールは NAT のみ (フィルター操作は最小限、またはなし) を実行しています。FTP クライアントと FTP サーバーは、別のプライベート・ネットワーク内にあり、パブリック・ネットワークを介して接続されています。クライアント・ネットワークとサーバー・ネットワークの間に 2 つの NAT ファイアウォールがあります。
    図 2. SSL/TLS で保護された FTP セッションのシナリオ 2
    ファイアウォールは NAT のみを実行。プライベート・ネットワーク内のクライアントとサーバー。2 NAT ファイアウォール。パブリック・ネットワークを介して接続されたネットワーク

    パートナーのセキュア FTP 製品が拡張パッシブ・モードをサポートしている場合は、FTP クライアントから拡張パッシブ・モード (EPSV) を使用します。 FTP クライアントが z/OS FTP クライアントで、パートナーのセキュア FTP サーバー製品が EPSV をサポートしていない場合は、z/OS FTP クライアントで PASSIVEIGNOREADDR オプションを構成して、EPSV 処理をシミュレートします。

  • ファイアウォールは NAT および静的フィルター操作 (定義済みフィルター規則) を実行しています。図 3 で示すように、FTP クライアントは NAT ファイアウォールの背後にあるプライベート・ネットワーク内にあり、z/OS FTP サーバーはインターネットなどのパブリック・ネットワーク上にあります。
    図 3. SSL/TLS で保護された FTP セッションのシナリオ 3
    プライベート・ネットワーク内の FTP クライアントがパブリック・ネットワーク内の FTP サーバーと接続する場合、ファイアウォールは NAT および静的フィルター操作を実行します。

    z/OS FTP サーバーの FTP.DATA ファイルで PASSIVEDATAPORTS ステートメントを使用して、z/OS FTP サーバーがデータ接続に使用できるポート番号の範囲を事前定義します。ファイアウォール管理者は、パッシブ・データ・ポート範囲に対して静的フィルター規則を追加する必要があります。標準のパッシブ・モード (PASV) は、通常はこのようなシナリオで機能しますが、FTP クライアントによってサポートされている場合は拡張パッシブ・モード (EPSV) も使用できます。

  • ファイアウォールは NAT および静的フィルター操作 (定義済みフィルター規則) を実行しています。図 4 で示すように、FTP クライアントと z/OS FTP サーバーは、別のプライベート・ネットワーク内にあり、パブリック・ネットワークを介して接続されています。クライアント・ネットワークとサーバー・ネットワークの間に 2 つの NAT ファイアウォールがあります。
    図 4. SSL/TLS で保護された FTP セッションのシナリオ 4
    異なる複数のプライベート・ネットワーク内でのクライアント/サーバーの接続時の、パブリックで接続され、NAT と静的フィルター操作を行う 2 つのファイアウォール

    z/OS FTP サーバーの FTP.DATA ファイルで PASSIVEDATAPORTS ステートメントを使用して、z/OS FTP サーバーがデータ接続に使用できるポート番号の範囲を事前定義します。ファイアウォール管理者は、パッシブ・データ・ポート範囲に対して静的フィルター規則を追加する必要があります。この場合は、拡張パッシブ・モードを使用する必要があります。FTP クライアントが拡張パッシブ・モードをサポートしていない場合は、このシナリオが機能する可能性は低くなります。

  • 図 5 で示すように、ファイアウォールは動的フィルター操作 (NAT ありまたはなし) を実行し、パートナーのセキュア FTP 製品は CCC コマンドをサポートしています。
    図 5. SSL/TLS で保護された FTP セッションのシナリオ 5
    パブリック・ネットワークで接続された 2 つのファイアウォールが、異なる複数のプライベート・ネットワーク内のクライアント/サーバー接続において、動的フィルター操作を実行する

    FTP クライアントから CCC コマンドを使用します。このシナリオは、CCC コマンドがサポートされていない場合は適用できない可能性があります。

  • 図 6 で示すように、ファイアウォールの実行内容を把握しておらず、パートナーのセキュア FTP 製品は CCC コマンドをサポートしています。
    図 6. SSL/TLS で保護された FTP セッションのシナリオ 6
    パブリック・ネットワークで接続された 2 つのファイアウォールが、異なる複数のプライベート・ネットワーク内のクライアント/サーバー接続において、不明のフィルター操作を実行する

    FTP クライアントから CCC コマンドを使用します。このシナリオは、CCC コマンドがサポートされていない場合は適用できない可能性があります。

以下のその他のシナリオでは、ファイアウォールは、SSL/TLS によって保護された FTP セッションを拒否します。

  • 一部のファイアウォールは、FTP 制御接続のデータ・ストリームにおいてさまざまな妥当性検査を適用することが知られています。 ある既知の検査では、FTP 制御接続におけるすべてのやりとりが ASCII 改行 (NL) 文字で終わることを検査します。制御接続が SSL/TLS で保護されている場合は、データが暗号化されているため、これらの検査のほとんどは失敗します。このトピック内の情報を使用してもまだ、ファイアウォールを介して SSL/TLS によって保護された FTP セッションの確立に問題がある場合は、ファイアウォール管理者にファイアウォールが FTP 制御接続に関してこのような妥当性検査を実装しているかどうかを確認し、それらの妥当性検査を無効にすることを検討してください。
  • 一部のファイアウォールは、デフォルトでアクティブ・モードのデータ接続が無効になっており、アクティブ・モードのすべてのデータ接続をブロックすることが知られています。代わりにパッシブ・モードまたは拡張パッシブ・モードの FTP を使用してください。
  • 多くのファイアウォールは、TCP 接続上のアクティビティーをモニターし、一定期間アイドル状態の接続を終了します。FTP データ接続を介した大容量データ転送の間は、FTP 制御接続はアイドル状態となります。アイドル状態の FTP 接続をファイアウォールが終了しないようにするには、クライアントまたはサーバーの z/OS FTP.DATA ファイルに FTPKEEPALIVE ステートメントをコーディングすることを検討してください。FTPKEEPALIVE ステートメントについての詳細は、FTP 用の PROFILE.TCPIP の構成を参照してください。