In einem der letzten Artikel habe ich gezeigt, wie du dein WordPress Passwort auf der Datenbank zurücksetzen kannst, falls du es vergessen hast und auch die Mailadresse nicht mehr stimmt. Im heutigen Artikel geht es darum deinen Blog richtig abzusichern. Ich versuche mich dabei auf das Wesentliche zu beschränken, damit du dies als Step-by-Step Anleitung verwendet kannst um deine Seite optimal zu schützen. Sollte sich durch das Feedback auf den Artikel herausstellen, dass einer der Steps detaillierter beschrieben werden sollte, werde ich dies in einem eigenen Artikel tun und diesen entsprechend verlinken.

Step 0:
Bevor du überhaupt anfängst solltest du dir Gedanken machen, ob dein Passwort auch wirklich sicher ist. Was bringt die beste Absicherung gegen Hacker, wenn dein Passwort aus dem Namen deiner Frau und deinem Geburtsjahr besteht. Solche oder ähnliche Kombinationen sind zu vermeiden. Verwende sichere Passwörter! Diese bestehen im Optimalfall aus Wörtern die nicht in einem Wörterbuch stehen, beinhalten Sonderzeichen und Zahlen und es werden Groß- und Kleinbuchstaben verwendet.

Step 1:
Admin User löschen! Per Default gibt es in jeder WordPress Installation den User Admin. Dieser wird bei der Installation automatisch angelegt, sofern du nichts anderes angegeben hast. Dies macht es für Hacker natürlich einfach, denn einen richtigen Loginuser haben sie so bereits und brauchen nur noch dein Passwort zu knacken. Lösche daher den Admin User und erstelle dir einen eigenen.

Step 2:
Die wohl sensibelste Datei bei jeder WordPress Installation ist die wp-config.php Datei. In ihr steht im Klartext dein Datenbankuser und das Passwort. Wer also den Zugriff auf diese Datei erlangt, hat auch automatisch Zugriff auf deine Datenbank.
Um diese vor unbefugtem Zugriff zu schützen, sollten diese über CHMOD auf 400 oder 440 gesetzt werden.

 

chmod 440 wp-config file

Step 3:
Um zusätzlich zu verhindern, dass Unbefugte nach deiner wp-config.php suchen, solltest du eine .htaccess Datei mit folgendem Code auf deinen Server ins Installationsverzeichnis deines Blogs legen:

<files wp-config.php> 
order allow,
deny deny from all

Falls deine wp-config Datei nicht im Root liegt, muss du noch den Pfad im Code zu deiner wp-config anpassen, damit es funktioniert.

Step 4:
Zusätzlich sollte der Adminbereich deines Blogs abgesichert werden. Dies lässt sich auch über eine .htaccess erledigen. Dazu wird der wp-admin Ordner deiner Installation mit einem User und Passwort geschützt. Der Pfad sollte in etwa so aussehen: /yourPage/wp-admin/
Dabei zeigt „yourPage“ auf den Ordner in dem deine WordPress Installation auf dem FTP-Server liegt.
Ich habe ein Beispiel für die .htaccess und die .htpasswd Datei erstellt. Bei diesen musst du nur noch den Pfad und Username / Passwort anpassen.

# .htaccess 
AuthUserFile /pathOnYourServer/yourBlog/wp-admin/.htpasswd
AuthGroupFile /dev/null 
AuthName 'bitte Zugangsdaten eingeben' 
AuthType Basic require valid-user 

# .htpasswd 
yourUser: $apr1$dHjBo1J4Ago$B

 

Das Passwort in der .htpasswd Datei wird nicht im Klartext hinterlegt, sondern ist über Base64 verschlüsselt. Eine Base64 Verschlüsselung deines Passworts kannst du dir über verschiedene Generatoren im Internet erstellen. Einen möglichen habe ich hier verlinkt: http://www.htaccesstools.com/htpasswd-generator/ Falls du dir selbst ein kleines Skript zur Verschlüsselung des Passworts schreiben willst, gibt es dafür die PHP Funktion:

base64_encode ( string $data )

Step 5:
Um es Angreifern etwas zu erschweren kann zusätzlich die wp-config Datei in ein höheres Verzeichnis auf dem Server verschoben werden. Die meisten Plug-Ins sollten das unterstützen. Eine Diskussion über die Vor- und Nachteile findest du hier. http://wordpress.stackexchange.com/
Ich persönlich habe mich dafür entschieden, stelle die Möglichkeit jedoch ohne Wertung vor.

Step 6:
Um dich besser vor automatisierten Brute-Force- oder Wörterbuch-Angriffen zu schützen, solltest du außerdem die Anzahl der Loginversuche limitieren. Standardmäßig ist die Anzahl der möglichen Loginversuche bei WordPress nicht eingeschränkt. Durch den Einsatz eines Plug-Ins wie „Limit Login-attempts“, lassen sich die Login Versuche pro IP-Adresse z.B. auf maximal 5 Versuche zu reduzieren. Wird diese Anzahl überschritten, kann entweder die IP-Adresse oder der User für eine bestimmte Zeit gesperrt werden. Die Dauer der Sperre kannst du über das Plugin festlegen. Ich persönlich habe es sogar so eingestellt, dass der User auf unbestimmte Zeit gesperrt wird, bis ich Ihn manuell wieder freischalte.

Step 7:
Um es Angreifern zusätzlich schwer zu machen, solltest du deine WordPress Version verbergen. Jede WordPress Page schreibt automatisch in den HTML-Header die aktuell installierte Version deines Blogs. Das sieht dann in etwa so aus:

<meta name="generator" content="WordPress 4.6" />

Wenn ein Angreifer deine WordPress Version kennt, macht es ihm das natürlich das Leben etwas leichter, da er so die Schwachstellen kennt, vor allem wenn deine Version gerade nicht auf dem aktuellsten Stand ist.
Über folgenden Befehl in deiner functions.php Datei kannst du unterdrücken, dass WordPress seine Version im HTML-Header preisgibt.

remove_action('wp_head','wp_generator');

Achtung, bevor du den Befehl in deine functions.php einfügst, solltest du natürlich ein Child-Theme erstellen, damit die Änderung bei Updates nicht verloren geht.

Step 8 (optional):
Der letzte Schritt in meiner Anleitung zur sicheren Website ist optional. Je verbreiteter eine Software ist, desto mehr Tools gibt es auch meistens sie zu Hacken. Dies gilt auch für den Standard-Captcha von WordPress.

WordPress Captcha beim Login

Um hier auf Nummer sicher zu gehen, kannst du den Google authenticator verwenden. Dabei wird dir nach dem Abschicken der Logindaten ein 6-stelliger Code auf dein Telefon geschickt. Erst wenn du diesen korrekt auf der Website bestätigst, gelangst du in dein Dashboard. Dies setzt aber voraus, dass du dein Mobiltelefon immer griffbereit hast, wenn du dich in deinen Blog einloggen willst.

Ich hoffe der Artikel hat dir geholfen deinen Blog etwas sicherer zu machen. Solltest du Fragen haben oder ich an einer Stelle nicht präzise genug gewesen sein, lass es mich gerne über die Kommentare wissen, oder schreib mir eine E-Mail an info(at)b-scheidt.de

WordPress richtig absichern

von Benjamin Scheidt benötigte Zeit: 7 min
0