phpMyAdmin vor Fremdzugriff schützen

Wer mit phpMyAdmin arbeitet, um MySQL-Datenbanken zu verwalten, muss aufpassen. Viele Einsteiger packen es einfach auf ihren Webserver ohne es gegen Fremdzugriffe zu sperren. Gezielte Suchen fördern immer wieder offene Verzeichnisse zutage, mit denen sich Datenbanken auf fremden Servern mit dem Hauptbenutzer root ohne Passwort vollständig administrieren lassen. Wer seinen Server bei einem populären Webhoster betreibt, hat eher keine Sorge damit, weil der Anbieter sich darum kümmert. Voreinstellungen im Konfigurationsmenü reichen meist aus. Ausgenommen sind Webhoster ohne vorkonfiguriertes phpMyAdmin. Wer es nachträglich installiert, muss es selbst schützen.

Dazu sperren Sie das Verzeichnis, in dem sich phpMyAdmin befindet. Dafür gibt es beim Provider meist ein Menü, dass sinngemäß Zugriffsverwaltung heißt. Dort legen Sie einen Benutzer mit Passwort an, der wiederum dem zu schützenden Verzeichnis zugeordnet wird. Die Einstellungen brauchen häufig ein paar Minuten, bis sie wirken. Solange sollte der eigene Zugang zur MySQL-Datenbank in der Konfigurationsdatei config.inc.php von phpMyAdmin nicht gespeichert werden. Erst wenn der Webserver beim Aufruf von phpMyAdmin zum Login auffordert, können Sie es sorgenfrei konfigurieren.

Auf einem eigenen Webserver müssen Sie anders vorgehen. Unter Suse Linux 10 ist die Bearbeitung der Datei default-server.conf im Verzeichnis /etc/apache2/ erforderlich, die Sie um die folgenden Zeilen ergänzen:


<Directory /srv/www/htdocs/phpMyAdmin/>
Authname "Login phpMyAdmin"
AuthType Basic
AuthUserFile /etc/apache2/.htpasswd2
require user derdarfdas
</Directory>

Anstelle des Users derdarfdas tragen Sie den Benutzernamen ein, der sich in phpMyAdmin einloggen können soll. Anschließend wechseln Sie in das Verzeichnis /etc/apache2/ und legen dort mit der Eingabe htpasswd2 -c .htpasswd2 derdarfdas die Passwortdatei für den Benutzer derdarfdas an. Sie werden anschließend zur Eingabe und Bestätigung eines Passworts aufgefordert. Danach müssen Sie den Apache-Server mit der Eingabe /etc/init.d/apache2 restart neu starten, damit die Änderungen aktiv werden.

Andere Benutzer können Sie hinzufügen, indem Sie die Zeile require user in der Datei default-server.conf um den entsprechenden Nutzernamen, zum Beispiel siedarfdasauch ergänzen. Fügen Sie ihn anschließend der Passwortdatei hinzu, indem Sie am besten wieder in das Verzeichnis /etc/apache2/ wechseln und htpasswd2 .htpasswd2 siedarfdasauch eingeben. Den Parameter -c können Sie sich diesmal sparen, da die Passwortdatei inzwischen existiert. Wenn Sie anschließend Apache wieder neustarten, darf sich die Benutzerin siedarfdasauch ebenfalls in phpMyAdmin einloggen. Sie können übrigens auch die Datei httpd.conf anstelle von default-server.conf direkt bearbeiten. Wie Sie große Datenbanken jenseits von zwei MByte mit phpMyAdmin importieren, erfahren Sie hier.