SSH Communications Security
PreviousNextUp[目次] [Index]

    著作権表示
    お問合せ先
    本書について>>
    SSH Tectia Clientのインストール >>
    はじめに >>
    SSH Tectia Client の構成 >>
    リモート ホストに接続する>>
    ファイルの転送>>
    アプリケーションのトンネリング>>
        メールのためのトンネリングのセットアップ方法 >>
        FTPのためのトンネリングの設定方法 >>
            SSH Tectia Client の設定
            FTPクライアントの設定
            FTPフォワーディング
    GUIリファレンス>>
    トラブルシューティング >>
    コマンドラインツール >>

FTPフォワーディング

FTPフォワーディングは一般的なポートフォワーディング機構の拡張です。 FTPコントロールチャネルは一般的なポートフォワーディングを利用して セキュアにできます。しかし、FTPプロトコルはファイル転送のために別の TCP接続の作成を要求しますが、一般的なポートフォワーディングを 使用した場合にはファイル転送用の接続の方は自動的にはフォワーディング されないため、すべてのファイルは暗号化されずに転送されてしまいます。

ファイル転送の接続も保護するには、FTPフォワーディングを使用する必要が あります。 これは一般的なポートフォワーディングとほぼ同様の動作をします が、 FTPフォワーディングは FTPコントロールチャネルを監視し、要求があったときに データチャネルのための新しいポートフォワーディングを動的に作成する、 という点が異ります。

TCPポート 21 番は、FTPセッションのためにクライアントがリモートサーバ と確立する接続のためのポートです。 FTPサーバトラフィックが適切な機構で送り返されることを 保証する手段としてのみ使用されるため、クライアント側に割当られる TCPポートは毎回同じではありません。

これは、複数のユーザが同じサーバに FTP でファイルを転送する状況に おいて重要です。 ユーザのマシンがファイアウォールのような NAT デバイスの背後に置かれて いる場合、サーバに送られるすべてのパケットは同じマシンから来ている ように見えます。 各クライアントに動的なポート番号を与えると、ファイアウォールは返り パケットを正しいユーザに送付することができるようになります。

この動的に生成されたポートがいかにしてフォワーディングを行うかを 正確に理解するには、FTPプロトコルのアクティブモード、パッシブモード という2つの異なるケースを調べる必要があります。

パッシブモードにおけるFTP

パッシブモードでは、FTPクライアントは PASV コマンドを サーバに送ります。これは、データチャネルのためにリスナーポートを 開くことによって行われ、リスナーのIPアドレスとポート番号が 返答としてクライアントに送られます。 返答は、227 Entering Passive Mode (10,1,60,99,6,12)の形式を 持ちます。

SSHクライアントが PASV コマンドへの返答を見つけると、 リプライにある接続先へローカルポートフォワーディングを生成します。 この後、クライアントは返答の中の IPアドレスとポート番号を 新しく作成されたローカルポートフォワーディング (これは常にlocalhostアドレス中にある 127.0.0.1)を指すように 書き換えてから、返答をFTPクライアントへ受渡します。 FTPクライアントは返答に基いて データがSSH接続を経由するような データチャネルをFTPサーバがオープンしたリスナーに対して開きます。 SSHとFTPのサーバが異なるマシン上にあったとしても、結果的に SSHサーバからFTPサーバへの区間を除くすべての経路においてデータチャネルは セキュアです。

ポートフォワーディングはアドレスlocalhostに対して開かれる ので、パッシブモードが使われる場合、FTPクライアントはSSHクライアント と同じマシン上で動作する必要があります。

アクティブモードにおける FTP

アクティブモードでは、FTPクライアントはFTPサーバからFTPクライアントへの データチャネルのためのローカルポート上のリスナーを生成し、 PORT 10,1,60,99,6,12のような形式のコマンドでFTPサーバへ IPアドレスとポート番号を送ってチャネルを要求します。 SSHクライアントはこのコマンドを横取りし、SSHサーバlocalhostアドレス から、PORTコマンドの中にあるアドレスとポートへの リモートポートフォワーディングを生成します。

ポートフォワーディングの生成後、SSHクライアントは SSHサーバ上に新しく 開いたリモートフォワーディングを指すようにPORTコマンドの 中のアドレスとポートを書換え、FTPサーバへ送ります。 FTPサーバはPORTコマンドの中にあるアドレスとポートへ、 SSH接続を経由してデータがフォワードされるデータチャネルを開きます。 SSHクライアントはFTPクライアントによって生成されたオリジナルのリスナー へ受信データを通過させます。 結果的にSSHクライアントからFTPクライアントへの区間を除くすべての経路に おいてデータチャネルはセキュアです。 この一連の動作はすべてのデータチャネルに対して自動的に行われます。

ポートフォワーディングは SSHサーバマシン上のアドレス localhostに作られるため、アクティブモードが使われる場合、 FTPサーバはSSHサーバと同じマシン上で動作する必要があります。

FTPデータチャネルがエンド間暗号化が必要な場合、FTPサーバとSSHサーバ は同じホスト上に存在する必要があり、また FTPクライアントと SSHクライアントも同様に同じホスト上に存在する必要があります。 この場合、アクティブモードとパッシブモードの両方が利用できます。

注意 FTPフォワーディングの代りに、sftp2 あるいは scp2 (see 「SCP2 の書式」) を使用したセキュアファイル転送を検討ください。 sftp-server2サブシステムがサーバ上にすでに存在する場合に FTPフォワーディングよりも要求される接続数が少なくて済みます。 また、sftp2scp2のクライアントは配布物に 含まれています。

PreviousNextUp[目次] [Index]


[ サポート | フィードバック | SSH ホーム ページ | SSH 製品 ]

Copyright © 2005 SSH Communications Security Corp.
All rights reserved.