Mehr Sicherheit für WordPress – Admin / Login durch htaccess absichern

Roland Engert

update:

Joomla, Wordpress, CMS

erstellt am:

htpasswd - Sicherheit für WordPress

Man kann es nicht oft genug sagen, das WordPress Admin / Login sollte man für mehr Sicherheit zusätzlich absichern. Im Backend hat nur der Administrator etwas zu suchen. Gegebenenfalls darf noch der eine oder andere Nutzer mit eingeschränkten Rechten ins Backend. Der Rest soll und muss draußen bleiben.

WordPress ist von Haus aus nicht unsicher und mit dem einen oder anderen zusätzlichen Plugin ist man einer ziemlich sicheren Seite. Dennoch gibt es Schwachstellen. Eine der Schwachstellen sitzt vor dem Computer. Häufig sind es schwache Passwörter oder veraltete Plugins die  Hackern nahezu ungehinderten Zugriff erlauben.

Eines der beliebtesten Stellen um in WordPress einzudringen ist der Loginbereich. Mitunter hatte ich 1500 Angriffe in einer Nacht. Hier versuchen Hacker über die Eingabe von Nutzer und Passwort in den Adminbereich von WordPress zu gelangen. Neben einigen Plugins wie das Limit Login Attempts, das Angriffsversuche aufzeichnet und IP-Adressen ausschließen kann, gibt es den sogenannten .htaccess Schutz (Punkt htaccess). Ein htaccess-Schutz ist in wenigen Minuten eingerichtet und ist äußerst wirkungsvoll. Der htaccess – Schutz schaltet vor der eigentlichen Eingabe nochmals ein Eingabefenster.

Was ist .htaccess und .htpasswd?

Bevor es los geht ein paar Erläuterungen.

Die Besonderheit der Dateien ist der Punkt vor der Datei. Dieses macht, um es einfach auszudrücken, die Dateien für Außenstehende “unsichtbar”. Das ganze kommt aus der Unixwelt. Dieses alles ist aber für unser Vorhaben, einen .htaccess Schutz einzurichten, nicht wichtig.

Die Dateien .htaccess und .htpasswd (jeweils mit Punkt davor) sind nötig sind um einen wirkungsvollen Htaccess Schutz einzurichten. Diese beiden Dateien schützen den Administratorbereich vor unerwünschten Zugriffen.

Eine .htaccess oder .htpasswd Datei ist im Grunde eine Textdatei, nur dass es keine Endung mit .txt gibt und vor der Datei ein Punkt steht. Eine .htaccess Datei kann man zum Beispiel in htaccess.txt umbenennen und diese dann auch wie eine Textdatei lesen oder beschreiben.

Eine htaccess – Datei ist in aller Regel mit der Installation von WordPress bereits auf dem Server angelegt. Diese Datei enthält Informationen über verschiedene Verhaltensweisen. So kann zum Beispiel in der Datei hinterlegt werden ob der Aufruf der Domain auf die Domain mit oder ohne www weitergeleitet wird. Ebenfalls ist es möglich eine Weiterleitung auf eine andere Domain einzurichten.

Diese vorhandene .htaccess – Datei muß nur noch durch wenige Zeilen ergänzt werden.

Die Datei htpasswd muß erstellt werden, was schnell erledigt ist.

Benötigt wird ein Editor. Bitte kein Word als Editor verwenden. Word erzeugt Dateien die eigenen Code mitbringen und gegebenenfalls weiße Seiten oder Fehlermeldungen produziert. Ein geeigneter Editor ist Wordpad oder noch besser Notepad++.

Problem –  Windows und Dateien ohne Endung und mit Punkt davor. Wer Windows nutzt wird schnell merken dass Windows nicht mit diesen Dateien umgehen kann. Das ist aber auch nicht notwendig. Das sei nur erwähnt falls jemand mit seinem Forscherdrang Windows herausfordert. Windows wird in der einen oder anderen Situation auffordern der Datei doch eine Endung zu geben. Das Windowsproblem spielt für unser Vorhaben ebenfalls keine Rolle.

Erster Schritt – die Passworddatei .htpasswd in 5 Minuten

Dauer ca. 5 Minuten, Schwierigkeitsgrad: einfach.

Benötigt wird ein Editor und ein FTP Zugang um Dateien hochzuladen, bzw. tut es der von einigen Providern angebotene Dateiuploader.

In der .htpasswd ist der Nutzername  und ein verschlüsseltes Passwort, getrennt durch einen Doppelpunkt, hinterlegt (z.B.: Hamster:$apr1$Ur./BGZM$cXW5nkwclAr6iCZJQznJt/). Achtung: Das was hinter dem Doppelpunkt erscheint ist ein verschlüsseltes Passwort, das ist nicht das Passwort in Klarschrift. In unserem Beispiel ist es das Passwort “Hamsterrad” in verschlüsselter Form.

Der htpasswd Generator leistet perfekte Dienste. Er liefert genau das aus was wir brauchen. Dazu auf der Generatorseite einen Nutzernamen und ein sicheres Passwort eingeben. Es sind Sonderzeichen erlaubt. Diese Passwortkombination sollte sich gegenüber der Logindaten im WordPresslogin unterscheiden.

Am besten sind natürlich Passwörter die man sich merken kann, ansonsten neigt man dazu diesen Schutz weg zu lassen. Wie man sich merkbare aber wirkungsvolle Passwörter erstellen kann habe ich in diesem Artikel erklärt.

Wie auch immer, diese Nutzer und Passwortangaben lassen sich jederzeit ändern. Gibt es mehrere Personen die in das Backend müssen und man gerne für jeden ein anderes Nutzer- und Passwort hinterlegen möchte, so ist das kein Problem. Einfach für jeden Nutzer eine Zeile im htpasswd Generator erstellen lassen.

Zum Beispiel:
Hamster:$apr1$Ur./BGZM$cXW5nkwclAr6iCZJQznJt/
Vogel:$apr1$8jEc76vf$oTWD5D92Ir1oIgmWvyKTZ0

Das sind zwei Nutzer (Hamster und Vogel) mit jeweils einem eigenen Passwort. Das hat den Vorteil dass man mit dem löschen einer Zeile den Nutzer aus dem Backend ausschließen kann. So etwas soll ja vorkommen dass dieses notwendig ist.

Diese vom htpasswd Generator erstellte Zeile kopieren. Diese benötigen wir für die htpasswd Datei die wir erstellen.

Den Editor (z.B. Notepad++) öffnen, neue Datei erstellen und den Inhalt des htpasswd Generators einfügen. Die Datei nach belieben als .htaccess  oder als htpasswd.txt abspeichern und per FTP auf den Server auf die oberste Ebene hochladen. Falls nötig die Datei nun umgehend in .htpasswd umbenennen (Punkt htpasswd und ohne Endung). Mit oberster Ebene ist die Ebene gemeint in der die WordPressinstallation liegt, also kein Unterordner.

Damit ist schon der erste Schritt getan und hat ungefähr 5 Minuten gedauert – Kaffeepause!

Zweiter Schritt – die .htaccess

Im zweiten Schritt ändern wir die vorhandene .htaccess – Datei. Ich gehe davon aus dass eine htacces-Datei vorhanden ist. Mir wäre nicht bekannt warum das nicht der Fall sein sollte. Ist diese nicht vorhanden ist diese Datei wie die .htpasswd zu erstellen.

Diese .htaccess – Datei wird üblicherweise automatisch bei der Installation von WordPress mit angelegt und ist vorhanden. Diese .htaccess wird bei jedem Seitenaufruf abgerufen und die hinterlegten Zeilen werden vom Server abgearbeitet.

Diese htaccess Datei wird durch ein paar Angaben ergänzt. Geöffnet wird die Datei entweder zum Beispiel im filezilla durch rechtsklick mit der Maus und dem klicken auf “ansehen / bearbeiten”. Es öffnet sich der Standardeditor. Oder man bearbeitet diese Datei innerhalb des Datei- und FTP Systems das der Provider zur Verfügung stellt.

Alternativ die .htaccess downloaden in htaccess.txt umbenennen mit einem Editor öffenen und bearbeiten. Anschließend wieder hochladen und wieder umbenennen in .htaccess.

<Files wp-login.php>
  AuthName "Admin-Bereich"
  AuthType Basic
  AuthUserFile /pfad/zu/.htpasswd
  require valid-user
</Files>

Es wird definiert welche Datei durch htaccess und htpasswd geschützt wird und es wird definiert wo die htpasswd liegt. Diesen Pfad gilt es nun einzutragen. Weiß man den Pfad nicht, so kann man diesen selbst schnell mit einer kleinen, selbst erstellten Datei ermitteln.

Mit dem Editor eine neue Datei erstellen und diese anschließend als pfad.php abspeichern, per FTP hochladen und im Browser aufrufen, z.B. http://domain.de/pfad.php. Es wird der Pfad zur Installation und zur htpasswd angezeigt. Diesen Pfad kopieren und in die htaccess eintragen.

Code für die Datei pfad.php

<?php
$dir = dirname(__FILE__);
echo "<p>Full path to this dir: " . $dir . "</p>";
echo "<p>Full path to a .htpasswd file in this dir: " . $dir . "/.htpasswd" . "</p>";
?>

Anschließend die Datei pfad.php wieder löschen.

Das wars, der Schutz ist aktiviert! Ab sofort erscheint vor dem einloggen ein htaccess Formular. Schein kompliziert? Nein, auf keinen Fall. Für einen Neuling vielleicht etwas viel, ist aber wirklich kein Hexenwerk und zügig erledigt.

Jedenfalls besteht jetzt ein effektiver Schutz für den Adminbereich.

Der htaccess – Schutz ist aktiv

Ab nun ist der Htaccess Schutz für die WordPress Installation aktiv. Beim nächsten einloggen in das Backend erscheint vorab ein Abfragefenster bevor es zum eigentlichen Login geht. Sollte jemand den Usernamen und das Passwort für den Htaccess Schutz erraten muß er nun den Nutzer und das Passwort des normalen Logins hacken. Man kann von Zeit zu Zeit sich ein neues Passwort generieren lassen und einfach den entsprechenden Teil in der htpasswd ändern.

Als weiteren Schutz empfehle ich Limit Login Attempts. Dieses Plugin zeichnet die Hacking Versuche auf die auf das Backend erfolgen und schließt Nutzer, besser IPs, je nach Einstellung aus.

Ohne htaccess Schutz zeichnete dieses Plugin zwischen 5 und 1800 Hackingversuche per Nacht auf. Das heißt Hacker haben versucht über das normale Loginformular in das Backend einzudringen. Mit dem Htaccess Schutz werden die Hackingversuche bereits am Server abgefangen.

Bin ich damit sicher?

Nein. Wenn es jemand ernsthaft darauf anlegt lässt sich alles knacken. Mit der htaccess und der htpasswd ist WordPress allerdings um eine wirkungsvolle Schutzmauer erweitert worden. Diese genügt um die meisten Hacker von der Seite fern zu halten. Seit dem htaccess Schutz ist das Plugin Limit Login Attempts arbeitslos und es wurde kein Hackingversuch mehr verzeichnet.

5 Gedanken zu „Mehr Sicherheit für WordPress – Admin / Login durch htaccess absichern“

  1. Wie hast du es geschafft, dass die htaccess nur bei wp-admin greift, bei mir wird das auth schon verlangt, wenn ich nur anonym auf die hauptseite will!?

  2. Hallo,

    eine gute Möglichkeit bietet das Plugin WPS Hide Login, wie ich finde.

    Es bewirkt, dass man nach der Aktivierung unter Einstellung > Allgemein die Login-URL des WordPress-Zuganges ändern kann, wodurch die wp-login.php page geschützt wird. Also bei mir hat es sehr gut geholfen, ich hatte vorher viele Hacking-Versuche durch zahlreiche unterschiedliche IPs, sodass ein Blockieren keinen Sinn mehr machte

Schreibe einen Kommentar