Der WordPress Login ist ein beliebtes Angriffsziel für Hacker. Selbst wenn du ein starkes Passwort nutzt, kann es von hartnäckigen Angreifern irgendwann geknackt werden. Diese sogenannten Brute-Force-Attacken können zudem auch die Performance deiner Webseite stark belasten. Dabei ist es ziemlich einfach, den Zugang zum Admin-Bereich zu schützen.

Wie jede Webseite ist auch eine WordPress Seite nie zu 100% sicher. Angreifer können über die verschiedensten Wege ins System gelangen. Am häufigsten geschieht dies über:

  • Sicherheitslücken in Plugins oder Themes
  • eine veraltete WordPress Version
  • Sicherheitsprobleme beim Provider oder Webserver
  • unsichere Passwörter

Doch dagegen kann man einiges tun. Ein paar Tipps für den Basisschutz habe ich vor einiger Zeit schon mal zusammengestellt. Heute möchte ich dir noch eine zuverlässige Möglichkeit zur Absicherung des WordPress Logins zeigen.

Serverseitigen Schutz für den WordPress Login (wp-login.php) einrichten

Wie meldest du dich im Admin-Bereich deiner Webseite an? Über meineseite.de/wp-admin oder /wp-login.php. Das wissen leider auch Hacker. Daher sollte man genau diesen Bereich durch ein zusätzliches Passwort absichern. D.h. nur wer diese Zugangsdaten kennt, gelangt auch auf die eigentliche Login-Seite.

Der serverseitige Schutz wird durch die Datei .htaccess eingerichtet. Darin werden Regeln für den Webserver festgelegt wie z.B. für Weiterleitungen, Caching oder auch Zugriffschutz. Genau das nutzen wir nun, um speziell die Datei wp-login.php mit einem Passwort zu schützen.

Für die Einrichtung des zusätzlichen Schutzes, benötigst du.

  • Zugangsdaten zu deinem FTP-Server
  • ein FTP-Programm (z.B. FileZilla)
  • einen Texteditor (Windows-Editor, Notepad++)
  • den Pfad zu deiner WordPress-Seite

Wie finde ich den Pfad zur WordPress Installation?

Den genauen Datei-Pfad zur WordPress-Installation findest du bei deinem Hoster im Kundenmenu. Vermutlich an einer Stelle, die gut versteckt ist.
Eine weitere Möglichkeit ist die Anzeige der PHP-Einstellungen deines Servers. Dazu erstellst du eine PHP-Datei und fügst folgenden Code ein:

<?php
phpinfo();
?>

Anschließend benennst sie z.B. info.php und lädst sie in dein WordPress Verzeichnis. Nun kannst du im Browser unter meineseite.de/info.php alle PHP-Einstellungen sehen. Bei dem Punkt DOCUMENT_ROOT findest du dann den richtigen Pfad.

Falls du z.B. Sucuri oder UpdraftPlus installiert hast, kannst du auch dort schnell nachschauen.

Pfadangabe Sucuri

Bei Sucuri findest den Pfad unter Site Info > Access File Integrity

 

Root Pfad bei updraftPlus

Bei UpdraftPlus klickst du einfach auf > Erweiterte Werkzeuge

Htpasswd erstellen

Zuerst erstellt du die Datei .htpasswd. Darin wird der Benutzername und das Passwort für den serverseitigen Login gespeichert.
Das geht ganz einfach mit dem Online-Tool Htpasswd Generator.

Hier gibst du im ersten Feld den gewünschten Benutzernamen ein. Im nächsten Feld kannst Du dann dein Passwort eingeben.

screenshot htpasswd generator

Der Online-Generator hilft dir beim Anlegen einer htpasswd Datei.

Der htpasswd Generator verschlüsselt anschließend dein Passwort. Der Benutzername bleibt im Klartext stehen. Die folgende Textzeile kannst du nun einfach kopieren und in die Datei .htpasswd einfügen.

generator verschlüsselt passwort

Verschlüsseltes Passwort

htaccess anpassen

Im nächsten Schritt musst du die Datei .htaccess öffnen. Diese findest du im Hauptverzeichnis deiner WordPress Installation. Also dort, wo auch die wp-config-Datei zu finden ist.
Falls dort keine angelegt sein sollte, kannst du einfach eine neue erstellen. Achte aber auf den Punkt vor dem Namen, also .htaccess.

Upload htaccess mit filezilla

Verbind mit dem FTP-Server

Nun verbindest du dich per FTP mit deinem Server und lädst die Datei herunter. Auf jeden Fall solltest du die .htaccess Datei vorher sichern.

Nun öffnest du die Datei mit einem Texteditor wie z.B. Notepad++.  (Nicht Word). Dort sind vermutlich schon einige Anweisungen von WordPress oder einem Caching-Plugin zu finden.

Füge nun folgende Zeilen ein:

# Protect wp-login.php
<Files wp-login.php>
  AuthName "Protected Admin-Area"
  AuthType Basic
  AuthUserFile /der/genaue/pfad/zu/wp/.htpasswd
  Require valid-user
</Files>

Im Klartext bedeutet das: schütze die Datei wp-login.php mit den Zugangsdaten aus der Datei .htpasswd.

Achtung: den Pfad zur .htpasswd-Datei musst du natürlich noch anpassen.

Geschützter Admin-Bereich

Durch diese zusätzlichen Zeilen wird nun der WordPress Login doppelt geschützt. D.h. wenn Du dich nun über deineseite.de/wp-admin anmeldest, geht zunächst ein extra Fenster auf. Hier gibst du die zuvor angelegten Zugangsdaten ein. Erst danach wird dir der eigentliche Login-Screen von WordPress angezeigt.

Zusatz-Login per htaccess

Vorgeschaltetes Login-Fenster. Nachdem der Login überkprüft wurde, wird der Zugang zum WP-Login möglich.

Wie wirkungsvoll diese zusätzliche Absicherung ist, zeigt eine Auswertung der Sucuri Logs.

Bei dieser Webseite gab es keinen Passwortschutz der wp-login.php. Wie man in den Failed Logins sieht, gab es täglich mehrere Login-Versuche.

Failed logins

Nachdem der WordPress Login der Seite abgesichert wurde, gibt es keinen einzigen Eintrag mehr.

keine login versuche

 

Zusätzliche Sicherheitseinstellungen

Abschließend solltest du noch die beiden Dateien .htaccess und .htpasswd selbst vor Zugriffen schützen. Zusätzlich kannst du auch noch die wp-config-Datei schützen und die XML-RPC-Schnittstelle deaktivieren.


# Zugriff verweigern
<FilesMatch "(\.htaccess|\.htpasswd)">
  Order deny,allow
  Deny from all
</FilesMatch>
# Konfigurationsdatei schützen
<files wp-config.php>
Order allow,deny
Deny from all
</files>
# Schnittstelle abstellen
<Files xmlrpc.php>
 Order Deny,Allow
 Deny from all
</Files>

Darüber hinaus gibt es noch viele weitere Einstellungen, die über die .htaccess- und auch die wp-config-Datei gemacht werden können.
Auf GitHub gibt es eine übersichtliche Sammlung nützlicher htaccess-Schnipsel. Auf jeden Fall zu empfehlen!