Güvenli izolasyonu ile bir LAMP üzerinde birden fazla site Koşu

3 Cevap php

I have been administering a few LAMP servers with 2-5 sites on each of them. These are basically owned by the same user/client so there are no security issues except from attacks through vulnerable deamons or scripts. I am builing my own server and would like to start hosting multiple sites. My first concern is... ISOLATION. How can I avoid that a c99 script could deface all the virtual hosts? Also, should I prevent that c99 to be able to write/read the other sites' directories? (It is easy to "cat" a config.php from another site and then get into the mysql database) My server is a VPS with 512M burstable to 1G. Among the free hosting managers, is there any small one which works for my VPS? (which maybe is compatible with the security approach I would like to have) Currently I am not planning to host over 10 sites but I would not accept that a client/hacker could navigate into unwanted directories or, worse, run malicious scripts. FTP management would be fine. I don't want to complicate things with SSH isolation.

Bu durumda en iyi yöntem nedir? Temelde, hosting şirketleri iyi uyku için ne yapmalıyım? :)

Thanks very much! David

3 Cevap

Eğer bu satırı ekleyerek her bir Sanal Sunucu için Apache Yapılandırma PHP yönergesi open_basedir'inizi kullanmanız gerekir:

<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>

this will limit all your PHP processes to access only this (or these) path on your filesystem. Opening files on other locations will be forbidden, even by chdir() or using symbolik links.

Ayrıca PHP5.3.0 beri ini_set () ile zamanında bu yönergeyi sağlayabilir ama imho sizin vhosts.conf dosya (lar) doğrudan bu uygulamak için daha iyidir.

PHP Manual

Apache 2.x için ITK MPM Çıkış: http://mpm-itk.sesse.net/

Ben herhangi bir sorun olmadan, şimdi birkaç yıl için yoğun siteleri bir dizi kullanıyorum.

Nihai izolasyonu için, hafif sanallaştırma (Linux, FreeBSD hapishanelerinde veya benzer OpenVZ) düşünün. Bu orginary sanal makinelere benzer, ama çekirdek paylaşıyor ve bu nedenle tam sanallaştırma yükü taşımıyor. Hafif VM yerine de ayrı bir disk görüntüsünü kullanarak her bir kooperatif bir şekilde disk alanı paylaşabilir ve tüm aynı dosyaların tek kopyalarını kullanabilirsiniz. Dezavantajı sizin için bir sorun görünmüyor, hangi içinde başka bir işletim sistemi çalıştırmak değil yani hafif VM hep aynı çekirdeği çalıştırmak olmasıdır.