WordPress: Login- und Adminbereich per .htaccess schützen

Inhalt

WordPress ist das meistgenutzte CMS der Welt um Webseiten zu realisieren. Nach Schätzungen laufen mehr als 40% aller Webseiten mit WordPress. Selbstverständlich ist auch das Interesse von Hacker:innen gerade an dieser Software hoch, da sich hier eine schier unendliche Anzahl an Webseiten attackieren lassen.

Daher sollten Sie als Betreiber:in einer WordPress-Seite alles daran setzen, Ihre Webseite gegen solche Angriffe zu schützen. Natürlich gibt es keinen hundertprozentigen Schutz. Dieses Ziel ist leider in der Welt der IT unrealistisch und unerreichbar. Es gibt jedoch eine Vielzahl an Sicherheitsmaßnahmen, die Sie ergreifen können, um Ihre Sicherheit und den Schutz Ihrer Webseite zu erhöhen.

Wie kann ich den Adminbereich von WordPress sichern? Eine Maßnahme dabei ist das Einsetzen einer .htaccess Datei mit einer zugehörigen .htpasswd, um den Login- und den Adminbereich Ihrer Webseite besser zu schützen.
Falls Sie wenig Zeit mitbringen oder einfach nur die schnelle Umsetzung der beiden Dateien wünschen, finden Sie zum Ende des Artikels nochmal ein tl;dr mit der Zusammenfassung, wie diese Dateien erstellt werden.

Was sind .htaccess und .htpasswd Dateien?

Die .htaccess Datei

Die .htaccess Datei ist eine Konfigurationsdatei, die auf Apache-Webservern verwendet wird. Sie wird verwendet um Konfigurationseinstellungen für das Verzeichnis in dem sie liegt und für alle Unterverzeichnisse hiervon zu definieren. Mit der .htaccess können viele Aspekte der Serverkonfiguration geändert werden, ohne die eigentliche Konfiguration des Servers anzupassen und zu verändern.

Beispiele für die Möglichkeiten, die eine .htaccess Datei bietet, sind das Definieren von Weiterleitungen innerhalb der Webseite, Zugriffssteuerungen innerhalb der Webseite oder auch weitere Servereinstellungen anzupassen.

Die .htpasswd Datei

Die .htpasswd Datei wird in Verbindung mit der .htaccess Datei verwendet. Sie ist dafür da, um eine HTTP-Authentifizierung für den Zugriff auf bestimmte Bereiche einer Webseite einzurichten. In ihr finden sich die Benutzernamen und, in verschlüsselter Form, die Passwörter, die für eine Authentifizierung nötig sind.

Diese werden abgerufen und abgeglichen, wenn ein:e Benutzer:in versucht, auf bestimmte Bereiche oder Verzeichnisse einer Webseite zuzugreifen. Die .htpasswd wird häufig verwendet, um den Zugriff auf Teile einer Webseite einzuschränken und zu schützen. Dies können Sie auch nutzen, um den WordPress Login per .htaccess zu schützen.

Warum WordPress Admin mit .htaccess schützen?

Die Möglichkeit, den wp-admin von WordPress mit einer .htaccess zu schützen, bringt Ihnen einen gewissen Grad an zusätzlicher Sicherheit. So können Zugriffe auf den Login von WordPress geschützt und eingeschränkt werden. Egal, ob von menschlichen, oder automatisierten Angreifer:innen.

Wenn beispielsweise Bots automatisiert probieren, per Bruteforce Attacken (hierbei wird automatisiert eine schier unendliche Anzahl an Nutzernamen und Passwörtern durchprobiert) in den Admin Bereich Ihrer WordPress Seite zu gelangen, kommen sie erst garnicht bis dahin. Sie scheitern an der Sicherheitsschranke, die uns die .htaccess bringt.

Dies reduziert die automatischen Loginversuche auf Ihre WordPress Seite, was wiederum auch Ressourcen und die Anzahl an unerwünschten Zugriffsversuchen reduziert. Damit bietet eine .htaccess in Kombination mit einer .htpasswd eine weitere Möglichkeit, Ihren Bereich wp-admin zu schützen. Und dies erhöht den Schutz Ihrer WordPress Webseite.

Wie kann ich den WordPress Admin mit .htaccess schützen?

Um einen solchen zusätzlichen Schutz zu realisieren, benötigen Sie die zwei Dateien .htaccess und .htpasswd. WordPress generiert von Hause aus bereits eine .htaccess, die im Stammverzeichnis Ihrer WordPress Installation liegt. Die Dateien die Sie erstellen werden Sie jedoch im Unterverzeichnis wp-admin hinterlegen.

Ausnahmeregelung: die Datei admin-ajax.php

Wenn Sie Ihren Admin Bereich in WordPress mithilfe einer htaccess schützen wollen, müssen Sie jedoch eine Ausnahme machen. Hierbei handelt es sich um die admin-ajax.php. Diese Datei ist ein wichtiger Bestandteil von WordPress. Sie kümmert sich um AJAX Aufrufe von WordPress selber und von Plugins, die diese benutzen.

Wenn sie hinter einem .htaccess Login liegt, dann können weder WordPress noch Plugins auf sie zugreifen. Dies stört die Funktionalität und kann zu schwerwiegenden Problemen auf der Webseite führen. Daher muss für diese Datei in der .htaccess eine Ausnahme definiert werden.

Schritt 1: korrekten Pfad zu unserer WordPress Installation ermitteln

Als erstes müssen Sie den korrekten Pfad, den Ihre WordPress Installation besitzt, herausfinden. Dazu erstellen Sie eine Datei mit dem Namen info.php mit dem Code Editor Ihres Vertrauens. Der Inhalt dieser Datei muss wie folgt aussehen:

<?php
phpinfo();
?>

info.php

DIese Datei laden Sie nun per FTP auf Ihre WordPress Seite. Sie kann beispielsweise im Hauptverzeichnis abgelegt werden. Wenn Sie dies getan haben, rufen Sie die Datei im Browser auf. Die URL dazu lautet name-meiner-seite.de/info.php.

In dieser Datei finden Sie nun viele Informationen zu Ihren PHP-Einstellungen. Unter dem Punkt DOCUMENT_ROOT finden Sie letztlich den genauen Pfad zu Ihrer Webseite, welchen Sie in Schritt 2 benötigen.

Alternativ können Sie auch im WordPress Backend zu Werkzeuge --> Website-Zustand --> Bericht --> Verzeichnisse und Größen navigieren. Hier gibt es den Punkt „Ort des WordPress-Verzeichnisses“. Hier finden Sie ebenfalls den Pfad zu Ihrer Installation.

Schritt 2: .htaccess erstellen

In diesem Schritt erstellen Sie nun die .htaccess Datei, um Ihren Admin Login per .htaccess zu schützen. Mit Ihrem Code Editor erstellen Sie nun die Datei, die genau „.htaccess“ heißen muss. Dort fügen Sie den nachfolgenden Code ein. In diesem Schritt benötigen Sie den Pfad aus Schritt 1 und ergänzen ihn am Ende um /wp-admin/.htpasswd.

AuthUserFile /var/www/vhosts/xyz123.web500.hoster.net/httpdocs/wp-admin/.htpasswd
AuthName 'bitte Zugangsdaten eingeben'
AuthType Basic
require valid-user

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

Beispiel für WordPress Login per .htaccess schützen, Datei .htaccess

Die ersten vier Zeilen sind dafür da, um wp-admin per .htpasswd zu schützen. Die letzten fünf Zeilen sind notwendig, damit die Datei admin-ajax.php nicht von einem Passwort geschützt wird. Dies ist notwendig, da diese Datei von WordPress oft aufgerufen wird.

Beispielsweise ist der Zugriff auf diese Datei notwendig, damit der Action Scheduler vernünftig läuft und funktioniert. Das bedeutet, wenn Sie diese Datei ebenfalls hinter einer .htaccess verstecken würden, würde die Funktionalität Ihrer Webseite darunter leiden und Fehler können auftreten.

Schritt 3: .htpasswd erzeugen

Für einen .htaccess Schutz in WordPress fehlt nun noch die passende .htpasswd Datei. In dieser wird der Benutzername (oder die Benutzernamen) sowie die zugehörigen Passwörter hinterlegt. Da das Passwort verschlüsselt hinterlegt wird, müssen Sie dieses auch verschlüsselt in die Datei schreiben.

Es gibt unzählige Webseiten, auf denen Sie aus Ihrem Klartext-Passwort ein verschlüsseltes Passwort generieren können. Eine dieser Seiten ist entwicklertools.de.
Alternativ können Sie die Passwortgenerierung auch unter einem Unix basierten Betriebssystem selber vornehmen. Mehr Informationen dazu finden Sie in den Linux Manual Pages.

WordPress .htpasswd Generierung
Bild 1: WordPress .htpasswd Generierung

Hier tragen Sie Ihren gewünschten Benutzernamen sowie das gewünschte Passwort ein und klicken auf „Generieren“. Anschließend erhalten Sie den String, den Sie in Ihre .htpasswd eintragen müssen. Wenn der Benutzername „test“ und das Passwort „test2“ lautet, sieht der String beispielsweise wie folgt aus:

test:$2y$10$BEpj5lS/lhu4yuzw/Co4E.C8hhVSaGa8lJe1UM8i9mPB.9PW9W2d.

Beispielinhalt für .htpasswd

Diesen String tragen Sie anschließend in Ihre .htpasswd ein.

Schritt 4: Hochladen der erzeugten Dateien

Im letzten Schritt müssen Sie die Dateien nun noch per FTP hochladen, damit sie auf Ihrer Webseite zum Einsatz kommen. Dazu navigieren Sie in den Unterordner /wp-admin und laden die beiden Dateien hier hoch.

Nach einer kurzen Wartezeit navigieren Sie anschließend auf Ihre Webseite und prüfen, ob der .htaccess Schutz im WordPress Admin Bereich korrekt funktioniert. Wenn dies der Fall ist, sehen Sie solch ein Fenster, welches nach dem Benutzernamen und dem Passwort fragt:

WordPress Admin .htaccess Schutz
Bild 2: WordPress Admin .htaccess Schutz

Wenn Sie beim Aufruf des WordPress Admin Bereichs nach diesem Zugang gefragt werden, dann hat alles korrekt funktioniert. Ihr .htaccess Schutz für den WordPress Login ist eingerichtet. Und Sie haben dadurch den Schutz Ihrer Webseite erhöht, ohne die Funktionalität einzuschränken oder zu gefährden. Und automatisierte Bruteforce-Attacken durch Bots laufen gegen eine zusätzliche Wand.

tl;dr: WordPress Admin mit .htaccess schützen

Hier nochmal eine kurze Zusammenfassung und eine schnelle Übersicht, wie der Schutz des Login bzw. Admin Bereichs in WordPress mithilfe von .htaccess und .htpasswd verbessert werden kann:

  • Pfad der WordPress Installation ermitteln (am schnellsten identifizierbar im Backend Ihrer WordPress Installation unter Werkzeuge –> Website-Zustand –> Bericht –> Verzeichnisse und Größen im Punkt „Ort des WordPress-Verzeichnisses)
  • .htaccess erstellen und mit folgendem Snippet befüllen (Pfad zur Webseite aus vorherigem Punkt übernehmen und ans Ende noch /wp-admin/.htpasswd anhängen)
AuthUserFile /var/www/vhosts/xyz123.web500.hoster.net/httpdocs/wp-admin/.htpasswd
AuthName 'bitte Zugangsdaten eingeben'
AuthType Basic
require valid-user

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

Beispiel für .htaccess Datei

  • einen Generator für die Erstellung von Usernamen und Passwort für die .htpasswd benutzen (zum Beispiel den von Entwicklertools.de
  • Usernamen und Passwort in die .htpasswd einfügen
  • beide Dateien per FTP in das Unterverzeichnis /wp-admin von der WordPress Installation kopieren
  • Testen, ob alles funktioniert

Ausblick: weitere Schutzmaßnahmen für Ihre WordPress Installation

Wie bereits erwähnt, gibt es einen Haufen an potenziellen Schutzmaßnahmen, die die Sicherheit Ihrer WordPress Seite verbessern können. Als Betreiber:in einer Webseite sollte der Schutz der Webseite und der Nutzerdaten immer den höchsten Stellenwert genießen.

Zu den umzusetzenden Maßnahmen für die erhöhte Sicherheit Ihrer Webseite und Ihrer Kundendaten gehören beispielsweise folgende wichtige Punkte:

  • WordPress, Plugins und Themes stets aktuell halten und regelmäßig Updaten
  • Verwendung von sicheren, einzigartigen Passwörtern
  • Verwendung von 2FA für den Login in den Adminbereich
  • Installation und Verwendung von Sicherheitsplugins, beispielsweise einer Firewall
  • Schützen von Systemdateien von WordPress
  • Sicherheit als Prozess verstehen, der niemals abgeschlossen ist
Info

November 17, 2023

weitere Artikel
Brauchst du Hilfe?

Benötigst du Hilfe bei der Umsetzung, der Korrektur oder Optimierung deiner WordPress Seite?

Nimm gerne mit uns Kontakt auf und wir schauen, wie wir dir behilflich sein können!

Teile deinen Fund!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert