So machen Sie aus Ihrem WordPress System eine Festung
Je beliebter WordPress wird, desto mehr Angriffe auf WordPress-Systeme finden statt. In der Regel versuchen solche Angreifer sich Zugang zum Admin-Bereich zu verschaffen.
Leider ist WordPress in der Standard-Installation und Konfiguration nicht besonders sicher, sondern bietet einige Angriffspunkte.
Die überwiegende Zahl der Angriffe erfolgt jedoch nicht durch wirklich professionelle Hacker, sondern durch automatisierte Bots und „Script-Kiddies“.
Letztere kann man mit einigen geeigneten Maßnahmen recht gut abwehren. Gegen professionelle Hacker hat man eher keine guten Chancen, diese haben aber in der Regel auch kein Interesse an „normalen“ WordPress-Websites.
Folgende Maßnahmen werden Ihr WordPress zu einer Festung machen
Bereits bei der Installation von WordPress ist einiges zu beachten:
Wenn Sie WordPress installieren, sehen Sie als erstes diesen Bildschirm:
WordPress fordert Sie hier auf, die Datei wp-config.php zu erstellen. Das kann je nachdem, wie Ihr Webserver eingestellt ist, automatisch erfolgen, durch einen Klick auf den Button „Erstelle die Konfigurationsdatei“, oder aber manuell.
Eine Anleitung um die Datei manuell zu erstellen
Nach einem Klick auf den Button „Erstelle die Konfigurationsdatei“ sehen Sie im Bildschirm folgendes:
Klicken Sie dann auf „Los geht’s“ und Sie sehen folgenden Bildschirminhalt:
1. Sicherheitstipp: abweichende Tabellenpräfix verwenden
An dieser Stelle ist es jetzt ganz wichtig, dass Sie auf keinen Fall die voreingestellte Tabellen-Präfix „wp_“ so belassen, sondern diese ändern, in irgendetwas anderes, mit einem abschließenden „_“, z.B. „meinetabellen_“.
Die standardmäßige Voreinstellung von WordPress an dieser Stelle kennen die Hacker natürlich und machen sich dieses Wissen zunutze. Also machen Sie es ihnen nicht so einfach, ändern Sie diesen Wert unbedingt!
Wenn Sie WordPress bereits installiert haben, ist es wesentlich schwieriger, diesen Wert nachträglich zu ändern.
2. Sicherheitstipp: wirklich sicheres Datenbankpasswort verwenden
Ansonsten müssen Sie auf dieser Seite WordPress noch mit den Datenbankinformationen versorgen. Die voreingestellten Werte müssen dabei überschrieben werden, dienen nur als Beispiel.
Achten Sie bei der Anlage Ihrer Datenbank darauf, ein wirklich sicheres Passwort zu vergeben. Es sollte mindestens 8-stellig sein, besser noch mehr. Variieren Sie zwischen Buchstaben in Groß- und Kleinschreibung, Zahlen und Sonderzeichen. Mein Tipp: Nutzen Sie konsequent einen Passwort-Manager, z.B. „Alle meine Passworte“.
Wenn Sie alles richtig gemacht haben, sehen Sie als nächstes folgende Rückmeldung von WordPress:
Nach einem Klick auf „Installation ausführen“ gelangen Sie schließlich zu diesem Bildschirm:
Den Blogtitel können Sie jetzt vergeben, oder das Feld zunächst leer lassen und ihn später ergänzen.
3. Sicherheitstipp: Auf keinen Fall „admin“ verwenden
An dieser Stelle ist es für die Sicherheit Ihres WordPress System immens wichtig, dass Sie den voreingestellten Benutzernamen „admin“ auf keinen Fall so belassen, sondern sich einen anderen ausdenken. Zum Beispiel „MeinAdminAccount123“. Noch sicherer wäre, man würde hier auch quasi ein Passwort vergeben.
Die Hacker wissen natürlich, dass die meisten WordPress User den Benutzernamen „admin“ so belassen und brauchen dann nur noch das Passwort zu ermitteln. Wenn dieses nicht wirklich sicher ist, dann schützt Ihr System nichts und niemand mehr!
4. Sicherheitstipp: Ein sicheres Passwort vergeben
Für das Passwort hier an dieser Stelle gilt das gleiche wie für das Datenbankpasswort. Nutzen Sie auf gar keinen Fall das Datenbankpasswort auch hier, sondern vergeben Sie ein anderes.
Nach einem Klick auf „WordPress installieren“ sind Sie auf dem dann folgenden Bildschirm in der Lage, sich das erste Mal in Ihr WordPress System einzuloggen. Damit ist die Installation abgeschlossen.
Doch bevor Sie mit Ihrem neuen WordPress System arbeiten, sind sicherheitstechnisch noch 2 Dinge zu erledigen.
5. Sicherheitstipp: die Sicherheitsschlüssel in der wp-config.php ändern
Öffnen Sie zu diesem Zweck die Datei wp-config.php mit einem Texteditor. Scrollen Sie ca. bis zur Zeile 36. Das sieht dann in etwa so aus.
Der Bereich, um den es geht, ist rot umrandet. Öffnen Sie in einem anderen Browserfenster den folgenden Link und kopieren Sie den Text, den Sie dort sehen, mit STRG C in die Windows Zwischenablage:
https://api.wordpress.org/secret-key/1.1/salt/
In Ihrem Texteditor markieren Sie (in diesem Beispiel) die Zeilen 44 bis 51 und löschen diese. Die Angabe der Zeilennummern kann bei Ihnen abweichend sein.
Dort, wo jetzt der Cursor steht, fügen Sie den Inhalt der Zwischenablage ein und speichern die Datei. Anschließend laden Sie die Datei auf Ihren Webserver hoch und bestätigen eine „Überschreiben“-Warnung mit OK.
Jetzt sind wir schon einen großen Schritt weiter und müssen nun den „bösen Buben“ den Zugriff auf die Datei wp-config.php unmöglich machen.
6. Sicherheitstipp: Den Zugriff auf die Datei wp-config.php sperren
Zu diesem Zweck müssen Sie eine Datei namens .htaccess erstellen und in diese folgenden Inhalt einfügen:
# Zugriff auf wp-config.php verbieten <files wp-config.php> Order deny,allow deny from all </files>
Wenn Sie nicht wissen, wie man eine htaccess-Datei erstellt, googlen Sie bitte nach „htaccess Datei erstellen“. Eine andere Möglichkeit ist wesentlich einfacher und lässt WordPress die Arbeit machen. Dazu müssen Sie sich in WordPress einloggen und dann unter „Einstellungen > Permalinks in das Feld „Benutzerdefinierte Struktur“ den folgenden Wert eingeben:
/%postname%
Bestätigen Sie mit „Änderungen übernehmen“. WordPress quittiert diesen Befehl mit der Meldung „Permalink-Struktur aktualisiert“.
Damit haben Sie zwei Fliegen mit einer Klappe geschlagen. Zum einen haben Sie jetzt „sprechende URL’s“ aktiviert und zum anderen hat WordPress automatisch die Datei .htaccess erstellt.
Diese Datei finden Sie jetzt in ihrem WordPress-Verzeichnis auf dem Webserver und können sie mit einem Texteditor bearbeiten und den o.g. Code einfügen, am besten ganz am Anfang. Die fertige Datei sieht dann so aus:
# fertige .htaccess Datei <files wp-config.php> Order deny,allow deny from all </files> # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
Es kann sein, dass Sie Ihre FTP-Verbindung einmal beenden und wieder neu starten müssen, damit Sie die Datei überhaupt sehen können.
7. Sicherheitstipp: den WP-Admin-Bereich absichern
Der Admin-Bereich ist die Schaltzentrale Ihres WordPress Systems. Wer darauf Zugriff erhält, dem stehen praktisch alle Möglichkeiten offen. Die Absicherung dieses Bereiches ist also ein hochsenibles Thema.
Standardmäßig ist der Admin-Bereich durch Benutzernamen und Passwort geschützt. Das reicht jedoch oftmals nicht aus. Bei schwachen Passwörtern und dem Standard-„Admin“ ist es nur eine Frage der Zeit, bis sich ein Unberechtigter Zugriff verschafft hat.
Dazu muss man verstehen, wie solche Angreifer vorgehen. Die Vorgehensweise ist eigentlich ziemlich primitiv, aber leider immer wieder auch sehr effektiv. Automatisierte Einwahlprogramme probieren hintereinander weg alle denkbaren Kombinationen von Buchstaben und Zahlen aus, bis sich irgendwann der Schlüssel im Schloß dreht, d.h. WordPress den Zugang zum Adminbereich gewährt. Man spricht hier von sogenannten Brute-Force-Attacken, also Attacken mit brutaler Gewalt.
Da WordPress von Hause aus keinerlei Limitierung derartiger Einlogg-Versuche bietet, ist es unbedingt notwendig, an dieser Stelle anzusetzen. Zu diesem Zweck gibt es ein geeignetes Plugin, „Limit Login Attemps„, über das ich auch schon berichtet habe, nachdem einer meiner WordPress Seiten gehackt wurde.
Dieses Plugin macht im Prinzip nichts anderes, als die Anzahl aufeinanderfolgender Login-Versuche zu begrenzen. Nach 3 oder 4 Versuchen ist erstmal Ende und das System ist für eine frei einstellbare Zeitdauer gesperrt. Es funktioniert hervorragend. Das sehe ich an den Emails, die mir das Plugin schickt, wenn zuviele ungültige Einwahlversuche stattgefunden haben. Ein sicheres Indiz dafür, dass tatsächlich versucht wurde, den Account zu knacken.
8. Sicherheitstipp: Den WordPress Admin-Bereich doppelt absichern
Doppelt hält besser, so ein altes Sprichwort. Und daher bin ich dazu übergegangen, den Schutz des Admin-Bereiches nicht nur WordPress zu überlassen, sondern zusätzlich noch einen Schutz per htaccess-Datei einzubauen. Wie das geht, können Sie hervorragend in Google recherchieren.
Dieser Schutz kommt direkt vom Webserver. Er greift also schon, bevor WordPress überhaupt aufgerufen wird.
Sie benötigen 2 Dateien, eine davon haben Sie schon mal erstellt, nämlich eine .htaccess Datei. Die andere hört auf den Namen .htpasswd.
Generator für die .htaccess Datei
Generator für die .htpasswd Datei
In der htaccess Datei wird unter anderem der Speicherort der .htpasswd Datei eingetragen. Zu diesem Zweck müssen Sie den vollen Serverpfad zu dieser Datei kennen. Kennen Sie diesen nicht, dann nutzen Sie die Datei fullpath.php, kopieren diese in das wp-admin-Verzeichnis und rufen sie dort auf, also z.B. www.meinedomain.de/wp-admin/fullpath.php
Als Ergebnis erhalten Sie etwas ähnlich wie folgendes:
Full path to a .htpasswd file in this dir: /is/htdocs/wp10672422_DMVGA1H5JS/www/wordpresstrainer/.htpasswd
Nun kopieren Sie alles ab dem /is in die Zwischenablage und fügen es dann in den htaccess-Generator unter „.htpasswd File Location“ ein. Unter „Auth“ können Sie etwas beliebiges eintragen, z.B. „Geschuetzter Bereich“. Klicken Sie in dem Generator dann auf „Create htaccess file“ – et voilá. Gehen Sie weiter nach Anweisung vor.
In die Datei .htpasswd wird lediglich der Name des Benutzers, der berechtigt ist, eingetragen, sowie das Passwort für diesen Benutzer. Nutzen Sie den o.g. Generator. Denken Sie daran, ein wirklich sicheres Passwort zu vergeben und nicht das gleiche wie für den eigentlichen WordPress-Zugang.
Als Ergebnis erhalten Sie in der Textbox eine Zeile mit folgender Syntax: Name-des-Benutzers:verschluesseltes-Passwort.
Nun kopieren Sie diese Zeile aus der Textbox des Generators in die vorbereitete Textdatei .htpasswd, speichern die Datei und laden Sie in das WordPress-Verzeichnis auf Ihrem Webserver.
Wenn Sie alles richtig gemacht haben, dann ist der Zugang zu Ihrem WordPress Admin-Bereich nun doppelt gesichert. Das dürfte genügen. Probieren Sie aus. Der einzige Nachteil besteht darin, dass man nun 2-mal Benutzernamen und Passwort eingeben muss. Bitte unterlaufen Sie Ihre eigene Sicherheit nicht, indem Sie Passwörter im Browser abspeichern, davon halte ich gar nicht viel, auch wenn es sehr bequem ist.
Nun ist Ihr WordPress System schon sicherer als Tausende anderer Installationen. Aber trotzdem sind wir noch nicht am Ende, denn es müssen WordPress intern noch einige Dinge geregelt werden. Das übernehmen aber Plugins, die für diese Zwecke programmiert wurden.
9. Sicherheitstipp: Prüfen auf Vorhandensein eines bestimmten Skriptes
Eines dieser Plugins nennt sich Timthumb Vulnerability Scanner und prüft Ihr WordPress-System auf das eventuelle Vorhandensein des Skriptes „timthumb.php“. Viele kommerzielle und auch nichtkommerzielle Themes nutzen dieses hervorragende Skript, welches in der ursprünglichen Version leider eine der größten Sicherheitslücken aufwies, seit WordPress das erste Mal das Licht der Welt erblickte.
Installieren Sie dieses Plugin und klicken Sie nach Aktivierung desselben unter „werkzeuge“ in der linken Menueleiste auf den Eintrag „Timthumb Scanner“. Klicken Sie dann auf den Button „Scan“. Wenn alles in Ordnung ist, sehen Sie kurz darauf einen Bildschirm wie folgt:
Falls der Scanner das fragliche Skript in Ihrer WordPress Installation findet, sehen Sie folgendes:
Das Skript hat in diesem Fall eine schädliche Version der Datei timthumb.php gefunden und zeigt den vollen Pfad zu der Datei an. Gleichzeitig besteht die Möglichkeit, mit einem Klick auf „Upgrade Selected Files“ das Problem zu heilen.
Anschließend sehen Sie das Resultat in etwa wie folgt:
Damit wäre das Problem auch behoben. Aber es gibt noch ein paar kleine Gemeinheiten, die WordPress unsicher machen und die wollen wir jetzt mit einem weiteren Plugin aus der Welt schaffen.
10. Sicherheitstipp: Spezielle Security-Plugins benutzen
Das Plugin, welches ich Ihnen an dieser Stelle empfehle, nennt sich WSD Security. Die folgende Grafik vermittelt Ihnen einen ersten Überblick über die Features dieses Plugins:
Downloaden und installieren Sie das Plugin wie gewohnt. Nachdem Sie es aktiviert haben, finden Sie in der linken Menueleiste einen eigenen Eintrag „WSD Security„. Wenn Sie darauf bzw. auf den obersten Untereintrag klicken, werden Sie aufgefordert, einen Account bei dem hinter dem Plugin stehenden Webservice „WebsiteDefender“ anzulegen.
Das können Sie ruhigen Gewissens machen, denn ein Account für eine Website ist absolut kostenlos. Durch die Registrierung können Sie außerdem noch erweiterte Fähigkeiten des Plugins nutzen.
Wenn Sie keine Registrierung vornehmen wollen, dann klicken Sie auf den Untereintrag „Scan Reports„. Hier finden Sie das Ergebnis des Systemscans, welchen das Plugin im Hintergrund durchgeführt hat. Überall wo ein grünes Häkchen zu sehen ist, ist alles OK. Warnungen werden mit einem kleinen gelben oder roten Dreieck angezeigt.
Unter „File Scan Report“ sehen Sie die Dateirechte der wichtigsten Dateien, so wie sie aktuell auf Ihrem Server eingestellt sind, und so wie sie eingestellt sein sollten. Ändern Sie die Rechte gegebenenfalls entsprechend ab.
Wenn Sie in der linken Menueleiste auf „Database“ klicken, kommen Sie zu einer ganz entscheidenden Stelle. Hier können Sie nämlich die Tabellenpräfix Ihrer WordPress-Datenbank auch noch nachträglich ändern, sollten Sie das bei der ersten Installation von WordPress nicht gemacht haben.
Klicken Sie jedoch zunächst auf den Button „Backup now!„. Damit erstellen Sie ein Backup Ihrer Datenbank. Nutzen Sie die Downloadfunktion und sichern Sie die Datei in einem speziellen Ordner auf Ihrer Festplatte (die sie natürlich auch regelmäßig sichern sollten).
Nun können Sie die Tabellenpräfixe ändern, falls diese noch so lauten sollten „wp_„. Unter „Before running this script:“ sehen Sie, ob die Voraussetzungen, die das Plugin für diese Aufgabe zwingend benötigt, erfüllt sind.
Starten Sie den Prozeß mit „Start Renaming„. Wenn alles gut geht, dann sollten Sie jetzt eine Rückmeldung erhalten wie in der folgenden Grafik:
11. Sicherheitstipp: Regelmäßige Updates machen
Eine der einfachsten Maßnahmen überhaupt. Wird aber trotzdem von vielen Anwendern gerne nicht gemacht, aus Bequemlichkeit oder anderen Gründen. Machen Sie regelmäßig Updates von Ihrem WordPress-System, von allen Plugins und von allen Themes, auch von denen, die sie gar nicht nutzen.
Hintergrund dabei ist, dass viele Updates gar keine neuen Funktionen bereitstellen, sondern noch vorhandene Sicherheitslücken schließen. Daher sind diese Updates so wichtig. Um ganz sicher zu gehen, sollten Sie vor jedem Update ein Backup Ihres Systems machen.
Schlußbemerkung
Wenn Sie diese 11 Punkte berücksichtigen um umsetzen, dann haben Sie aus Ihrem WordPress-System tatsächlich eine (fast) uneinnehmbare Festung gemacht. Bleiben Sie regelmäßig am Ball und verfolgen Sie aktuelle WordPress-Meldungen auf Sicherheitsaspekte.
Wenn Sie der Meinung sind, dass Sie sich mit diesen ganzen technischen Kram nicht auseinandersetzen, sondern einfach nur Ihre WordPress-Website betreiben wollen, ohne über Sicherheitsrisiken nachdenken zu müssen, dann können Sie auch unseren Service nutzen. Wir halten Ihr System aktuell, machen regelmäßige Backups und Updates und halten Ihnen den Kopf frei, den Sie dann für Ihre kreativen Arbeiten einsetzen können.
Fordern Sie einfach ein unverbindliches Angebot an, oder informieren Sie sich auf dieser Seite.