Apache sécurité
Résolu/Fermé
A voir également:
- Apache sécurité
- Mode securite - Guide
- Apache open office gratuit - Télécharger - Suite bureautique
- Url masquée pour votre securite - Guide
- Désactiver sécurité windows - Guide
- Email masqué pour votre sécurité - Forum Vos droits sur internet
3 réponses
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 505
18 déc. 2020 à 12:53
18 déc. 2020 à 12:53
Bonjour,
Dans le cas de sites sans PHP, on ne peut pas compromettre un site. Si Apache est compromis, puisque Apache a accès à tous les sites qu'il doit servir, alors le hacker peut atteindre tous les sites. Mais une faille non résolue dans Apache est peu probable.
Pour l'organisation des dossiers, je préfère que les sites soient stockés dans le répertoire "home" de l'utilisateur propriétaire du site.
Par exemple, si le site "example1.com" appartient à "utilisateur1", alors le site est stocké dans /home/utilisateur1/example1.com/
Pour permettre à Apache de traverser le dossier /home/utilisateur1 sans autoriser les autres utilisateurs : mettre un chmod 610 sur /home/utilisateur1 et ajouter l'utilisateur "apache" (ou httpd ou autre, à vérifier dans la config Apache) dans le groupe "utilisateur1"
Exemple : sudo usermod -aG utilisateur1 apache
Dans le cas d'un site PHP, cela ne change rien concernant Apache, mais tu voudras probablement que les processus PHP soient exécutés avec des privilèges différents.
Sur un serveur partagé (type hébergement mutualisé), si les processus PHP sont exécutés avec un utilisateur privilégié, alors n'importe quel utilisateur peut écrire un script PHP qui va fouiner dans le dossier des autres utilisateurs.
On peut utiliser PHP FPM afin de créer des "pools" différentes pour chaque utilisateur, puisque chaque pool peut être exécutée avec un utilisateur/groupe défini. Dans la partie du VirtualHost où on assigne un "handler" pour les fichiers .php, il suffira alors d'assigner la pool qui correspond à l'utilisateur qui est le propriétaire du site.
Dans le cas de sites sans PHP, on ne peut pas compromettre un site. Si Apache est compromis, puisque Apache a accès à tous les sites qu'il doit servir, alors le hacker peut atteindre tous les sites. Mais une faille non résolue dans Apache est peu probable.
Pour l'organisation des dossiers, je préfère que les sites soient stockés dans le répertoire "home" de l'utilisateur propriétaire du site.
Par exemple, si le site "example1.com" appartient à "utilisateur1", alors le site est stocké dans /home/utilisateur1/example1.com/
Pour permettre à Apache de traverser le dossier /home/utilisateur1 sans autoriser les autres utilisateurs : mettre un chmod 610 sur /home/utilisateur1 et ajouter l'utilisateur "apache" (ou httpd ou autre, à vérifier dans la config Apache) dans le groupe "utilisateur1"
Exemple : sudo usermod -aG utilisateur1 apache
Dans le cas d'un site PHP, cela ne change rien concernant Apache, mais tu voudras probablement que les processus PHP soient exécutés avec des privilèges différents.
Sur un serveur partagé (type hébergement mutualisé), si les processus PHP sont exécutés avec un utilisateur privilégié, alors n'importe quel utilisateur peut écrire un script PHP qui va fouiner dans le dossier des autres utilisateurs.
On peut utiliser PHP FPM afin de créer des "pools" différentes pour chaque utilisateur, puisque chaque pool peut être exécutée avec un utilisateur/groupe défini. Dans la partie du VirtualHost où on assigne un "handler" pour les fichiers .php, il suffira alors d'assigner la pool qui correspond à l'utilisateur qui est le propriétaire du site.
mamiemando
Messages postés
33410
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
2 décembre 2024
7 808
18 déc. 2020 à 13:10
18 déc. 2020 à 13:10
Bonjour,
Supposons que ton serveur web soit apache2. Dans ce cas, c'est l'utilisateur système "apache2" qui lance le processus correspondant. Cela signifie que si un vhost est compromis, l'attaquant aura la même puissance de feu qu'apache2. Définir plusieurs utilisateur n'a pas de sens car il n'y en a qu'un : celui qui lance le serveur web, et qui aiguille la requête du navigateur client vers le bon vhost. En ce sens, définir plusieurs utilisateurs n'a pas vraiment de sens.
La technique dont tu parles (isoler dans plusieurs dossiers séparés) est communément appelée jail. Elle est typiquement utilisée au niveau d'un vhost dans apache, d'une utilisateur pour ftp. Pour des solutions comme ssh, des outils permettent de faire des jails même si ça n'est pas (par choix) le comportement par défaut.
Toutefois, il est possible de mettre l'intégralité du serveur web dans une jail afin de limiter la vulnérabilité du système d'exploitation si le serveur web venaît à être compromis (voir e.g.
De nombreux tutoriels indiquent comment tu peux sécuriser un serveur web, entre autres :
Bonne chance
Supposons que ton serveur web soit apache2. Dans ce cas, c'est l'utilisateur système "apache2" qui lance le processus correspondant. Cela signifie que si un vhost est compromis, l'attaquant aura la même puissance de feu qu'apache2. Définir plusieurs utilisateur n'a pas de sens car il n'y en a qu'un : celui qui lance le serveur web, et qui aiguille la requête du navigateur client vers le bon vhost. En ce sens, définir plusieurs utilisateurs n'a pas vraiment de sens.
La technique dont tu parles (isoler dans plusieurs dossiers séparés) est communément appelée jail. Elle est typiquement utilisée au niveau d'un vhost dans apache, d'une utilisateur pour ftp. Pour des solutions comme ssh, des outils permettent de faire des jails même si ça n'est pas (par choix) le comportement par défaut.
Toutefois, il est possible de mettre l'intégralité du serveur web dans une jail afin de limiter la vulnérabilité du système d'exploitation si le serveur web venaît à être compromis (voir e.g.
mod_chroot), mais cela n'est pas exactement ta question initiale.
De nombreux tutoriels indiquent comment tu peux sécuriser un serveur web, entre autres :
- https://wiki.debian-fr.xyz/S%C3%A9curiser_Apache2
- https://doc.ubuntu-fr.org/apache2#securite
- https://doc.ubuntu-fr.org/modsecurity
Bonne chance
Bonsoir,
merci de vos réponses et de la qualité de vos réponses, après quelques recherches, je pense que je vais utiliser PHP FPM qui semble intéressant pour la sécurité et les performances. Faire un chroot semblerait vraiment idéal mais me semble compliqué a gérer avec mon viveau de connaissances :)
Cordialement
r@ph
merci de vos réponses et de la qualité de vos réponses, après quelques recherches, je pense que je vais utiliser PHP FPM qui semble intéressant pour la sécurité et les performances. Faire un chroot semblerait vraiment idéal mais me semble compliqué a gérer avec mon viveau de connaissances :)
Cordialement
r@ph