3

私はいくつかの LAMP サーバーを管理しており、それぞれに 2 ~ 5 つのサイトがあります。これらは基本的に同じユーザー/クライアントによって所有されているため、脆弱なデーモンまたはスクリプトによる攻撃を除いて、セキュリティ上の問題はありません。独自のサーバーを構築しており、複数のサイトのホスティングを開始したいと考えています。私の最初の懸念は... 隔離です。c99 スクリプトがすべての仮想ホストを改ざんする可能性を回避するにはどうすればよいですか? また、c99 が他のサイトのディレクトリを読み書きできないようにする必要がありますか? (別のサイトから config.php を "cat" してから、mysql データベースにアクセスするのは簡単です) 私のサーバーは、1G にバースト可能な 512M の VPS です。無料のホスティングマネージャーの中で、私のVPSで動作する小さなものはありますか? (これは、私が望んでいるセキュリティ アプローチと互換性があるかもしれません) 現在、10 以上のサイトをホストする予定はありませんが、クライアント/ハッカーが不要なディレクトリに移動したり、さらに悪いことに、悪意のあるスクリプトを実行したりすることは受け入れられません。FTP管理は問題ありません。SSH 分離で事態を複雑にしたくありません。

この場合のベストプラクティスは何ですか? 基本的に、ホスティング会社はよく眠るために何をしていますか? :)

どうもありがとう!デビッド

4

3 に答える 3

8

次の行を追加して、各仮想ホストの Apache 構成で PHP ディレクティブ open_basedir を使用する必要があります。

<VirtualHost x.x.x.x:80>
ServeName www.example.com
DocumentRoot /path/to/your/virtualroot
...
... usual stuff ...
...
php_admin_value open_basedir /path/to/your/virtualroot:/some/other/path
</VirtualHost>

これにより、すべての PHP プロセスが、ファイルシステム上のこの (またはこれらの) パスのみにアクセスするように制限されます。他の場所にあるファイルを開くことは、chdir() やシンボリック リンクを使用しても禁止されます。

PHP5.3.0 以降では、実行時に ini_set() を使用してこのディレクティブを提供することもできますが、これを vhosts.conf ファイルに直接適用することをお勧めします。

PHP マニュアル

于 2009-10-30T13:05:46.153 に答える
1

究極の分離を実現するには、軽量の仮想化 (Linux 上の OpenVZ、FreeBSD 刑務所など) を検討してください。通常の仮想マシンに似ていますが、カーネルを共有するため、完全な仮想化のオーバーヘッドを負担しません。軽量 VM は、それぞれ個別のディスク イメージを使用する代わりに、協調的な方法でディスク領域を共有することもでき、すべて同じファイルの単一コピーを使用できます。欠点は、軽量 VM は常に同じカーネルを実行することです。つまり、ある OS を別の OS 内で実行することはできませんが、これは問題にはならないようです。

于 2009-11-06T00:23:12.250 に答える
1

Apache 2.x の ITK MPM を確認してください: http://mpm-itk.sesse.net/

私は数年間、何の問題もなく、多くの忙しいサイトでそれを使用しています.

于 2009-10-28T14:35:59.283 に答える