WordPress Login sicherer machen

rayeWordPress

WordPress Login absichern

So schützen Sie Ihren WordPress Login mit einem zusätzlichen Passwort

Standardmäßig ist der WordPress Login natürlich mit Zugangsdaten geschützt. Die meisten gehen  mit ihrem Browser auf ihredomain.de/wp-admin/ und es erscheint die bekannte WordPress Login Seite.

In unserem großen Artikel über WordPress Sicherheit haben wir u.a erklärt, dass Sie die Standard Login URL ändern sollten. Andernfalls kennt jeder Angreifer sofort Ihre Login URL, da diese standardmäßig bei allen WordPress Installationen die Gleiche ist: /wp-admin/.

Macht auch zunächst Sinn, denn sonst wüsste man nicht, wo man sich einloggen soll. Es wäre allerdings wünschenswert, wenn man dies gleich bei der WordPress Installation einstellen könnte. 

In diesem Artikel geht es allerdings darum, wie man die WordPress Login Seite manuell mit einem zusätzlichen Passwort schützt.

Einen sogenannten Verzeichnisschutz kann man bei vielen Hostern direkt im Administrationsbereich anlegen. Manchmal klappt es allerdings nicht oder der Hoster bietet so etwas nicht per Mausklick-Einstellung an. In dem Fall müssen Sie einen Verzeichnisschutz manuell per Hand anlegen. Hier zeigen wir Ihnen, wie das geht.

Diese Anleitung bezieht sich dabei auf die sog. Basic Auth Methode für Apache Server. Das heisst, für IIS Server funktioniert diese Anleitung nicht.

Sie benötigen für dieses Tutorial Zugang zum Dateisystem Ihres Webservers. Verwenden Sie dazu zum Beispiel ein FTP-Programm (besser wäre SFTP) oder einen Shell-Zugang.

Genug Einleitung, los gehts!

htpasswds-Datei erstellen

Erstellen Sie zunächst eine .htpasswds-Datei. Diese Datei enthält die Benutzername-Passwort Kombination, für die zusätzlichen neuen Zugangsdaten.

Da diese in einem bestimmtes Format umgewandelt werden muss, empfehlen wir einen Generator wie diesen.

Tragen Sie dort den gewünschten Benutzernamen (Username) und Passwort ein. An dieser Stelle sei nochmals erwähnt, dass diese Benutzername/Passwort Kombination sich von dem Login zum WordPress Backend unterschieden sollte. Ansonsten macht das Ganze keinen Sinn.

Klicken Sie dann auf Create .htpasswd file.

Daraufhin erscheint eine Zeile Text. Diese Zeile setzt sich aus dem gewählten Benutzernamen, einem Doppelpunkt und dem verschlüsselten Passwort zusammen.

Sie müssen nun mit einem Texteditor eine neue txt-Datei erzeugen. Kopieren Sie besagte Textzeile in die neue Datei und speichern Sie die Datei als .htpasswd ab.

Achtung: es kann passieren, dass Ihr Betriebssystem die Datei nicht mehr im Datei-Fenster anzeigt. Standardmäßig werden Dateien, die mit einem Punkt beginnen, auf unsichtbar gestellt. In dem Fall müssen Sie Dateioperationen mit einem Terminal bzw. einer Shell ausführen. Oder Sie müssen die Ansicht-Einstellungen Ihres Datei-Fensters (Windows Explorer bzw. Mac OS Finder) so einstellen, dass unsichtbare Dateien auch angezeigt werden.

Sie können auch weitere Zugangsdaten erstellen. Zum Beispiel für einen Kollegen. Dann können Sie einfach mit dem Generator weitere Zugangsdaten erzeugen und in die Datei kopieren. Achten Sie darauf, immer nur eine Benutzername/Passwort Kombination pro Zeile in die .htpasswds-Datei zu kopieren.

htpasswds-Datei auf Server laden

Nun muss diese .htpasswds-Datei auf Ihren Webserver geladen werden. Zum Beispiel mit Ihrem FTP-Programm.

Am besten speichern Sie die Datei ausserhalb des Stammverzeichnis’ der WordPress Installation.  

In diesem Beispiel wäre das direkt ins Stammverzeichnis des Servers: /.htpasswds

htaccess-Datei erstellen

Die .htpasswds-Datei alleine aktiviert noch nicht die zusätzliche Passwordabfrage.

Sie müssen erst in dem Verzeichnis, das Sie schützen möchten, eine .htaccess-Datei anlegen.

Das heisst wir erzeugen eine weitere txt-Datei.

Dann fügen Sie dort den folgenden Code hinzu:

AuthName "Admins Only"
AuthUserFile /absoluter/pfad/zur/.htpasswds
AuthGroupFile /dev/null
AuthType basic
require user ihr-benutzername

Den fett hervorgehobenen Pfad bzw. Benutzernamen müssen Sie in dem obigen Code anpassen.

Bei ihr-benutzername müssen Sie den Benutzernamen eintragen, den Sie oben für die .htpasswd-Datei erzeugt haben.

Weiterhin müssen Sie in der Zeile, die mit AuthUserFile beginnt, den absoluten Pfad zur .htpasswds-Datei anpassen. 

Speichern Sie diese Datei mit dem Namen .htaccess ab. Laden Sie sie ins /wp-admin Verzeichnis Ihrer WordPress Installation.

Absoluter Pfad zur htpasswds-Datei herausfinden

Der Pfad zur .htpasswds-Datei darf kein URL Pfad sein. Es muss ein absoluter Datei-Pfad auf dem Webserver sein. Wenn Sie den Aufbau der absoluten Pfade auf Ihrem Server kennen, dann wissen Sie schon, was dort eingetragen werden muss. Andernfalls müssen Sie den absoluten Pfad herausfinden.

Ein Beispiel:

Oben habe ich die .htpasswds-Datei ins Stammverzeichnis des Servers kopiert. Für den FTP-Client ist das: /.htpasswds

Der absolute Pfad zu dieser Datei lautet allerdings /is/htdocs/vj1015323_S748JFH65SS/.htpasswds.

Bei Ihnen wird der absolute Pfad anders seine. Das ist bei jedem Server unterschiedlich. Und das wäre der Pfad, den ich in der .htaccess-Datei unter AuthUserFile eintragen müsste.

Wie bekommen Sie nun den absoluten Pfad heraus?

In der Regel sollte der Pfad in der Administrations-Oberfläche Ihres Webservers ersichtlich sein. Oft steht der auch in den Log-Dateien des Servers.

Alternativ kann man versuchen den Aufbau des Pfades über ein PHP Skript herauszufinden.

Erstellen Sie dazu eine neue Textdatei und tragen folgende Zeile Code hinzu:

<?php echo getcwd(); ?>

Speichern Sie diese Datei zum Beispiel als path.php.

Laden Sie diese Datei mit dem FTP Client in das Stammverzeichnis Ihrer WordPress-Installation.

Rufen Sie die PHP Datei dann in Ihrem Browser auf: ihredomain.de/path.php

Dann sollte der absolute Pfad zu der WordPress-Installation im Browser erscheinen.

Sie benötigen allerdings nicht den absoluten Pfad zur WordPress-Installation, sondern zu der .htpasswds-Datei. Wenn die .htpasswds-Datei im Stammverzeichnis liegt, müssen Sie nun die Verzeichnisse zu Ihrer WordPress-Installation aus dem Pfad entfernen.

Dazu nochmal ein Beispiel:

Der Browser hat mir folgende Pfad zu meiner WordPress-Installation ausgegeben:

/is/htdocs/vj1015323_S748JFH65SS/www/wordpress

In meinem FTP Programm sehen ich, das die WordPress Installation unter /www/wordpress liegt. Demnach muss ich also www/wordpress aus dem absoluten Pfad entfernen. Der absolute Pfad zu meinem Stammverzeichnis lautet demnach:

/is/htdocs/vj1015323_S748JFH65SS/

Und der Pfad zu meiner htpasswds-Datei lautet damit:

/is/htdocs/vj1015323_S748JFH65SS/.htpasswds

Entsprechend trage ich also als Pfad ein:  

AuthUserFile /is/htdocs/vj1015323_S748JFH65SS/.htpasswds

Ich habe einen 404 Fehler oder einen „Too many redirects“ Fehler.

Je nachdem, wie Ihr Server konfiguriert ist, kann das vorkommen. In diesem Fall öffnen Sie die .htaccess-Datei aus ihrem WordPress Stammverzeichnis (nicht unsere neue .htaccess-Datei aus dem /wp-admin Verzeichnis).

Fügen Sie dort den folgenden Code über die vorhandenen WordPress-Codes hinzu:

ErrorDocument 401 default

Jetzt sollte die zusätzliche Authentifizierung für Ihren WordPress-Administrationsbereich funktionieren.

Wie man das Admin Ajax Problem behebt

Wenn Sie Ihr WordPress Admin-Verzeichnis mit einem zusätzlichen Passwort schützen, dann werden die Ajax-Funktionen im Frontend deaktiviert (falls Sie so etwas verwenden). 

Falls solche Problem bei Ihnen auftauchen, versuchen Sie folgendes:

Öffnen Sie unsere neue .htaccess-Datei, die sich im Ordner /wp-admin befindet (nicht die .htaccess Datei aus dem WordPress Stammverzeichnis!).

Fügen Sie dieser Datei den folgenden Code hinzu:

<Files admin-ajax.php>
  Order allow,deny
  Allow from all
  Satisfy any 
</Files> 

Danach sollte die AJAX-Funktionalität wieder hergestellt sein.

Ich hoffe, mit dieser Anleitung waren Sie in der Lage, einen zusätzlichen Verzeichnisschutz für WordPress zu erstellen.

Das Thema Sicherheit sollte für jeden ernsthaften WordPress Betreiber eine wichtige Rolle spielen. Wir empfehlen an dieser Stelle nochmals unseren großen zweiteiligen Artikel über WordPress Sicherheit.

René Aye


René Aye ist Inhaber von Pyropixel und bietet seit 2005 professionelles Webdesign, Webentwicklung und Appentwicklung an. Durch seine Ausbildung zum Mediengestalter hat er zudem viel Erfahrung im Bereich Grafik, Layout und Musikproduktion.