Problème de sécurité Apache et VirtualHost
Fermé
murmures1530
Messages postés
16
Date d'inscription
samedi 4 août 2012
Statut
Membre
Dernière intervention
25 novembre 2016
-
23 nov. 2016 à 11:44
murmures1530 Messages postés 16 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 25 novembre 2016 - 25 nov. 2016 à 08:44
murmures1530 Messages postés 16 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 25 novembre 2016 - 25 nov. 2016 à 08:44
A voir également:
- Problème de sécurité Apache et VirtualHost
- Mode securite - Guide
- Apache open office gratuit - Télécharger - Suite bureautique
- Url masquée pour votre securite - Guide
- La clé de sécurité réseau est incorrecte ✓ - Forum WiFi
- Désactiver sécurité windows - Guide
3 réponses
murmures1530
Messages postés
16
Date d'inscription
samedi 4 août 2012
Statut
Membre
Dernière intervention
25 novembre 2016
24 nov. 2016 à 10:44
24 nov. 2016 à 10:44
Je maîtrise pas les reverse proxy et je n'aime pas Nginx.
La solution m'a été fournie sur un autre forum traitant Debian.
La faute à la configuration de PHP qui, par défaut, autorise l'accès à tous les dossiers du système d'exploitation (je considère ça comme une sacrée faille personnellement).
Il faut configurer une valeur nulle à open_basedir dans php.ini
Puis configurer via php_value un open_basedir pour chaque VirtualHost comme l'exemple ci-dessous afin de restreindre l'accès au seul dossier racine du VirtualHost:
La solution m'a été fournie sur un autre forum traitant Debian.
La faute à la configuration de PHP qui, par défaut, autorise l'accès à tous les dossiers du système d'exploitation (je considère ça comme une sacrée faille personnellement).
Il faut configurer une valeur nulle à open_basedir dans php.ini
Puis configurer via php_value un open_basedir pour chaque VirtualHost comme l'exemple ci-dessous afin de restreindre l'accès au seul dossier racine du VirtualHost:
<VirtualHost *:80>
ServerName mon-site-a-moi.net
ServerAlias mon-site-a-moi.net
ServerAdmin webmaster@mon-site-a-moi.net
DocumentRoot /opt/apache2/flex/mon-site-a-moi.net
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /opt/apache2/flex/mon-site-a-moi.net/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
DirectoryIndex index.php index.html
</Directory>
<IfModule mod_php5.c>
php_value open_basedir /dev/urandom:/dev/null:/opt/apache2/common:/tmp:/opt/apache2/flex/mon-site-a-moi.net
php_value upload_tmp_dir /tmp
</IfModule>
#ErrorLog ${APACHE_LOG_DIR}/error.log
#LogLevel info
#CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
L'avantage d'un reverse proxy c'est que tu n'exposes pas tes machines, donc apache vers l'extérieur. Tout passe par la machine proxy. Elle se charge de renvoyer les paquets.
Nginx étant le plus simple, il y a des solutions plus professionnel comme netscaler ou le F5
Nginx étant le plus simple, il y a des solutions plus professionnel comme netscaler ou le F5
murmures1530
Messages postés
16
Date d'inscription
samedi 4 août 2012
Statut
Membre
Dernière intervention
25 novembre 2016
25 nov. 2016 à 08:44
25 nov. 2016 à 08:44
Je vais me penchez sur Nginx en début d'année prochaine; j'en ai beaucoup entendu parler mais, j'ai toujours été un inconditionnel d'Apache.— Il n'y a que les cons qui ne changent pas d'avis. :)
Cependant, pour le reverse proxy, je vois pas en quoi ça peut palier au problème de sécurité de la fonction include(); de PHP qui (avec sa configuration par défaut) peut retourner le contenu d'un fichier système important contenant des mot de passe lorsque open_basedir n'est pas spécifié (y compris pour les VirtualHost)… Surtout si le rôle du ReverseProxy n'est que de distribuer les paquets.
Peut-être ai-je mal compris son fonctionnement? Mais imaginons cette situation ;
J'ai le site «site-important.com» avec le dossier security qui contient un fichier .htaccess et .htpasswd. Le site-important.com a comme chemin absolu /opt/apache2/flex/site-important.com/www
Un second site «site-a-la-con.net» a un fichier index.php avec comme seule ligne de code
<?php include('/opt/apache2/flex/site-important.com/www/security/.htpasswd'); ?>
Si j'accède a site-a-la-con.net, la page d'accueil m'affiche bel-et-bien le contenu du fichier .htpasswd du site-important.com.
Cependant, pour le reverse proxy, je vois pas en quoi ça peut palier au problème de sécurité de la fonction include(); de PHP qui (avec sa configuration par défaut) peut retourner le contenu d'un fichier système important contenant des mot de passe lorsque open_basedir n'est pas spécifié (y compris pour les VirtualHost)… Surtout si le rôle du ReverseProxy n'est que de distribuer les paquets.
Peut-être ai-je mal compris son fonctionnement? Mais imaginons cette situation ;
J'ai le site «site-important.com» avec le dossier security qui contient un fichier .htaccess et .htpasswd. Le site-important.com a comme chemin absolu /opt/apache2/flex/site-important.com/www
Un second site «site-a-la-con.net» a un fichier index.php avec comme seule ligne de code
<?php include('/opt/apache2/flex/site-important.com/www/security/.htpasswd'); ?>
Si j'accède a site-a-la-con.net, la page d'accueil m'affiche bel-et-bien le contenu du fichier .htpasswd du site-important.com.