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内で動作します。 — 可能な限り、プロセスは共有されているディレクトリへの 変更 rootです。このディレクトリはその後、chroot jailと認識 されます。
これらのセキュリティ活動の使用は、要求に対してvsftpdがどの様に 取扱うかについて次のような影響を持ちます:
親プロセスは最低限の必要権限で動作します。 — 親プロセスは動的に必要な権限レベルを計算して、リスクレベルを低減します。 子プロセスは直接、FTP クライアントとの対応を処理して可能な限り、「権限なし」に 近い状態で動作します。
高い権限を要求する全てのオペレーションは、1つの小さな親プロセスによって 処理されます。 — Apache HTTP サーバーとほぼ同じく、vsftpdは 権限のない子プロセスを開始して着信の接続を処理します。これにより権限のある親 プロセスは可能な限り、小規模になることができ、比較的に少量のタスクを処理します。
権限のない子プロセスからの要求は全て親プロセスに信用されません。 — 子プロセスとの通信はソケット上で受理されて、子プロセスからの 情報の正当性はいずれも処理をする前にチェックされます。
chroot jailの中では FTP クライアントとの対応は ほとんどの場合、権限のない子プロセスによって処理されます。 — これらの子プロセスは、権限を持たなくて共有されているディレクトリのみにアクセス する為に、クラッシュしたプロセスは攻撃者に対して共有ファイルへのアクセスを 許可するだけです。