EDIT # 2 23 Temmuz 2015: Aşağıdaki kurulumda kaçırılan veya her şeyin kapsandığına inanmak için sebep verebilecek önemli bir güvenlik öğesini tanımlayan yeni bir cevap arıyorum.
EDIT # 3 29 Temmuz 2015: Özellikle güvenlik kısıtlamalarını atlatmak veya daha da kötüsü, ancak açık bir şeyi açık bırakmak için sömürülebilecek bir şeye izin vermek gibi olası bir yanlış konfigürasyon arıyorum.
Bu çok site / paylaşılan barındırma kurulumu ve paylaşılan bir Apache örneği kullanmak istiyoruz (yani bir kullanıcı hesabı altında çalışıyor), ancak hiçbir sitenin başka bir sitenin dosyalarına erişemediğinden emin olmak için PHP / CGI her web sitesinin kullanıcısı olarak çalışıyor ve hiçbir şeyin kaçırılmadığından emin olun (örneğin, sembolik saldırı önleme hakkında bilgimiz yoksa).
Şimdiye kadar sahip olduğum şey:
- PHP komut dosyalarının web sitesinin Linux kullanıcı hesabı ve grubu olarak çalıştığından ve hapsedildiğinden (CageFS kullanımı gibi) veya Linux dosya sistemi izinleri kullanılarak en azından uygun şekilde kısıtlandığından emin olun.
- CGI betiklerinin Apache kullanıcısı olarak çalıştırılamayacağından emin olmak için suexec kullanın.
- Sunucu tarafı desteğine ihtiyaç duyuyorsanız (shtml dosyalarında olduğu gibi), CGI'nin
Options IncludesNOEXEC
beklemediğinizde çalıştırılmasını önlemek için kullanın (ancak suexec kullanılıyorsa bu kadar endişe duymamalıdır). - Bir bilgisayar korsanının Apache'yi başka bir web sitesinin dosyalarını düz metin olarak sunması ve DB şifreleri gibi açıklayıcı bilgileri ifşa etmesi için symlink saldırı korumasına sahip olun.
- Yalnızca bir bilgisayar korsanının yararlanamayacağı yönergelere izin vermek için
AllowOverride
/ yapılandırınAllowOverrideList
. Yukarıdaki öğeler düzgün bir şekilde yapılırsa, bu daha az endişe verici olduğunu düşünüyorum.
Çok yavaş olmasaydı ve kök olarak çalışmadıysa MPM ITK ile giderdim, ancak özellikle paylaşılan bir Apache kullanmak istiyoruz, ancak güvenli bir şekilde yapıldığından emin olmak istiyoruz.
Http://httpd.apache.org/docs/2.4/misc/security_tips.html buldum , ancak bu konuda kapsamlı değildi.
Bilmeniz faydalı olursa, CloudLinux'u CageFS ve mod_lsapi ile kullanmayı planlıyoruz.
Yapacağınızdan veya bilmeniz gereken başka bir şey var mı?
EDIT 20 Temmuz 2015: İnsanlar genel olarak değerli olan bazı iyi alternatif çözümler sundular, ancak bu sorunun yalnızca paylaşılan bir Apache kurulumunun güvenliği ile ilgili olduğunu lütfen unutmayın. Özellikle yukarıda ele alınmayan ve bir sitenin başka bir sitenin dosyalarına erişmesine veya diğer sitelerin bir şekilde güvenliğini aşmasına neden olabilecek bir şey var mı?
Teşekkürler!