Apache - suExec - FastCGI - PHP = セキュリティ問題

Apache - suExec - FastCGI - PHP = セキュリティ問題

ローカル開発ボックスに、FastCGI (mod_fastcgi)、suExec、PHP を備えた Apache をインストールしました。1 つの問題を除いて、完璧に動作しています。

ユーザーが 2 人いるとします。

user1 - /home/user1/public_html
user2 - /home/user2/public_html

設定に重大なセキュリティホールを発見しました。user2 の Web ルートのファイルを user1 ファイルに含めることができます。どうすれば防げますか? 何かヒントはありますか?

php-cgiプロセスは正しいユーザーで実行されています。

答え1

base_pathVirtualHost 内で設定することをお勧めします:

php_admin_value open_basedir /usr/local/www/sixeightzero

答え2

目的がユーザーの名前でPHPを実行し、それらを分離することである場合は、apache2-mpm-itk、fast-cgi よりもはるかに簡単に導入でき、うまく機能します。

使用するには、仮想ホストの設定に次の行を追加するだけです。

AssignUserId someuser somegroup

必要に応じて、MaxClientsVHost と NiceValue を設定することもできます。

答え3

これを正しく行う唯一の方法は、あるユーザーが別のユーザーのホームディレクトリからファイルを読み取ることを禁止し、Web サーバーでは読み取り可能にしておくことです。

これは次のようにして実現できます (例):

ACL オプションを使用してファイルシステムをマウントします。 mount -o acl /dev/sda /home

Web サーバーにアクセスを許可します:

setfacl -m u:nobody:r-x /home/user1

setfacl -m u:nobody:r-x /home/user2

所有者に読み取りを許可する:

setfacl -m u:user1:r-x /home/user1

setfacl -m u:user2:r-x /home/user2

関連情報