Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

21.2. FTP

FTP( File Transfer Protocol )は、現在インターネット上で見られる、最も古く、一般的に使用されているプロトコルです。この目的は、ユーザーがリモートホストに直接ログインしなくても、もしくはリモートシステムの使用法についての知識がなくとも、ネットワーク上のコンピューターホスト間で確実にファイルを転送することです。これにより、ユーザーは、標準の簡単なコマンドセットを使用してリモートシステム上のファイルにアクセスすることができます。
本セクションでは、FTP プロトコルの基本と、Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux に同梱されているプライマリー FTP サーバーである vsftpd について概説します。

21.2.1. ファイル転送プロトコル (FTP)

FTP は、クライアント/サーバーアーキテクチャーを使用し、TCP ネットワークプロトコルを使用してファイルを転送します。FTP は古いプロトコルであることから、暗号化されていないユーザー名とパスワード認証を使用します。このため、安全でないプロトコルとみなされており、絶対的に必要でない限り、使用するべきではありません。ただし、FTP はインターネット上で非常に有益であるため、共有ファイルの公開で必要となる場合がよくあります。このため、システム管理者は、FTP の固有の特性を認識する必要があります。
本セクションでは、vsftpd を設定して TLS によるセキュアな接続を確立する方法と、SELinux を用いて FTP サーバーのセキュリティーを保護する方法を説明します。FTP の代用となるのは、OpenSSH スイートからの sftp です。OpenSSH の設定方法および SSH プロトコル全般に関する情報は、14章OpenSSH を参照してください。
インターネット上で使用されているほとんどのプロトコルとは異なり、FTP が正しく機能するためには複数のネットワークポートを必要とします。FTP クライアントアプリケーションが FTP サーバーへの接続を開始すると、コマンド ポート と呼ばれるポート 21 をサーバー上で開きます。このポートは、すべてのコマンドをサーバーに発行するために使用されます。サーバーから要求されたデータは、データポート を介してクライアントに返されます。データ接続のポート番号、およびデータ接続を初期化する方法は、クライアントが active モードまたは passive モードでデータを要求するかどうかによって異なります。
これらのモードの定義は以下のとおりです。
アクティブモード
アクティブモードは、FTP プロトコルでクライアントへのデータ転送に使用される独自の方法です。FTP クライアントがアクティブモードのデータ転送を開始すると、サーバーは、サーバーのポート 20 から、クライアントで指定された IP アドレスとランダムな非特権ポート( 1024以上)への接続を開きます。この配置は、クライアントマシンが 1024 を超えるポートを介して接続を受け入れることができる必要があることを意味します。インターネットのようなセキュリティー保護されていないネットワークが増加するにともない、ファイアウォールを使用したクライアントマシンの保護が普及しています。このようなクライアント側のファイアウォールは、アクティブモードの FTP サーバーから着信する接続を拒否する場合が多いため、パッシブモードが実現されました。
パッシブモード
パッシブモードはアクティブモードと同様に、FTP クライアントアプリケーションによって開始されます。サーバーからデータを要求する際に、FTP クライアントはパッシブモードでデータにアクセスしたいことを示し、サーバーはサーバー上の IP アドレスとランダムな非特権ポート( 1024以上)を提供します。クライアントは、サーバー上のそのポートに接続して要求した情報をダウンロードします。
パッシブモードは、クライアント側のファイアウォールによるデータ接続障害の問題を解決しますが、サーバー側のファイアウォール管理を複雑化させてしまう場合があります。FTP サーバー上の特権のないポートの範囲を制限することにより、サーバー上で開いているポートの数を減らすことができます。またこの方法により、サーバーを対象としたファイアウォールのルール設定の手順が簡略化されます。パッシブポートの制限の詳細は、「ネットワークオプション」 を参照してください。