Ich arbeite an einer Umgebung mit mehreren virtuellen Hosts. Ich habe PhpMyadmin für MySQL Remote Control installiert.
Die Umgebung ist wie folgt konfiguriert:
one.domain.com
two.domain.com
onlyphpmyadmin.domain.com
Nun, wenn ich auf eine der drei Domänen zugreife
http://one.domain.com/phpmyadmin/
http://two.domein.com/phpmyadmin/
http://onlyphpmyadmin.domain.com/phpmyadmin/
Das Ergebnis ist das gleiche, der Zugriff auf Phpmyadmin ist erlaubt.
Das Ziel ist es, eine Situation wie die folgende zu erhalten
http://one.domain.com/phpmyadmin/ --> access denied
http://two.domein.com/phpmyadmin/ --> access denied
http://onlyphpmyadmin.domain.com/phpmyadmin/ -->access allowed
mit keinem ähnlichen Hack
<?php
if($_SERVER['HTTP_HOST'] != 'onlyphpmyadmin.domain.com')
die('access denied');
...
?>
auf einer Phpmyadmin-Datei.
Hier meine Phpmyadmin Konfigurationsdatei
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>
quelle
In RHEL / CentOS lädt Apache /etc/httpd/conf.d/phpmyadmin.conf, um den Alias / phpmyadmin einzurichten. Die Directory-Direktive ist anfangs auch so eingestellt, dass nur Datenverkehr von localhost zugelassen wird, sodass beim Zugriff auf phpmyadmin wie "domain.com/phpmyadmin" möglicherweise ein 403-Fehler angezeigt wird.
Mit den folgenden Methoden können Sie RHEL / CentOS so einrichten, dass nur der Alias / phpmyadmin von einem bestimmten virtuellen Host aus funktioniert.
/etc/httpd/conf.d/phpmyadmin.conf
Fügen Sie als Nächstes die Alias-Direktive zu Ihrem vhost hinzu und starten Sie Apache neu.
Bitte beachten Sie, dass dies nicht die sicherste Implementierung ist. Bitte achten Sie darauf, / phpmyadmin durch Authentifizierung, IP-Einschränkungen oder eine Kombination aus beiden zu sichern.
quelle