CPanel - Apache が root ユーザーとして実行されるのを停止するには?

CPanel - Apache が root ユーザーとして実行されるのを停止するには?
<?php echo `whoami`; ?>

つまり、これは「root」を返していますが、これを防ぐ方法がわかりません。私は WebHost Manager / CPanel を使用していますが、これは複数のユーザー/仮想ホストを作成し、Apache がそのユーザー/グループとしてプロセスを生成することになっています。これは発生していません。

WHM にログインして PHP および SuExec 構成セクションを開くと、設定は次のようになります。

Default PHP Version (.php files)    5
PHP 5 Handler                       cgi
PHP 4 Handler                       none

Apache suEXEC                       on

何が問題なのですか? Apache を root ではなく正しいユーザーとして実行するにはどうすればよいですか?

答え1

各サイトを独自のユーザーとして実行する場合、正しい PHP 5 ハンドラー設定は「CGI」ではなく「suPHP」です。これを変更すると、whoami個々のユーザーをレポートするようになります。

このオプションを最初に使用可能にするには、EasyApache を実行し、そのプロセス中に「Mod SuPHP」を選択して Apache / PHP を再コンパイルする必要がある場合があります。これは、次の場所で実行されます。

メイン >> ソフトウェア >> EasyApache (Apache Update) またはコマンドライン/scripts/easyapache

答え2

Apache 自体はおそらく apache ユーザーとして実行されていますが、SuExec のおかげで、root が所有する PHP スクリプトは root として実行されます。これが、コマンドがwhoamiroot ユーザーを返す理由です。

ドキュメント ルート内のファイルの所有者を「apache」または「www-data」(サーバーが使用する方) に変更すると、同じコマンドでファイルの新しい所有者が返されます。

また、すべての PHP スクリプトchmod 555とディレクトリがファイルと同じユーザーによって所有されていないことを確認することもおそらく価値があります。これにより、CGI はスクリプトを実行できるようになりますが、PHP スクリプトの 1 つに欠陥が見つかった場合、CGI はスクリプト自体や他のスクリプトを変更できず、どのディレクトリにも新しいスクリプトを作成できなくなります。攻撃者が PHP スクリプトに欠陥を見つけた場合、攻撃者が実行できることはまだたくさんありますが、攻撃を困難にするためにできることは何でも実行することは価値があります。

関連情報