bT006 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ルータを導入したらFTPサイトが表示できなくなった。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PASVモードに設定する。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FTPとは「Fi1e Transfer Protocol」の略で、クライアントとサーバ間でファイルの転送を行う際に利用されるプロトコルです。 インターネット利用の中では、ファイルのダウンロードやWebぺージの更新などで、いまでもよく利用されています。 FTPは、HTTPなどとは異なり、「コントロール用のコネクション」と「データ転送用のコネクション」の2つのTCPコネクションを利用します。 ファイル転送に特化したプロトコルであることから、HTTPよりもスビードの面で優れています。 しかし、セキュリティの面では不安な点もあります。 このFTPの仕組みやセキュリティについて解説します。 先述したように、FTPは2つのコネクションを利用しています。 一つは、コントロール用のコネクションで、FTPクライアントからのコマンドの送信と、FTPサーバからコマンドに対する返答を受け取るために使用される。 そしてもう一つは、データ転送用のコネクションで、データ転送を行います。 なお、データ転送用のコネクションは、転送ごとに新たに確立されます。 具体的にはFTPサーバとのユーザー認証やファイルのダウンロード要求などでコントロール用のコネクションが利用され、 実際にデータを送受信するのはデータ転送用コネクションが使われてます。 通常、コントロール用コネクションはFTPサーバのポート21番、データ転送用コネクションはポート20番を使用します。 FTPによるデータ転送は、コントロール用コネクションの確立から始ます。 まず、FTPクライアントがFTPサーバに対し接続要求を行う。 それにポート21番が利用される。 コネクションが確立したら、同じポートを利用してユーザー認証を行う。 FTPサーバ側からクライアントに対し、ユーザー名とパスワードを要求し、クライアント側よりユーザー名とパスワードが送信され認証が行われる。 ファイルのリスト表示やファイルの送受信を行うためには、FTPサーバとFTPクライアントの間に新たにデータ転送用のコネクションを確立する必要がある。 データ転送のコネクション確立には、2つのモードがある。 標準的なモードは「アクティブモード」と呼ばれるもので、クライアント側でデータ転送用のポートを開き、FTPサーバ側からクライアントヘのデータ転送用コネクションを確立する。 つまり「サーバ」→「クライアント」という接続になる。 2つ目のモードは、「パッシブモード」と呼ばれるモードで、クライアント側からFTPサーバのポートヘデータ転送用のコネクションを確立する。 「クライアント」→「サーバ」という接続になる。 パッシブモードは、クライアント側がファイアウォールを導入しているなど、外部からのTCP/IPの接続を遮断している場合に利用する。 そうした環境ではFTPサーバ側からのコネクションが確立できないため、パッシブモードを利用してクライアント側からデータ転送用のコネクションを確立する。 データ転送用のコネクションは動的に開かれ、データの転送が終了するたびに閉じられる。 すべてのデータ転送が終了したら、クライアントから終了の指示をFTPサーバ側へ送り、コネクションを切断する。 コマンドは、表2006 を参照して下さい。ちなみに、これらのコマンドは、FTPクライアントとFTPサーバがやり取りするために用いられるものであり、ユーザーが利用する「ls」や「get」などとは異なる。 ユーザー用のコマンドは別に用意されており、ユーザーが入力したコマンドが、これらのコマンドに置き換えられて送信されるのである。 コマンドプロンプトで、これらのコマンドを入力したい場合には「quoteport」といったように「quote」のあとに入力すれば送信できる。 また、FTPサーバによってはいくつかサポートされていないコマンドもあるため、使用できるコマンドを知りたい場合にはログインしたあとに「quotehe1p」と入力するとそのFTPサーバで使用できるコマンドが表示される。
ユーザー認証の流れ FTPクライアントからFTPサーバにログインが完了するまでを見てみよう。 下図のFTPコマンドの例を見れば分かるように、FTPクライアントとFTPサーバのTCPコネクションが確立してから、ユーザー認証が行われている。 「User(192.168.1.20:(none)):」の部分でユーザー名を要求し、「Password:」部分でパスワードが要求されている。 この例では、FTPクライアントはUSERコマンドで「USER tts」を、パスワードも同様に、PASSコマンドで「PASS heroin」を送信している。 これに対し、FTPサーバからの応答は「230 User tts logged in.」となっており、FTPサーバヘのログインが正常に完了したというステータスを返している。 FTPサーバからのステータスは、「230 User tts logged in.」のように数値と応答の文字列からなる。 「230」や「200」などの数値はプロトコルで決められたものであり、この数値からFTPクライアントはその処理が成功したのか、失敗したのかを知るわけだ。 文字列は人聞が分かりやすいように付け加えられている。
標準モードのFTPでは、接続に20番ポートと21番ポートを使用するが、20番ポートヘの接続がサーバ側から開始されるため、 ルータやファイアウォールの設定によってはFTPサイトに接続できない可能性がある。 このような場合、ルータの設定を変更するのではなく、パッシブモード(PASV モード)を利用する設定にするとよい。 Internet Explorer の場合、インターネットオプションの「詳細設定」で「パッシブFTP(ファイアウォールおよびDSLモデム互換用)を使用する」にチェックを入れる。 そのほか、ダウンロードツールなどでも、パッシブモードの設定が可能なものがある。 これらのツールを使っていてルータ導入後にダウンロードができなくなった場合は、オプション設定などを確認してみるとよいだろう。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
参考:PC Japan 2003/09 Page60、PC Japan 2003/10 Page174-175 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
△ Return |