Merci d'avance pour toute aide que vous pourriez apporter. Je me suis auto-appris à utiliser linux (Ubuntu), Apache, des hôtes virtuels et quelques éléments relatifs à la sécurité, bien que je n’aie pas encore tout mis en place de manière transparente.
J'ai également tiré des leçons des erreurs commises dans le passé en ce qui concerne la non-configuration correcte des comptes d'utilisateurs et des sites/virtualhosts. Je ssh dans le serveur en tant que root (je sais, très mauvais), et créé tous les hôtes virtuels et les fichiers manuellement, de sorte que tous appartiennent à root. Une ancienne version de joomla a été exploitée et du code spam malveillant a été inséré dans tous mes autres hôtes virtuels.
Je suis en train de passer à un nouveau serveur et je cherche les étapes correctes à suivre pour configurer des hôtes virtuels et des comptes d'utilisateurs pouvant y accéder. Comme nous utilisons des logiciels tiers, nous avons parfois eu besoin que quelqu'un d'autre se connecte sur le site pour examiner les fichiers de leur site Web.
Notre serveur actuel est la version 10.04, mais le nouveau serveur est la version 12.04. Tous les fichiers de site Web sont configurés sous
/home/www/site1.com
/home/www/site2.com
/home/www/site3.com
etc
En bref, je suppose que c'est ce que je recherche.
Comment configurer correctement un hôte virtuel et un utilisateur, de sorte qu'il n'ait accès qu'à ses propres fichiers, et à aucun autre hôte virtuel sur le serveur. Par exemple, si ce site est exploité avec du code malveillant, il ne peut pas infecter d’autres sites sur le serveur.
Comment pourrais-je configurer les utilisateurs de sorte qu'ils ne puissent que ftp dans leurs fichiers et ne puissent accéder à aucun autre site?.
Comme mentionné précédemment, il existe de nombreux articles expliquant comment effectuer chacune de ces étapes, mais rien qui les unit de manière transparente.
Vraiment apprécier l'aide que chacun peut offrir. N'hésitez pas à demander toute information supplémentaire que vous pourriez avoir besoin de donner des conseils. Je suis actuellement en train de suivre des tutoriels pour configurer chroot, mais je crains de ne pas le faire correctement car j'ai relevé quelques incohérences au fil du temps. Je suis également enquêter sur Jailkit.
Puisque la question est le premier résultat de recherche dans Google lorsqu'on lui pose la question "Utilisateur distinct de l'hôte virtuel Apache", j'aimerais donner une réponse plus élaborée sur la base de cette réponse . Ma réponse ne couvre pas les cas d'utilisation de PHP et de CGI (vous utiliseriez suPHP). Il se concentre sur PHP lorsqu'il est utilisé comme module Apache.
Vous pouvez utiliser le module Apache Apache2-mpm-itk . Il est disponible pour la version actuelle d'Apache 2.4. Il vient avec la directive AssignUserID
. Cette directive définit l'utilisateur et le groupe avec lesquels une demande d'hôte virtuel est traitée. Voici un exemple de la configuration du site Apache avec laquelle je me suis retrouvé:
<VirtualHost *:80>
ServerName www.site1.com
DocumentRoot /home/www/site1.com
AssignUserID site1 www-data
php_admin_value open_basedir /home/www/site1.com
...
</VirtualHost>
Bien entendu, cela ne fait qu'améliorer la sécurité tant que les DocumentRoots individuels appartiennent à leurs utilisateurs respectifs et ne sont pas accessibles au groupe. Pour plus de sécurité liée à PHP, les scripts sont mis en prison dans le DocumentRoot
avec la restriction open_basedir. En ce qui concerne l’accès au fichier principal, je préfère SFTP avec chroot .
Remarque: Apache2-mpm-itk est actuellement incompatible avec le module http2 d'Apache.
Je ne pense pas que ceci soit une réponse à votre question moi-même. Mais comme je ne peux pas encore commenter, je dois écrire dans la zone "réponse". Je fais de la gestion Web de façon saisonnière. Pour moi, un moyen de tester et d’essayer les choses en toute sécurité consiste à configurer un environnement de test sur une machine virtuelle (c’est-à-dire VirtualBox) ou un "ancien" ordinateur de bureau. L’un des problèmes les plus courants des administrateurs novices de l’hôte Web est de comprendre le fonctionnement des programmes de serveur Web. Dans ce cas, je suppose que vous devez comprendre le fonctionnement d’Apache et au moins comprendre les fichiers de configuration. Je trouve que Webmin est un outil très utile - pour les débutants - pour gérer Apache et d’autres services. Vous devez passer du temps à essayer des choses dans votre environnement de test pour que les choses deviennent plus claires pour vous.
Pour revenir à votre question, je pense que la réponse peut être un article de tutoriel ou un petit livre. Découvrez ces articles pour commencer:
http://www.servermom.org/build-ubuntu-server-a-complete-guide/