Apache VirtualHosts olarak bir dizi farklı web sitesini barındıracak bir web sunucusu kuruyorum, bunların her biri komut dosyalarını (başta PHP, possiblu diğerleri) çalıştırma olanağına sahip olacak.
Benim sorum, bu VirtualHost'ların her birini birbirinden ve sistemin geri kalanından nasıl izole ettiğim? Örneğin X web sitesi Y web sitesinin veya sunucunun "özel" dosyalarından herhangi birinin yapılandırmasını okumayı istemiyorum.
Şu anda VirtualCost'ları FastCGI, PHP ve SUExec ile burada açıklandığı gibi ayarladım ( http://x10hosting.com/forums/vps-tutorials/148894-debian-apache-2-2-fastcgi-php-5-suexec -easy-way.html ), ancak SUExec kullanıcıların yalnızca kendi dosyaları dışındaki dosyaları düzenlemesini / yürütmesini engeller - kullanıcılar yine de yapılandırma dosyaları gibi hassas bilgileri okuyabilir.
Yukarıdaki sorunu düzeltir gibi sunucudaki tüm dosyalar için UNIX genel okuma iznini kaldırma hakkında düşündüm, ancak sunucu işlevini bozmadan güvenle yapabilirim emin değilim.
Ayrıca chroot kullanarak baktım, ancak bunun sanal sunucu başına değil, sadece sunucu başına yapılabilir.
VirtualHost'larımı sistemin geri kalanından ayıracak herhangi bir öneri arıyorum.
PS: Ubuntu 12.04 sunucusunu çalıştırıyorum
CEVAP: Neredeyse mevcut yapılandırmamı takip ederek bitirdim, ancak tüm sanal ana bilgisayarlar için bir cezaevi hapishanesi yapıyorum, örneğin, cezaevi hapishanesine sahip /var/www
olmak ve daha sonra tüm kullanıcıların verilerini alt gruplarda grup / diğerleri r / w / x izinlerine sahip olmak özürlü. Bu seçenek özellikle kaynak kodda herhangi bir değişiklik yapılmadan mümkün olduğu için arzu edildi.
@Chris'in cevabını seçtim, çünkü iyice yazılmış ve FTP ve SELinux olarak kabul edildi
mod_userdir
Ayrı alan adlarının sanal olarak nasıl barındırılacağını bilmiyorum . Ayrıca, Apache içindeki kullanıcı dizinleri arasında bir şey bulamadığım için yalıtım açısından güvenlikle ilgili endişelerim var. Sadece bu özelliği sunmuyor gibi görünüyor.