私は、Apache VirtualHostsとしてさまざまなWebサイトをホストするWebサーバーをセットアップしています。これらのそれぞれは、スクリプト(主にPHP、その他の可能性)を実行する可能性があります。
私の質問は、これらのVirtualHostsを相互に、およびシステムの残りの部分からどのように分離するかです。たとえば、WebサイトXがWebサイトYの構成やサーバーの「プライベート」ファイルを読み取らないようにしたい。
現時点では、ここで説明されているように、FastCGI、PHP、およびSUExecを使用してVirtualHostsをセットアップしました(http://x10hosting.com/forums/vps-tutorials/148894-debian-apache-2-2-fastcgi-php-5-suexec -easy-way.html)、ただしSUExecはユーザーが自分のファイル以外のファイルを編集/実行することを禁止するだけです-ユーザーは引き続き設定ファイルなどの機密情報を読み取ることができます。
サーバー上のすべてのファイルのUNIXグローバル読み取りアクセス許可を削除することを検討しました。これにより上記の問題が修正されますが、サーバーの機能を中断せずに安全に削除できるかどうかはわかりません。
私はchrootの使用についても調査しましたが、これはサーバーごとにのみ実行でき、仮想ホストごとでは実行できないようです。
私のVirtualHostsをシステムの残りの部分から分離する提案を探しています。
PS私はUbuntu 12.04サーバーを実行しています
私の答え:私は現在の設定にほぼ従って終了しましたが、すべての仮想ホストに対してchroot jailを実行します。たとえば、chroot jailを入れて/var/www
から、すべてのユーザーのデータをグループ/その他のr / w / x権限を持つサブフォルダーに入れます。無効。このオプションは、ソースコードを変更せずにすべて実行できるため、特に望ましいものでした。
@Chrisの回答を選択しました。完全に記述され、FTPとSELinuxも考慮されたためです。
mod_userdir
が別々のドメインの仮想ホスティングを提供する方法がわかりません。さらに、Apache内のユーザーディレクトリ間のセキュリティについては何も見つからないため、分離の観点からセキュリティについて懸念があります。その機能を提供していないようです。