Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
16.2. FTP
ファイル転送プロトコル (FTP
) は、今日インターネット上で見られる、最も古く、一般的に使用されているプロトコルです。この目的は、ユーザーがリモートホストに直接ログインしなくても、もしくはリモートシステムの使用法についての知識がなくとも、ネットワーク上のコンピューターホスト間で確実にファイルを転送することです。これにより、ユーザーは、標準の簡単なコマンドセットを使用してリモートシステム上のファイルにアクセスすることができます。
本セクションでは、FTP
プロトコルの基本および Red Hat Enterprise Linux で推奨される FTP
サーバーの vsftpd
について概説します。
16.2.1. ファイル転送プロトコル (FTP)
FTP は、クライアント/サーバーアーキテクチャーを使用し、TCP
ネットワークプロトコルを使用してファイルを転送します。FTP
は古いプロトコルであることから、暗号化されていないユーザー名とパスワード認証を使用します。このため、安全でないプロトコルとみなされており、絶対的に必要でない限り、使用するべきではありません。しかし、FTP
はインターネット上で非常に普及しているので、共有ファイルの公開で必要となる場合がよくあります。このため、システム管理者は、FTP
プロトコルの特性を認識しておくべきです。
本セクションでは、 vsftpd を設定して TLS
による安全を確保する接続の確立方法と、SELinux を用いて FTP
サーバーを安全にする方法を説明しています。FTP
の代用となるのは、OpenSSH スイートからの sftp です。OpenSSH の設定方法および SSH
プロトコル全般に関する情報は、12章OpenSSH を参照してください。
インターネット上で使用されているほとんどのプロトコルとは異なり、FTP
が正しく機能するためには複数のネットワークポートを必要とします。FTP
クライアントアプリケーションが FTP
サーバーへの接続を開始する際に、コマンドポートとして知られるポート 21 をサーバー上で開きます。このポートは、すべてのコマンドをサーバーに発行するために使用されます。サーバーから要求されたデータはいずれも データポート を介してクライアントに返されます。データ接続が開始されるデータ接続用ポートの番号は、クライアントが active または passive のモードでデータを要求するかによって異なります。
これらのモードの定義は以下のとおりです。
- アクティブモード
-
アクティブモードは、
FTP
プロトコルでクライアントへのデータ転送に使用される独自の方法です。FTP
クライアントがアクティブモードのデータ転送を開始すると、サーバーは、サーバー上のポート 20 からクライアントの指定するIP
アドレスと、ランダムで権限のないポート (1024 以上) への接続を開きます。この方法では、クライアントマシンがポート 1024 以上での接続を受け入れるように許可されている必要があります。インターネットのようなセキュリティー保護されていないネットワークが増加するにともない、ファイアウォールを使用したクライアントマシンの保護が普及しています。このようなクライアント側のファイアウォールは、アクティブモードのFTP
サーバーから着信する接続を拒否する場合が多いため、パッシブモードが考案されました。 - パッシブモード
パッシブモードはアクティブモードと同様に、
FTP
クライアントアプリケーションによって開始されます。サーバーからのデータを要求する際に、FTP
クライアントはパッシブモードでデータにアクセスしたいことを知らせると、サーバーはサーバー上のIP
アドレスとランダムな非特権ポート (1024 以上) を提供します。クライアントは、サーバー上のそのポートに接続して要求した情報をダウンロードします。パッシブモードは、クライアント側のファイアウォールによるデータ接続障害の問題を解決しますが、サーバー側のファイアウォール管理を複雑化させてしまう場合があります。
FTP
サーバー上の特権のないポートの範囲を制限することにより、サーバー上で開いておりポート数を減らすことができます。またこの方法により、サーバーを対象としたファイアウォールのルール設定の手順が簡略化されます。