Red Hat Enterprise Linux では2種の異なるFTP サーバーを提供します:
Red Hat Content Accelerator — カーネルベースの Web サーバーとして、ハイパフォーマンスの Web サーバーと FTP サービスを提供 します。速度がその第一の設計目標である為、機能的には制限があり、匿名のFTP サーバーとしてのみ動作します。設定とRed Hat Content Acceleratorの管理に関する詳細情報に付いてはオンラインサイトのhttp://www.redhat.com/docs/manuals/tux/にあるドキュメントを参照して下さい。
vsftpd — 迅速で安全な FTP デーモンで、Red Hat Enterprise Linux の為に 推奨の FTP サーバーです。この章の残りの部分ではvsftpdについて説明します。
高度に安全な FTP デーモンである vsftpd は、迅速で安定していて、 特に安全性を求めて基礎から設計されました。大量の接続を効率的で安全に処理できる能力が、vsftpdが Red Hat Enterprise Linuxで配布される唯一独立型 FTP となる理由です。
vsftpd で使用されるセキュリティモデルは3つの主要な 側面を持ちます:
特権と非特権プロセスの確実な分離— 分離されたプロセスは別々のタスクを処理して、それぞれのプロセスが そのタスクに要求される最小限の特権で動作します。
高い権限を要するタスクは最低限必要な権限を持つプロセスによって 処理されます。 — libcap ライブラリが持つ 互換性を利用して、通常完全な root 権限を要求するタスクでも、権限の低いプロセスから安全に実行できます。
chroot jailで実行される多くのプロセス — 可能な時はいつでもプロセスは共有されるディレクトリに対しルート-変更 されます; このディレクトリはそこで chroot jail と見なされ ます。例えば、ディレクトリ/var/ftp/が主要共有ディレクトリなら vsftpdは、/var/ftp/を/ として知られる新しいルートディレクトリへ再割り当てします。これにより新規の ルートディレクトリ以下に含まれないディレクトリへの如何なる悪質なハッカー行為を 許可しません。
これらのセキュリティ活動の使用は、要求に対してvsftpdがどの様に 取扱うかについて次のような影響を持ちます:
親プロセスは最低限の必要権限で動作します。 — 親プロセスは動的に必要な権限レベルを計算して、リスクレベルを低減します。子プロセスは直接、FTP クライアントとの対応を処理して可能な限り、「権限なし」に近い状態で動作します。
高い権限を要求する全てのオペレーションは、1つの小さな親プロセスによって処理されます。 — Apache HTTP サーバーとほぼ同じく、vsftpd は権限のない子プロセスを開始して着信の接続を処理します。これにより権限のある親プロセスは可能な限り、小規模になることができ、比較的に少量のタスクを処理します。
権限のない子プロセスからの要求は全て親プロセスに信用されません。 — 子プロセスとの通信はソケット上で受理されて、子プロセスからの情報の正当性はいずれも処理をする前にチェックされます。
FTP クライアントとの対応はほとんどの場合、chroot jailの中で、権限のない子プロセスによって処理されます。 — これらの子プロセスは、権限を持たなくて共有されているディレクトリのみにアクセスする為に、クラッシュしたプロセスは攻撃者に対して共有ファイルへのアクセスを許可するだけです。