ファイル転送プロトコル(FTP)は、今日のインターネット上で最も古く、最も一般的に 使用されるプロトコルです。その目的は、ユーザーによるリモートホストへのログインの 必要性やリモートシステムを扱う知識の必要性がなく、ネットワーク上のコンピューター ホスト間で信頼できるファイルの転送をすることです。これにより、ユーザーは標準の 簡単なコマンドセットを使用してリモートシステム上のファイルにアクセスできます。
この章では、FTP プロトコルの基本と、さらに Red Hat Enterprise Linux で配給されるプライマリー FTP サーバー用の設定オプション、vsftpdを概説しています。
FTP はクライアントサーバーのアーキテクチャを使用して、TCP ネットワーク プロトコルを利用したファイル転送をします。FTP は旧式のプロトコルの為、ユーザー名と パスワード認証に平文を使用しています。この理由で、これは安全でないプロトコルと 見なされ、絶対に必要でない限り使用すべきではありません。FTP のより良い代理使用は ツールの OpenSSH セットにあるsftp です。OpenSSH に関する 詳細情報は Red Hat Enterprise Linux システム管理ガイドの中にある OpenSSHと言う章を参照して下さい。SSH プロトコルに関する詳細情報は 第19章を参照して下さい。
しかしながら、FTP はインターネットで普及している為、しばしば公共と一緒に ファイルを共有する必要が出てきます。その為、システム管理者は FTP プロトコルの 独特の性質に付いて認知しておく必要があります。
インターネットで使用されるほとんどのプロトコルと違って FTP は的確に機能する 為に複数のネットワークポートを必要とします。FTP クライアントアプリケーションが FTP サーバーへの接続を開始する時、そのアプリケーションはサーバー上のポート21 (コマンドポートと呼ばれます)を開きます。このポートは サーバーへの全てのコマンドを発行する為に使用されます。サーバーで要求されるデータは データポートを経由して返還されます。データ接続用のポート 番号とデータ接続が開始される方法は、クライアントがデータを アクティブ モードかパッシブモードで要求するかにより、 左右されます。
以下の説明はこれらの2つの方法を示します:
アクティブモードはデータをクライアントアプリケーションに転送する為に FTP プロトコル で使用されるオリジナルの方法です。FTP クライアントによってアクティブモードの データ転送が開始された場合、サーバーはサーバー上のポート20から 該当IPアドレス及び、不定の非特権ポート(1024以上)への接続を開きます。この設定は、クライアントマシンが 1024以上のポートにはすべて、接続許可される必要があるという意味になります。インター ネットなどの不安全なネットワークが増加するに連れて、クライアントマシンを保護する ファイアウォールの使用が普及してきますが、このクライアント側のファイアウォールは多くの場合、アクティブモードの FTP サーバーからの接続を拒否する為、パッシブモードが 設定されることになります。
パッシブモードは、アクティブモードと同じく、FTP クライアントアプリケーションに よって開始されます。サーバーからデータを要求する時、FTP クライアントはパッシブ モードでデータにアクセスしたいことを示し、サーバーはサーバー上の該当IP アドレスと 不特定の非特権ポート(1024以上)を提供します。そうするとクライアントはサーバー上の そのポートに接続して要求された情報をダウンロードします。
パッシブモードがデータ接続でのクライアント側のファイアウォール干渉問題を解決 している間、サーバー側のファイアウォールの管理を複雑にする可能性があります。FTP サーバーの設定ファイル内のパッシブ接続用に提供される非特権ポートの幅を制限する ことは、サーバー上の開いたポートの数を制限し、そのサーバー用のファイアウォール規則 の作成を簡素化する方法の1つです。パッシブポートの制限に関する詳細情報については 項14.5.8を参照して下さい。