編集#2 2015年7月23日:以下の設定で見逃した、またはすべてがカバーされていると信じる理由を与えることができる重要なセキュリティ項目を識別する新しい答えを探しています。
編集#3 2015年7月29日:私は特に、セキュリティ制限を回避するために悪用される可能性のあるものを不注意に許可したり、何かを広く開いたままにしたりするなど、設定ミスの可能性を探しています。
これはマルチサイト/共有ホスティングセットアップであり、共有Apacheインスタンス(つまり、1つのユーザーアカウントで実行)を使用したいが、各WebサイトのユーザーとしてPHP / CGIを実行して、サイトが別のサイトのファイルにアクセスできないようにします。見落としがないことを確認してください(たとえば、symlink攻撃防止について知らなかった場合)。
ここに私がこれまで持っているものがあります:
- PHPスクリプトがWebサイトのLinuxユーザーアカウントおよびグループとして実行され、投獄されている(CageFSを使用するなど)か、少なくともLinuxファイルシステムのアクセス許可を使用して適切に制限されていることを確認します。
- suexecを使用して、CGIスクリプトがApacheユーザーとして実行できないようにします。
- サーバーサイドインクルードサポート(shtmlファイルなど)が
Options IncludesNOEXEC
必要な場合は、予期しないときにCGIが実行されないようにするために使用します(ただし、suexecを使用する場合はそれほど心配する必要はありません)。 - ハッカーがApacheをだまして別のWebサイトのファイルをプレーンテキストとして提供したり、DBパスワードのような悪用可能な情報を開示したりできないように、symlink攻撃から保護します。
- ハッカーが利用できなかったディレクティブのみを許可するように
AllowOverride
/AllowOverrideList
を構成します。上記の項目が適切に行われれば、これは問題ではないと思います。
MPM ITKは、それほど遅くなく、ルートとして実行されなかった場合に使用しますが、共有Apacheを使用したいのですが、安全に行われることを確認してください。
http://httpd.apache.org/docs/2.4/misc/security_tips.htmlを見つけましたが、このトピックについて包括的ではありませんでした。
知っておくと便利な場合は、CageFSとmod_lsapiでCloudLinuxを使用する予定です。
他に確認または確認することはありますか?
EDIT 2015年7月20日:人々は一般的に価値のあるいくつかの良い代替ソリューションを提出しましたが、この質問は共有Apacheセットアップのセキュリティに関してのみ対象となっていることに注意してください。具体的には、1つのサイトが別のサイトのファイルにアクセスしたり、他のサイトを侵害したりする可能性がある、上記でカバーされていないものはありますか?
ありがとう!