J'installe un serveur Web qui hébergera un certain nombre de sites Web différents en tant qu'Apache VirtualHosts, chacun d'eux aura la possibilité d'exécuter des scripts (principalement PHP, d'autres possiblu).
Ma question est de savoir comment isoler chacun de ces VirtualHosts les uns des autres et du reste du système? Je ne veux pas, par exemple, que le site Web X lise la configuration du site Web Y ou l'un des fichiers "privés" du serveur.
Pour le moment, j'ai configuré les VirtualHosts avec FastCGI, PHP et SUExec comme décrit ici ( http://x10hosting.com/forums/vps-tutorials/148894-debian-apache-2-2-fastcgi-php-5-suexec -easy-way.html ), mais SUExec empêche uniquement les utilisateurs de modifier / exécuter des fichiers autres que les leurs - les utilisateurs peuvent toujours lire des informations sensibles telles que les fichiers de configuration.
J'ai pensé à supprimer l'autorisation de lecture globale UNIX pour tous les fichiers sur le serveur, car cela résoudrait le problème ci-dessus, mais je ne sais pas si je peux le faire en toute sécurité sans perturber la fonction du serveur.
J'ai également étudié l'utilisation de chroot, mais il semble que cela ne peut être fait que par serveur et non par hôte virtuel.
Je recherche des suggestions qui isoleront mes VirtualHosts du reste du système.
PS J'utilise le serveur Ubuntu 12.04
Ma RÉPONSE: J'ai fini par presque suivre ma configuration actuelle, mais en faisant une prison chroot pour tous les hôtes virtuels, par exemple en ayant la prison chroot dedans /var/www
puis en ayant toutes les données des utilisateurs dans des sous-dossiers avec chacun des permissions group / others r / w / x désactivée. Cette option était souhaitable surtout parce qu'elle est possible sans aucune modification du code source.
J'ai sélectionné la réponse de @Chris, car elle a été entièrement écrite et également considérée comme FTP et SELinux
mod_userdir
offre l'hébergement virtuel de domaines distincts. De plus, je suis préoccupé par la sécurité en termes d'isolement, car je ne trouve rien à ce sujet entre les répertoires utilisateur d'Apache. Il ne semble tout simplement pas offrir cette fonctionnalité.