WordPress absichern

Geschätzte Lesezeit: 6 Minuten, 15 Sekunden

WordPress Security
WordPress ist die beliebteste Blog-Software und das populärste Content Management System. Kein Wunder, dass deshalb so viele Angreifer versuchen, wahllos WordPress Installationen und Server anzugreifen und zu hacken. Dagegen kann und muss man sich wehren, alleine schon, weil auf Google diverse Anleitungen existieren, wie Sicherheitslücken ausgebeutet werden können.

Der WordPress Security Scan

Bist Du unsicher, ob Deine WordPress Webseite oder Dein Blog verwundbar gegen Hackerangriffe ist und ob Du sie besonders schützen musst? Dann mache den Security Scan (externe Seite, kostenlos). Der Scan prüft u.a. die Version von WordPress, sie sollte auf dem neuesten Stand sein. Weiterhin werden alle erkannten Plugins überprüft und mit einer Datenbank von gefährlichen Plugins abgeglichen. Wenn alles gut läuft, sieht das Testergebnis so aus:

WordPress Security Scan
WordPress absichern: Security Scan

Außerdem prüft der Scan die verwendeten Namen der Adminbenutzer, nach Möglichkeit sollte dieser weder admin heißen noch so, wie die Webseite selbst.

Ein weiterer Scanner namens Nikto checkt Deinen Webseite und Deinen Server generell auf Sicherheitslücken (man muss sich dafür allerdings registrieren oder die Offline-Version herunterladen).

Allgemeine Maßnahmen

Auf jeden Fall ist es notwendig und absolut essentiell, ein starkes Passwort für Deinen WordPress Admin-User zu verwenden, so kannst Du mit wenig Aufwand WordPress absichern und vorn Angriffen schützen. Weiterhin keinesfalls dasselbe Passwort mehrfach nutzen, weder innerhalb einer WordPress Installation für mehrere User noch gleichlautende Passworte für verschiedene Dienste und Anwendungen verwenden!

Zu den einfachsten Sicherheits-Maßnahmen gehört das Löschen des Standard-Users mit der Identitätsnummer 1 und dem User-Namen »admin«. Denn der Name des Autors mit dem Index 1 kann sehr leicht über den Aufruf der URL

www.deinblog.de/?author=1

ermittelt werden!

Der Admin-Bereich auf Deinem Server sollte zudem mit einem Verzeichnisschutz versehen werden. Man kann ansonsten einfach den Login-Screen wie folgt aufrufen:

www.deinblog.de/wp-admin

So erstellt man einen Verzeichnisschutz für den Admin-Bereich:

Eine Passwort-Datei außerhalb des zu schützenden Verzeichnisses und außerhalb des Hauptverzeichnisses ablegen, die mit .htpasswd benannt ist und folgenden Aufbau hat:

username:passworthash

Für username wählst Du einen beliebigen Usernamen, der am besten nicht mit Deinem WordPress-Usernamen übereinstimmt. passworthash ist der Hashwert des Passworts, mit dem Du den Verzeichnisschutz authentifizieren willst. Am einfachsten kannst Du den Inhalt dieser Datei mit einem htpasswd-Generator erzeugen. Achte auf sichere Passwörter, das sollte sich eigentlich von selbst verstehen!

Danach eine Datei namens .htaccess im Verzeichnis wp-admin Deiner WordPress Installation anlegen, die folgenden Inhalt hat:

AuthType Basic
AuthName "Passwortgeschuetzter Bereich"
AuthUserFile /pfad/zur/Datei/.htpasswd
AuthGroupFile /dev/null
require valid-user

Nun auch noch den Zugriff von außen auf die Datei wp-config.php im Pfad von WordPress verbieten, denn in dieser Datei stehen alle wichtigen Zugriffsinfos wie der Datenbankuser und das zugehörige Passwort drin. Im selben Verzeichnis bzw. Ordner wie wp-config.php befindet sich eine htaccess-Datei. In diesem File ergänzt Du ganz am Ende folgende Zeilen:

# Zugriff auf wp-config.php von außen verbieten
<files wp-config.php>
Order deny,allow
deny from all
</files>

Diese Maßnahmen sollten spürbar mehr Sicherheit bringen, damit kannst Du schon recht effektiv WordPress gegen Hacker absichern!

Plugins und WordPress selbst regelmäßig updaten

Das Dashboard meldet, wenn ein Update zur Verfügung steht. Oft enthalten Updates Sicherheitsmaßnahmen oder Code, um Sicherheitslücken zu schließen. Wem das manuelle Aktualisieren zu lästig ist, der kann in der wp-config.php Datei folgende Zeile hinzufügen, um das automatische Update zu aktivieren:

// Enable all automatic updates
define( 'WP_AUTO_UPDATE_CORE', true );

Noch mehr Security-Tipps

Damit Angreifer oder Hacker nicht direkt die WordPress-Version auslesen können, am besten noch automatisiert, füge folgende Zeile Code in der Datei functions.php ganz am Ende ein:

remove_action('wp_head','wp_generator');

Die Datei kannst Du bearbeiten über das Admin-Panel, Design -> Editor.

Möchtest Du noch weitergehend WordPress absichern, dann füge folgende Zeile am Ende der Datei wp-config.php ein:

define('DISALLOW_FILE_EDIT', true);

Das verhindert das Editieren von PHP- und CSS Files über den WP-Editor im Admin-Panel durch Hacker. Allerdings sollten Änderungen an diesen Dateien nur verboten werden, wenn Du nicht selbst über den Editor im Panel öfters Dateien ändern willst (aus Komfortgründen). Allerdings kannst Du all diese Dateien auch direkt auf dem Webserver ändern, etwa per FTP oder Shell.

Wenn Deine WordPress-Seite kein HTTPS bzw. SSL unterstützt, dann solltest Du keinesfalls per WLAN von öffentlichen Orten aus als Admin auf Deine Installation zugreifen, denn dann kann es passieren, dass Angreifer Dein Passwort im Klartext mitlesen! Und diesen Pfad willst Du sicher nicht beschreiten! Unter Umständen müssen auch rechtliche Konsequenten in Kauf genommen werden, wenn Du über Funknetze Sicherheitstore offenbarst. SSL kann allerdings nur mit einem meist kostenpflichtigen Zertifikat benutzt werden, so dass eher Firmen hierzu die Möglichkeit haben.

Anzahl der Login-Versuche begrenzen

Unglaublich, aber wahr: Per Default kann jeder beliebig viele Login-Versuche in Deinen Admin-Bereich unternehmen! Im Zeichen der WordPress Security solltest Du ein Plugin wie Login Lockdown installieren, um ein Limit einzubauen. Nach Installation findest Du unter Einstellungen -> Login Lockdown die Optionen des Plugins. Dort kann man insbesondere einstellen, wie oft jemand hintereinander versuchen darf, sich anzumelden, also wie viele Fehlversuche er hat. Nachdem diese Versuche erreicht sind, ist eine Anmeldung für 5 Minuten von derselben IP Adresse nicht mehr möglich. Diese Zeit kannst Du ebenfalls konfigurieren. Nun müssen Bösewichten sich mehr anstrengen, wenn sie sich einhacken wollen!

Sehr nützlich ist auch die Einstellung Mask Login Errors. Man sollte sie auf Yes stellen. Dann nämlich bekommt der Angreifer keine Info, warum seine Anmeldung fehlschlug. Ansonsten wird nämlich gemeldet, ob der Username bekannt, aber das Passwort falsch war oder ob schon der Username falsch war. Weitere Infos dazu gibt es im WordPress Praxishandbuch von Gino Cremer.

Table Prefix ändern

Normalerweise beginnt jede Tabelle mit dem Präfix wp_. Das macht es bei erfolgreichen SQL Injection Versuchen einfach, Tabelleninhalte aus der Datenbank auszulesen oder zu manipulieren. Vor der Installation kann man durch Editieren der wp-config.php Datei jenes Präfix ändern. Wurde die Installation schon vorgenommen, dann hilft das Plugin Change DB Prefix.

Wir haben selbst vor kurzem einen Spam Kommentar erhalten, der einen plumpen SQL Injection Versuch enthielt und den Pfad der Hacker erkennen lässt:

WordPress Hacking
SQL Injection via Kommentar

Das war wohl ein russischer Mitbürger, der allerdings weder englisch noch SQL richtig schreiben kann. Denn das SQL Statement enthält Syntaxfehler und führt zu keiner Aktion auf der Datenbank. Dümmer geht es kaum, aber kaum auszudenken, wenn dieser Angriff erfolgreich gewesen wäre!

Readme und License Dateien schützen oder löschen

Die Dateien readme.html und license.txt liegen im Hauptverzeichnis der Installation und enthalten Informationen über die WordPress Version. Sie bieten für Angreifer einen guten Ausgangspunkt, um das Angriffsziel auszuwerten. Entweder diese beiden Dateien löschen, denn sie werden für den Betrieb nicht benötigt. Oder die htaccess Datei, die im Root Verzeichnis liegt, um folgende Zeilen erweitern:

# Protect readme.html File
<Files readme.html>
order allow,deny
deny from all
</Files>


# Protect license.txt file
<Files license.txt>
order allow,deny
deny from all
</Files>

Security Plugins verwenden

Mit einem Plugin wie Bullet Proof Security, das weit verbreitet ist und sich großer Beliebtheit bei Admins in zahlreichen Installationen erfreut, bekommt man eine kostenfreie und umfassende Lösung zum Schließen potentieller Sicherheitslücken und Einfalltore.

Das Plugin wehrt diverse Angriffe ab, es schützt beispielsweise die htaccess Datei, baut eine Firewall um die gesamte Installation auf, limitiert die maximale Anzahl erlaubter Login Versuche, prüft Passwörter und bietet eine wirksame Absicherung für die Datenbank.

Dieses Security Plugin ist sehr einfach zu bedienen und mit wenigen Klicks installiert und konfiguriert, auf jeden Fall ausprobieren!

Weitere Hinweise

Selbstverständlich solltest Du regelmäßig ein Backup Deiner WordPress Installationen vornehmen, dazu reicht es, das Installationsverzeichnis auf ein lokales Laufwerk zu kopieren. Auf keinen Fall das Backup auf demselben Server ablegen, wo Du WordPress installiert hast oder per FTP uploaden! Das zuvor genannte Plugin erstellt übrigens ein Backup Deiner Datenbank! Einmalige Maßnahme wie das Anpassen von htaccess zur Absicherung von Installationen und andere oben beschriebene Security Einstellungen schützen jedenfalls ganz gut davor, gehackt zu werden.  Ganz wichtig sind die Updates, die für Plugins und Themes angeboten werden. Auf jeden Fall das Change Log dazu lesen und wenn Sicherheitslücken geschlossen wurden, unbedingt installieren.

Erstellst Du selbst Themes oder ändert vorhandene Templates ab, dann achte beim Webdesign darauf, dass Du keine Sicherheitslücken öffnest. Informiere Dich am besten, bevor Du externe Javascript Bibliotheken verwendest, ob diese als sicher gelten.

WordPress selbst führt übrigens ein Archiv mit Sicherheits-relevanten Meldungen.

Einen kompetenten Überblick in WordPress Sicherheitsthemen bietet das Buch WordPress absichern: Ein Leitfaden für mehr Sicherheit in WordPress von Stefan Birkmeier. Es ist für unter 10 Euro zu haben, die Kindle Version kostet sogar unter 5 Euro.
Möchtest Du Deine WordPress-Kenntnisse auffrischen, dann ist unser Testbericht der besten WordPress-Bücher lesenwert.

Auch sollte man durch entsprechende Absicherung sicherstellen, kein Opfer des sogenannten Google Hacking zu werden, um nicht als Donk (Trottel) zu gelten…

WordPress absichern: Mehr Sicherheit in WordPress

€ 8,90
WordPress absichern: Mehr Sicherheit in WordPress
9.1

Praxiswert

9.4/10

Verständlichkeit

9.5/10

Umfang

8.2/10

Preis

9.2/10

Vorteile

  • Für alle WordPress-Eigner
  • Praktische Leitfäden
  • Erfolg garantiert
  • Enthält auch Profitipps
  • Sehr günstig

Wie hat Dir der Artikel gefallen?

WordPress absichern: 1 Stern2 Sterne3 Sterne4 Sterne5 Sterne 4,95 von 5 Punkten, basieren auf 40 abgegebenen Stimmen.

Dr. Klaus Meffert
Folge mir

Dr. Klaus Meffert

Der Autor ist Diplom-Informatiker und hat neben seinem Beruf als Organisationsberater zum Doktoringenieur promoviert. Er besitzt 30 Jahre Erfahrung im IT-Bereich (Software-Lösungen, Apps, Web, Online-Marketing, IT-Beratung) ist mehrfacher Buchautor und Autor zahlreicher Fachartikel. Er hilft Unternehmen mit maßgeschneiderten Software-Lösungen und mit besseren Google-Rankings zu mehr Erfolg.
Dr. Klaus Meffert
Folge mir

Weitere Beiträge

9 Gedanken zu „WordPress absichern

  1. Super Anleitung. Vielen Dank dafür!

    Ein Problem habe ich mit dem Verzeichnisschutz. Ich hatte diesen vor vielen Wochen schon einmal probiert, anschließend ging gar nichts mehr. Nun wollte ich es mal anhand dieser Anleitung versuchen und habe komme prompt wieder nicht in meinen Admin-Bereich. Egal, ob ich “***/wp-admin” oder “***/wp-login” (mit oder ohne angehngtem “.php”) eingebe, es kommt immer die Fehlermeldung “Internal Server Error”.
    Kann es sein, dass ich nach aktiviertem Verzeichnisschutz diesen jedes mal wieder entfernen muss, wenn ich selbst in den Admin-Bereich will?

    Gruß
    René

  2. Wenn der Verzeichnisschutz richtig eingerichtet ist und die Passwortdatei korrekt verlinkt ist, sollte ein Passwortabfrage erscheinen. Kommt diese Abfrage nicht, dann ist die Angabe der Datei falsch!

  3. Hi,

    wenn ich

    Damit Angreifer oder Hacker nicht direkt die WordPress-Version auslesen können, am besten noch automatisiert, füge folgende Zeile Code in der Datei functions.php ganz am Ende ein:
    remove_action(‘wp_head’,’wp_generator’);

    das eingebe, steht auf der Editorseite im grauen Feld, ganz oben links

    ‘wp_generator’);

    Da scheint doch etwas nicht zu stimmen.

  4. Vielen Dank für die super Tipps, wusste nicht das hier bei WordPress so viel möglich ist. Wegen dem begrenzten Login kann ich auch “WP Limit Login Attempts” empfehlen, sehr gutes Tool! Viele Grüße, Moritz

  5. Hallo Herr Meffert,

    herzlichen Dank für Ihren tollen Artikel.

    Aufgrund unserer SEO Projekte arbeiten wir uns auch noch tiefer in WordPress (neben CONTAO) ein und es ist natürlich Fakt, dass das System, nachdem es das beliebteste CMS ist, auch Ziel von einer recht hohen Anzahl an Hacker-Angriffen ist.

    Hierbei ist es von exorbitanter Wichtigkeit, das System bestmöglich gegen Hacker-Angriffe zu schützen. Ihre Anleitung deckt meiner Meinung nach die wichtigsten Punkte ab, so dass man schon recht gut gewappnet sein sollte. Danke dafür.

    Beste Grüße aus dem Süden Deutschlands,
    Philipp

  6. Danke für Ihre Mühe 😉
    Als I-Tüpfelchen würde ich dir noch einen Sicherheitslücken Scanner empfehlen der aktiv nach Bugs und Fehler im Code von WordPress sucht, wie den kostenlosen von Janotta & Partner
    https://www.janotta-partner.at/blog.website-scanner.html

    Sicherlich gibt es noch weitere kostenlose, aber der ist einfach zu bedienen und auch Gratis 😉

    Heute habe ich genau nach solch eine Anleitung gesucht und bin dankbar für Ihre Mühe!

  7. Vielen Dank für die verständliche Anleitung.

    Ich komme mit der Pfadangabe zur .htpasswd in der .htaccess nicht klar. .htpasswd ist mit htpasswd-Generator und Notepad++ erstellt, hochgeladen und mit führendem Punkt ergänzt.

    Im Moment liegt die .htpasswd im Ordner “wordpress” und in der .htaccess steht ganz oben …
    AuthUserFile http://www.Domainname.de/html/wordpress/.htpasswd

    Habe verschiedene Pafdangaben getestet. Immer nur Fehler 500 internal Server Error. Die Seite ist übrigens noch nicht auf SSL umgestellt. Deswegen steht da im Pfad noch ein http.

    Irgendeine Idee? Was mache ich falsch? Vielen Dank vorab.

Schreibe einen Kommentar

Als Name kann auch ein Pseudonym angegeben werden. Deine Email-Adresse wird nicht veröffentlicht. Siehe unsere Datenschutzbestimmungen