26.2. FTP サーバー
Red Hat Enterprise Linux には、2 つの異なる FTP サーバーが同梱されています。
- Red Hat Content Accelerator: 高パフォーマンスの Web サーバーおよび FTP サービスを提供するカーネルベースの Web サーバー。速度は主要な設計目標であるため、機能が制限され、匿名 FTP サーバーとしてのみ実行されます。Red Hat Content Accelerator の設定および管理の詳細については、オンラインの http://www.redhat.com/docs/manuals/tux/ を参照してください。
- vsftpd: Red Hat Enterprise Linux に推奨される FTP サーバーである高速でセキュアな FTP デーモン。本章の残りの部分では、vsftpd に重点を置いています。
26.2.1. vsftpd
Very Secure FTP Daemon (vsftpd) は、高速で安定しており、最も重要なこととして安全であるようにゼロから設計されています。vsftpd は、多数の接続を効率的かつ安全に処理できるため、Red Hat Enterprise Linux とともに配布される唯一のスタンドアロン FTP サーバーです。
vsftpd で使用されるセキュリティーモデルには、主に 3 つの側面があります。
- 特権プロセス と非特権プロセスの強力な分離: 別個のプロセスが異なるタスクを処理し、各プロセスはタスクに必要な最小限の権限で実行されます。
- 高い権限を必要とするタスクを、必要最小限の特権を持つプロセスで処理:
libcap
ライブラリーにある互換性を利用して、通常は完全な root 権限を必要とするタスクを、権限が低いプロセスでより安全に実行できます。 - ほとんどのプロセスは chroot jail で実行 されます。可能な場合は、プロセスは root で共有されているディレクトリーに変更されます。その後、このディレクトリーは chroot jail とみなされます。たとえば、ディレクトリー /var/ftp/ がプライマリー共有ディレクトリーである場合、vsftpd は /var/ftp/ を / と呼ばれる新しいルートディレクトリーに再割り当てします。これにより、新しい root ディレクトリーに含まれていないディレクトリーに対する悪意のあるハッカーのアクティビティーが阻止されます。
これらのセキュリティープラクティスを使用すると、vsftpd によるリクエストの処理方法に以下のような影響があります。
- 親プロセスは、必要最小限の権限で稼働: 親プロセスは、リスクレベルを最低限に抑えるために必要とされる権限のレベルを動的に算出します。子プロセスは FTP クライアントとの直接的な対話を処理し、可能な限り権限なしに近い形で実行します。
- 高い 権限を必要とするすべての操作は、小さな親プロセスにより処理され ます。Apache HTTP Server と同様に、vsftpd は権限のない子プロセスを起動し、着信接続を処理します。これにより、権限のある親プロセスを最小限に抑えられ、比較的少ないタスクを処理することになります。
- 親プロセスでは、権限のない子プロセスからの要求はすべて信頼さ れません。子プロセスとの通信はソケット上で受信され、子プロセスからの情報の有効性は動作する前にチェックされます。
- FTP クライアントとの相互作用のほとんどは、chroot jail 内の権限のない子プロセスにより処理 されます。これらの子プロセスは権限がなく、共有ディレクトリーにのみアクセスできるため、クラッシュしたプロセスにより、攻撃者が共有ファイルにアクセスすることしかできません。