WordPress sicherer machen

Wordpress sicherer machen

Da WordPress eine sehr beliebte und viel genutzte Software ist, steigt – wie bei allen populären Anwendungen – natürlich auch das Interesse von Hackern, Crackern, Spammern und anderen Bösewichten, unerlaubten Zugriff auf WordPress-Blogs zu erlangen. WordPress ist von Haus aus bereits relativ sicher, aber es gibt ein paar Anpassungen, die man unbedingt vornehmen sollte, da sie es Hackern viel schwerer machen, den Blog zu knacken.

Benutzeraccount absichern

Auf die folgenden Dinge zu achten hatte ich euch bereits im Beitrag zur Installation von WordPress geraten: Wichtig ist, sofern noch nicht geschehen, zunächst ein starkes Passwort für euren Benutzeraccount zu erstellen.

Im Menü „Benutzer“ könnt ihr das Passwort eurer eigenen Accounts sowie die Passwörter von Accounts eventueller Mitarbeiter ändern. Klickt dazu auf den jeweiligen Benutzer, für den ihr das Passwort ändern möchtet, scrollt etwas nach unten und gebt in diesem Fenster das neue Passwort ein:

Wordpress Neues Passwort

Das Passwort sollte möglichst 10 oder mehr Stellen haben und aus einer wahllosen Kombination von Klein- und Großbuchstaben sowie Zahlen und Sonderzeichen bestehen. Auf keinen Fall sollten ganze Wörter oder Wortkombinationen verwendet werden, da automatische Hackerprogramme oftmals mit Datenbanken von Wörterbüchern ausgestattet sind. Komplexe Passwörter könnt ihr z.B. mit einem Passwort-Generator erstellen. Eure Passwörter solltet ihr sicher verwahren. Hierfür gibt es spezielle Programme, mit denen ihr eure Passwörter verwalten könnt, oder aber ihr benutzt ganz klassisch Papier und Stift und deponiert die notierten Passwörter an einem sicheren Ort.

Außerdem sollte der Benutzeraccount nicht „Admin“ oder „admin“ lauten, da automatisierte Login-Bots fast immer den Standard-Benutzernamen (also admin) ausprobieren. Wählt stattdessen besser euren Vornamen oder eine Kombination aus Vor- und Nachnamen.

Es empfiehlt sich, wenn möglich einen seperaten Account anzulegen, mit dem ihr eure Beiträge veröffentlicht. Dieser Account sollte nach Möglichkeit keine vollständigen Adminrechte sondern lediglich über Schreibrechte verfügen. Legt dazu einen neuen Benutzer an und weist ihm Redakteur- oder Autorenrecht zu. Verfasst die Beiträge von nun an unter dem Namen des neuen Accounts. Alternativ könnt ihr die Beiträge auch weiterhin mit eurem Administrator-Account schreiben und erst kurz vor oder nach der Veröffentlichung dem Account mit den beschränkten Rechten zuweisen.

WordPress up to date halten

Bereits im ersten Beitrag über WordPress habe ich erwähnt, dass WordPress ein sehr gut gepflegtes und aktuelles Content-Management-System ist. Daher gibt es relativ häufig Updates, die oftmals nicht nur neue Funktionen bringen, sondern häufig auch Sicherheitslücken und andere Schwachstellen schließen. Daher solltet ihr sowohl eure WordPress-Software als auch alle Plugins und das von euch verwendete Theme stets updaten und auf dem aktuellsten Stand halten.

Für den NOtfall: Backups

Alle weiter unten vorgestellten Mittel und Wege erhöhen die Sicherheit eures WordPress-Blogs deutlich, eine hundertprozentige Garantie auf Sicherheit gibt es aber natürlich nicht. Sollten dennoch einmal alle Stricke reißen oder ihr versehentlich selbst den Blog außer Funktion setzen, ist ein Backup das A und O. Grundsätzlich werden für ein vollständiges Backup sowohl die MySQL-Datenbank als auch sämtliche Daten vom FTP-Server benötigt. Daher solltet ihr zunächst ein vollständiges Backup anlegen, bevor ihr die unten aufgeführten Mittel für mehr Sicherheit anwendet.

Will man nicht immer selbst manuell ein Backup anlegen, empfehle ich das Plugin „BackUpWordPress“ zum automatisierten Anlegen von Sicherheitskopien. Das Plugin kann sehr vielseitig konfiguriert werden. Man kann einstellen, ob man nur die MySQL-Datenbank, nur die Dateien oder beides sichern möchte. Man kann außerdem die Zeitpunkte frei einstellen und sich die Backups sogar per Mail schicken lassen.

Es kann sein, dass das Plugin – je nach Serverkonfiguration eures Webspace-Anbieters – nicht oder nur eingeschränkt funktioniert. Dann müsst ihr entweder über einen Anbieterwechsel nachdenken oder versuchen, die Probleme mit eurem Hoster zu lösen.

WP-Login.php-Schutz Einrichten

Ein sicherer Benutzeraccount und ein aktuelles WordPress-System erhöhen die Sicherheit zwar schon erheblich, allerdings gibt es noch einige zusätzliche Mittel und Wege, um euren Blog noch etwas mehr gegen Hackangriffe abzusichern.

Ganz wichtig ist es, die wp-login.php-Datei und damit den Zugriff auf euer Loginfenster mit einer Konfigurationsdatei zu schützen. Auf apache-Webservern, die von der Mehrheit der Webspace-Anbieter verwendet werden, geht dies mit einer sog. .htaccess-Datei.

Mitteles einer .htaccess-Datei, die sich meist im Root-Verzeichnis (also dem Hauptordner) eures Webspaces befindet, könnt ihr nicht nur einzelne Dateien bzw. Verzeichnisse schützen, sondern auch IP-Adressen blocken, Weiterleitungen definieren und einiges mehr. Ein Überblick über die verschiedenen Funktionen findet sich z.B. auf Selfhtml.org. An dieser Stelle geht es aber ausschließlich um den Schutz des Loginsbereichs.

Schritt 1: .htpasswd-Datei anlegen

In einem ersten Schritt müsst ihr eine Datei mit dem Namen .htpasswd erstellen. Nutzt dazu einen einfachen Texteditor wie z.B. Notepad. Achtet darauf, nicht den Punkt vor htpasswd zu vergessen!

In diese Datei muss nun eine Kombination aus Benutzername und einem starken Passwort (wie immer gilt: je länger desto besser, Groß- und Kleinschreibung, Zahlen und Sonderzeichen verwenden) eingefügt werden, mit der ihr euch in Zukunft authentifizieren müsst, um überhaupt zum eigentlichen Login eures WordPress-Blogs zu gelangen.

Auf dieser Seite (englisch) oder dieser Seite (deutsch) könnt ihr eure gewählten Login-Daten eingeben. Anschließend bekommt ihr eine Code-Zeile mit einem verschlüsselten Passwort angezeigt, die ihr in eure leere .htpasswd-Datei einfügt.

Die Code-Zeile sollte ungefähr so aussehen: Testuser:$1$z]^T|ARv$oW6pFJPOcuJh6ZOJDYXPb.

Wählt auf keinen Fall eure regulären WordPress-Login-Daten, sondern sucht euch eine völliig neue Kombination aus Username und Passwort aus.

Nun müsst ihr euch noch überlegen, in welches Verzeichnis ihr eure frisch erzeugte .htpasswd-Datei hochladen wollt. Es empfiehlt sich, ein Verzeichnis zu wählen, das in mehreren Unterordnern liegt. Es ist aber auch möglich, die .htpasswd-Datei im Hauptverzeichnis eures Webspaces abzulegen.

Schritt 2: .htaccess-Datei anlegen/ergänzen

Als nächstes müsst ihr folgenden Code-Schnippsel in die eingangs erwähnte .htaccess-Datei einfügen. Wenn sich in eurem Hauptverzeichnis schon eine .htaccess-Datei befindet, könnt ihr diese einfach via FTP herutnerladen und ergänzen. Ansonsten erstellt ihr mit Notepad oder einem anderen Texteditor einfach wieder eine normale Textdatei und nennt sie .htaccess (auch hier wieder darauf achten, nicht den Punkt vor htaccess zu vergessen).

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

In der Zeile „AuthUserFile“ müsst ihr allerdings nun noch den genauen Pfad zu eurer .htpasswd-Datei angeben (rot markiert). Hierbei ist es wichtig zu wissen, dass der direkte Serverpfad angegeben werden muss – eine Angabe einer Internetadresse zur .htpasswd-Datei ist nicht möglich.

Um den genauen Pfad der htpasswd-Datei auf eurem Webspace herauszufinden, könnt ihr eine weitere Textdatei mit dem Dateinamen fullpath.php anlegen. In diese Datei kopiert ihr folgenden Code-Schnippsel:

<?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>“;
?>

Die fullpath.php-Datei ladet ihr dann via FTP-Programm in das gleiche Verzeichnis hoch, in dem ihr auch eure .htpasswd-Datei ablegen wollt. Ruft dann mit eurem Browser die fullpath.php-Datei auf und ihr bekommt den Ordner bzw. den direkten Pfad zu eurer .htpasswd-Datei angezeigt.

Dies sollte in etwa so aussehen:

Full path to this dir: /servername/nutzername/root-ordner/beliebiger-unterordner
Full path to a .htpasswd file in this dir: /servername/nutzername/root-ordner/beliebiger-unterordner/.htpasswd

Den kompletten Pfad zur .htpasswd-Datei aus der zweiten Zeile fügt ihr dann in der Zeile „AuthUserFile“ ein, so dass der Code-Schnippsel schließlich so bei euch aussehen sollte:

#Authentifzierung Admin-Bereich
<Files wp-login.php>
AuthName „Admin-Bereich“
AuthType Basic
AuthUserFile /servername/nutzername/root-ordner/beliebiger-unterordner/.htpasswd
require valid-user
</Files>

Nun müsst ihr noch eine letzte Ergänzung in der .htaccess-Datei vornehmen, damit niemand die .htpasswd-Datei auslesen kann. Fügt dazu einfach folgenden Code-Schnippsel in eure .htaccess-Datei ein:

# Zugriff auf wichtige Dateien verhindern
<FilesMatch „(\.htaccess|\.htpasswd)“>
Order deny,allow
Deny from all
</FilesMatch>

Anschließend müsst ihr die geänderte .htaccess-Datei speichern und wieder in das Hauptverzeichnis eures Webspaces hochladen.

Schritt 3: Überprüfung

Um sicher zu gehen, dass auch alles richtig funktioniert, ruft wie gewohnt den Login eures WordPress-Blogs auf, indem ihr die URL zu eurer WP-Admin-Ordner bzw. zur wp-login.php-Datei eingebt: also www.eure-internetseite.de/blog/wp-admin/ bzw. www.eure-internetseite.de/blog/wp-login.php. Wenn die .htaccess-Datei korrekt angelegt wurde, erscheint nun zunächst dieses zusätzliche Login-Fenster, bei dem ihr eure oben gewählte User-/Passwortkombination eingeben müsst.

Wordpress Authentifizierung WP-Admin

Habt ihr die richtigen Daten eingeben, erscheint erst jetzt das gewohnte Fenster mit dem regulären WordPress-Login.

Warum dieser Aufwand so wichtig ist, wird sich vielleicht mancher fragen. Ganz einfach: Durch den zusätzlichen serseitigen Login wird sowohl automatischen Bots als auch menschlichen Hackern das unerlaubte Eindringen in euren Blog erheblich erschwert, weil die Loginversuche bereits auf Serverebene verhindert werden. Das bedeutet, dass Bots bzw. Hacker gar nicht erst zu eurer wichtigen wp-login.php-Datei vordringen können.

Es ist zwar möglich, auch den kompletten wp-admin-Ordner (in dem ja auch die wp-login.php liegt) mittels einer .htaccess-Datei zu schützen, jedoch ist dies nicht unbedingt ratsam, da dadurch einige Plugins nicht mehr richtig funktionieren könnten.

WP-Config.php schützen

Wenn ihr bereits eure .htaccess-Datei geändert habt, ist es noch ratsam, folgenden Code-Schnippsel einzufügen, der eure wp-config.php-Datei explizit schützen soll, da sie einige der wichtigsten Informationen eures Blogs (wie z.B. mySQL-Zugangsdaten, Sicherheitskeys oder Tabellenpräfix) enthält:

#WP-Config Schutz
<Files wp-config.php>
order allow,deny
deny from all
</Files>

Wp-Admin-Ordner schützen

Auch den WP-Admin-Ordner solltet ihr mit einer eigenen .htaccess-Datei zusätzlich schützen. Erstellt dazu wieder wie oben erläutert eine Textdatei mit der Endung .htaccess und fügt diesen Code-Schnippsel ein:

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

Plugin-Ordner schützen

Auch den Plugins-Ordner im Verzeichnis /wp-content solltet ihr mit einer seperaten .htacess-Datei schützen. Erstellt dazu wieder eine leere Textdatei mit dem Dateinamen .htaccess und fügt folgenden Code-Schnippsel ein:

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# Prevents directory listing
IndexIgnore *
# END WordPress

Plugins für mehr Sicherheit

Einige Plugins können die Sicherheit eines WordPress-Blogs unter Umständen noch etwas erhöhen, sofern sie mit Bedacht eingesetzt werden.

Limit Login Attempts

Mithilfe des kleinen Plugins Limit Login Attempts lässt sich z.B. einstellen, nach wie vielen fehlgeschlagenen Login-Versuchen die IP-Adresse eines potentiellen Eindringslings/Bots gesperrt werden soll. Wenn ihr den oben beschriebenen WP-Admin-Schutz eingerichtet habt, dann ist dieses Plugin nicht zwingend nötig, da es nur die direkten Login-Versuche des Administrationsbereichs von WordPress protokolliert und überwachen kann. Sollte aber jemand – aus welchen Gründen auch immer – eure Authentifizierung umgehen oder sich erfolgreich anmelden, dann kann dieses Plugin massenhafte Einlog-Versuche (sog. Bruteforce-Attacken) recht gut eindämmen.

Acunetix WP Security

Das Plugin Acunetix WP Security kann euch darüber hinaus einige weitere mögliche Sicherheitslücken eures WordPress-Blogs aufzeigen (z.B. welche Dateien oder Verzeichnisse noch besser geschützt werden können) und bietet mit wenigen Mausklicks Lösungen an. Auch eine Echtzeitübersicht, die anzeigt, wer gerade welche Seite bzw. Datei eures Blogs betrachtet ist vorhanden.

Weitere nützliche Must-Have Plugins habe ich in diesem Beitrag vorgestellt.

Hinweis: Dieser Guide wurde für WordPress Version 4.1.1 erstellt. In früheren oder späteren Versionen können Funktionen etwas variieren und/oder anders aussehen.

Hier geht es zur Übersicht über alle Beiträge zum Thema WordPress.

Veröffentlicht in Wordpress-Tipps und verschlagwortet mit , , .