Je travaille sur un environnement virtualhost multiple. J'ai installé PhpMyadmin pour Mysql Remote Control.
L'environnement est configuré comme ci-dessous:
one.domain.com
two.domain.com
onlyphpmyadmin.domain.com
Maintenant, si j'accède à l'un des trois domaines
http://one.domain.com/phpmyadmin/
http://two.domein.com/phpmyadmin/
http://onlyphpmyadmin.domain.com/phpmyadmin/
le résultat est le même, l'accès à Phpmyadmin est autorisé.
Le but est d'obtenir une situation comme celle-ci ci-dessous
http://one.domain.com/phpmyadmin/ --> access denied
http://two.domein.com/phpmyadmin/ --> access denied
http://onlyphpmyadmin.domain.com/phpmyadmin/ -->access allowed
sans hack similaire à
<?php
if($_SERVER['HTTP_HOST'] != 'onlyphpmyadmin.domain.com')
die('access denied');
...
?>
sur un fichier Phpmyadmin.
Voici mon fichier de configuration Phpmyadmin
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_flag register_globals Off
php_admin_flag allow_url_fopen Off
php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/
</IfModule>
</Directory>
# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
<IfModule mod_authn_file.c>
AuthType Basic
AuthName "phpMyAdmin Setup"
AuthUserFile /etc/phpmyadmin/htpasswd.setup
</IfModule>
Require valid-user
</Directory>
# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/libraries>
Order Deny,Allow
Deny from All
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
Order Deny,Allow
Deny from All
</Directory>
la source
Dans RHEL / CentOS, Apache charge /etc/httpd/conf.d/phpmyadmin.conf pour configurer l'alias / phpmyadmin. La directive Directory est également initialement définie pour autoriser uniquement le trafic provenant de localhost, vous pouvez donc recevoir une erreur 403 lorsque vous accédez à phpmyadmin comme "domain.com/phpmyadmin".
En utilisant ce qui suit, vous pouvez configurer RHEL / CentOS pour autoriser uniquement l'alias / phpmyadmin à fonctionner à partir d'un hôte virtuel spécifique.
/etc/httpd/conf.d/phpmyadmin.conf
Ensuite, ajoutez la directive alias à votre vhost et redémarrez Apache.
Veuillez noter que ce n'est pas l'implémentation la plus sécurisée. Veuillez prendre soin de sécuriser / phpmyadmin via l'authentification, les restrictions IP ou une combinaison des deux.
la source