Jede Website wird irgendwann einmal Opfer eines Hackerangriffs.
Bei vielen Websites wird einer dieser Angriffe auch mal erfolgreich sein.
Du musst dir darüber im Klaren sein, dass Hacker keine ungewaschenen, langhaarigen Jugendlichen in ihren dunklen Kinderzimmern sind. Das ist ein Klischee und wird in der Realität eher selten anzutreffen sein. Angriffe auf Websites erfolgen heutzutage vollständig automatisiert.
Generell ist zu sagen, dass Angriffe natürlich nicht verhindert werden können und auch gegen das komplette Übernehmen einer Seite kann man sich nicht zu hundert Prozent absichern. Allerdings werden Hackversuche in der Regel recht schnell abgebrochen, wenn die Hürden zu groß sind.
Es ist also ratsam, es den Angreifern so schwierig wie möglich zu machen, denn dann suchen sie sich lieber einfachere Opfer.
Mit diesen 12 Schritten machst du es Angreifern schwer und kannst somit deine WordPress Seite sicher machen:
1. Auf Aktualität achten
WordPress wird laufend mit neuen Updates versorgt, um entdeckte Sicherheitslücken zu schließen. So verhält es sich auch mit den Plugins und Themes professioneller Entwickler. Sie bringen bei bekannt werden von Schwachstellen neue Versionen heraus, um deinen Blog sicher zu halten.
Nach der Installation von WordPress ist das System entgegen vieler Mythen sehr sicher.
Wenn du dich nicht so oft auf deinem Blog einloggst, wirst du nicht immer gleich die aktuellsten Updates einspielen. Dadurch machst du deinen Blog angreifbar. Schaue entweder alle paar Tage im Backend deines Blogs vorbei, oder nutze ein Plugin wie den WP Updates Notifier, um dich per E-Mail über Aktualisierungen informieren zu lassen.
2. Benutzername und Passwort
Ja ich weiß, ein alter Hut. Aber dieser alte Hut kann dich vor so einigen, bösen Überraschungen bewahren. Nutze auf keinen Fall den Benutzernamen „admin“ für dein Administrator Konto und gib ein sehr sicheres Passwort mit mehreren Zahlen und Sonderzeichen ein.
Zusätzlich kannst du auch in WordPress eine zwei Faktor Authentifizierung einrichten, um noch eine weitere Sicherheitsebene zu bekommen.
3. Hosterwahl
Um WordPress Sicherheit zu verleihen, solltest du schon bei der Hosterwahl eine kluge Entscheidung treffen. Der Hoster kann bereits serverseitig dafür sorgen, dass es Angreifern so schwer wie möglich gemacht wird, deinen Blog anzugreifen.
Als Blogger im deutschen Raum solltest du auch einen deutschen Hoster nutzen. Schon allein wegen des Serverstandorts und der damit verbundenen, kürzeren Ladezeit ist das empfehlenswert. Ich empfehle dir raidboxes* oder all-inkl*.
Wenn du den richtigen Hoster für dich finden möchtest, schaue in meinem WordPress Hosting Vergleich vorbei.
4. Plugins prüfen
Am besten nutzt du so wenig Plugins wie möglich. Jedes Plugin bedeutet einen Haufen zusätzlichen Programmiercode und bietet damit potenzielle Angriffsflächen. Wenn du ein neues Plugin installieren möchtest, schaue zunächst einmal, wann es zuletzt aktualisiert wurde und ob jemand in den Bewertungen bereits in den Quellcode reingeschaut und ihn positiv bewertet hat.
5. Regelmäßige Backups
Wenn es dich dann doch einmal erwischt hat, ist es gut, ein Backup zu besitzen. Am besten lässt du automatisiert und in regelmäßigen Abständen Backups deiner Website anlegen.
Wichtig ist, dass du diese Backups nicht nur auf deinem Server speicherst, denn dort können sie von möglichem Schadcode erreicht werden. Speichere sie also immer zusätzlich lokal auf deinem Rechner oder lege sie in einem Online-Speicher ab.
Ein WordPress Backup anzulegen ist einfacher als du denkst. Wie das funktioniert, erfährst du in meinem Artikel: Dein WordPress Backup in 5 Minuten anlegen & wieder einspielen
6. Schütze deinen Computer
Als potenzielle Gefahr für deinen Blog steht der Computer zwar nicht ganz oben, aber er steht mit auf der Liste.
Wieso? Ganz einfach.
Du überträgst Bilder und andere Dateien von deinem Computer auf den Blog. Und bestimmt hast du dich auch schon per FTP mit deinem Webspace verbunden. Über diese Wege kann ein sich ein Virus oder Schadprogramm von deinem Computer aus auf den Blog übertragen.
Installiere dir ein Anti-Viren Programm, um deinen Computer als Gefahr auszuschließen. Kostenlose Programme für Windows und OSX sind zum Beispiel Avast oder Avira.
7. Dateiberechtigungen einstellen
Die Dateiberechtigungen legen fest, wer auf deine WordPress Dateien zugreifen darf. Wenn diese Berechtigungen also falsch eingestellt sind, öffnest du Tür und Tor für Angreifer.
Eine Änderung der Berechtigungen kannst du ganz einfach per FTP vornehmen. Du öffnest Filezilla oder ein anderes FTP Programm, verbindest dich mit deinem Webspace und machst einen Rechtsklick auf die entsprechende Datei oder den Ordner. Im Anschluss kannst du auf „Dateiberechtigungen“ klicken und dort die Einstellungen vornehmen.
Folgende Berechtigungen haben sich bewährt und werden auch von WordPress empfohlen:
- Alle Dateien erhalten 644
- Alle Ordner erhalten 755
- Die wp-config.php erhält 660 oder 400
Diese Berechtigungen sorgen dafür, dass
- dein Nutzeraccount Dateien lesen und bearbeiten darf
- WordPress Dateien und Ordner erstellen, bearbeiten und löschen darf
- Niemand anderes deine Datenbank Zugangsdaten in der wp-config.php sehen kann
8. Die wp-config Datei sperren
Die wp-config.php Datei in dem Hauptverzeichnis deiner WordPress Installation enthält Zugangsdaten zu deiner Datenbank und weitere, sensible Daten. Damit niemand auf sie zugreifen kann, solltest du sie komplett sperren.
Dies geschieht ganz einfach mit einem kurzen Code, den du in der .htaccess Datei deines Hauptverzeichnisses einträgst. Öffne also noch einmal dein FTP Programm und verbinde dich mit dem Server. Lege zunächst ein Backup der Datei an (einfach auf deinen Rechner übertragen oder kopieren) und bearbeite nun die .htaccess Datei.
Dort werden bereits ein paar Zeilen drin stehen, diese kannst du einfach ignorieren und ganz am Ende einen Absatz und den folgenden Code einfügen:
#Blockiert den Zugriff von außen auf die wp-config.php Datei
<files wp-config.php>
order allow,deny
deny from all
</files>
9. Auslesen des Nutzernamens verhindern
Bleiben wir direkt beim Bearbeiten der .htaccess Datei. Als nächstes fügen wir noch einen Code ein, der verhindert, dass dein Benutzername auf einfache Art ausgelesen werden kann.
Bei WordPress Websites kann über domain.de/?author=1 direkt auf die Autorenseite des Benutzers mit der ID 1 zugegriffen werden. Dies ist in den meisten Fällen der Administrator.
Um diesen Schutz einzufügen, muss der folgende Code in deiner .htaccess stehen:
# Verhindert das einfache Auslesen von Nutzernamen
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} .*author=(.+.?) [NC]
RewriteRule (.*) /blog/?author= [NC,L,R=301]
10. Den Login per Passwort schützen
Wenn du deine WordPress Seite sicher machen möchtest, ist das eine der effektivsten Maßnahmen gegen das Eindringen eines Angreifers über die Loginseite. Oftmals wird von automatisierten Programmen einfach versucht, mithilfe verschiedener Nutzernamen und Passwörter, Zugang zu deiner WordPress Website zu bekommen.
Du kannst diese Login Seite mit einem Passwort schützen, wodurch gar nicht erst auf das Login-Formular zugegriffen werden kann.
Zwar musst du dich bei jedem Login (wenn du nicht dauerhaft eingeloggt bist) doppelt einloggen, das ist in der Praxis aber schnell erledigt. Zudem macht sich dieser minimale Komfortverlust durch eine deutlich höhere WordPress Sicherheit bemerkbar.
Die Maßnahme, die ich dir jetzt erkläre, funktioniert nur auf sogenannten Apache Servern. In 90 % der Fälle liegt deine Seite auf so einem Server. Dies ist der Fall, wenn du bei all-inkl, Strato, Domainfactory, Hosteurope, 1und1, One oder auch vielen weiteren Hostern bist.
Wenn du ganz sichergehen möchtest, frage einfach kurz bei deinem Hoster nach oder schaue in die Beschreibung deines Hostingvertrags.
So, nun kommen wir aber zur Umsetzung. Keine Sorge, ich erkläre jeden Schritt bis ins Detail:
- Zunächst benötigst du eine .htpasswd Datei in deinem Hauptverzeichnis
- Diese Datei wird dann mit einem Benutzernamen und verschlüsselten Passwort befüllt
- Anschließend kommt noch ein Code in die .htaccess Datei
Es gibt noch weitere Möglichkeiten, den WordPress Login abzusichern. Alles dazu erfährst du in meinem Artikel über den WordPress Login.
.htpasswd anlegen
Erstelle mit einem Editor (Word ist keiner, Notepad++ und Sublime Text sind welche) eine Datei und speichere sie als .htpasswd ab. Füge keine Dateiendung wie .txt oder ähnlichem ein.
Um den Inhalt der Datei zu erstellen, nutzen wir am besten diesen Generator. Dort gibst du den Benutzernamen und das Passwort ein, wählst als Verschlüsselungsmethode „md5“ aus und klickst auf den Button „.htpasswd generieren“.
Du bekommst nun einen Text ausgespuckt. Diesen kopierst du und fügst ihn in deine soeben erstellte .htpasswd ein. Lade diese Datei nun per FTP in das Hauptverzeichnis deiner WordPress Installation hoch.
.htaccess anpassen
Rufe jetzt die .htaccess Datei aus deinem Hauptverzeichnis auf. Nun fügst du (wieder ganz am Ende) den folgenden Code ein. Dieser gibt an, für welche Datei (wp-login.php) der Schutz gilt, und wo die Datei mit dem Benutzernamen und Passwort liegt.
# Ab Apache 2.4
# Auth protect wp-login.php
AuthType Basic
AuthName "Restricted Admin-Area"
AuthUserFile /PFAD/ZUR/.htpasswd/EINGEBEN
Require valid-user
# Deny access to important files
<FilesMatch "(\.htaccess|\.htpasswd)">
Require all denied
An der markierten Stelle musst du den Pfad zu deiner .htpasswd eingeben. Da du ja beide Dateien im Hauptverzeichnis liegen hast ist dieser Pfad nichts anderes als „/“ ohne die Anführungszeichen natürlich.
Passwortschutz testen
Jetzt testest du das Ganze, indem du deine normale Login Seite aufrufst. Ob das /wp-admin oder /wp-login ist, spielt keine Rolle.
Wenn du nun ein weiteres Fenster erhältst, in dem du deinen Benutzernamen und das Passwort eingeben musst, um auf die Seite zuzugreifen, ist alles gut gegangen.
11. SSL-Verschlüsselung aktivieren
Du kannst den gesamten Traffic deines Blogs mit einem sogenannten SSL-Zertifikat verschlüsseln. Durch eine HTTPS-Verbindung zwischen dem Client (Nutzer) und dem Server (Website) wird die Übertragung der Daten verschlüsselt und zudem die Identität des Servers bestätigt.
Das bedeutet, dass bei dem Aufruf einer Website zunächst ein Zertifikat vom Server an den Client geschickt wird, um die Echtheit des Servers zu bestätigen.
In der Adressleiste sieht das dann so aus:
Diese Verschlüsselung einzurichten, benötigt einige Schritte. Da dies hier den Rahmen sprengt, verweise ich dich auf einen anderen Artikel von mir, in dem ich dir genau das, ganz einfach erkläre: So stellst du WordPress in 7 Schritten auf HTTPS um
So, wenn du diese Maßnahmen umgesetzt hast, bist du in Sachen WordPress Sicherheit einen sehr großen Schritt weiter. Welche dieser Schritte hast du umgesetzt und wie sicherst du dich gegen Angriffe ab?
Hallo Jonas, ich baue gerade eine kleine Wordpress Webseite die ich geschäftlich nutzen werde.
Meine Frage: Im footer habe ich ein impressum angegeben mit der Geschäfts E-Mail Adresse.
Wie kann ich die E-mail Adresse vor Spam schützen? (Verschlüsseln, CSS????)
Am besten ohne ein Plugin.
Gruß Paul
Naja. Die Identität des Servers wird bei MitM-Angriffen nicht zuverlässig prüfbar sein. HPKP, DNSSec und CAA sind da wesentlich wichtiger sowie HSTS. Fast jede Antiviren-Lösung (oft „Internet Security“ genannt) betreibt in gewisser Weise MitM-Angriffe, da das SSL-Zertifikat gegen das der Sicherheits-Software ausgetauscht wird 😉
Header für CSP, XSS-Filter/-Auditor usw bitte nicht außer Acht lassen: https://securityheaders.io/?q=https://wp-ninjas.de&hide=on&followRedirects=on
Oookay, da steige auch ich dann nicht mehr durch, aber danke für deine Infos! 🙂
Danke für die Anleitung – sobald ich in meiner htaccess jedoch irgendeinen Befehl zum Schützen der sensible htpasswd oder htaccess Dateien eingebe, tritt auf der Seite ein Scriptfehler auf…
Moin Markus,
das klingt für mich, als wäre in der htaccess ein Fehler drin…
Grüße
Jonas
Ich habe es nun hinbekommen durch eine andere Quelle, die ca. das selbe gemacht hat nur mit ein paar Klammern.
Eine Frage: Kann ich nach umsetzen dieser (und weiterer) Sicherheitseinstellungen dann getrost auf den Einsatz von ithemes security und anderen Sicherheitsplugins verzichten? Oder ist es dennoch empfehlenswert über diese Einstellungen hinaus ein solches plugin laufen zu lassen?
Ich halte von diesen Plugins generell sowieso nichts. Im Rahmen der DSGVO müssen sowieso die meisten Funktionen deaktiviert werden, da stellt sich die Frage, ob man sie überhaupt noch benötigt. Meiner Meinung nach hat man sie nicht benötigt und wird sie nicht benötigen 🙂
Hallo Jonas,
danke für die Tipps. Aber bei mir tat sich der selbe Fehler auf.
Gruß
Conny
Sehr interessanter Artikel. Vielen Dank für die Infos. Wie ist das eigentlich bei einem WP-Update? Werden die Dateien dann wieder überschrieben?
Liebe Grüße, Uta
Moin Uta,
nein, diese Dateien werden nicht überschrieben 🙂
Grüße
Jonas
Dieser Beitrag ist zwar schon etwas älter, aber ich denke noch immer recht aktuell. Wie ich hier beschriebenes aktuell umsetzen muss finde ich heraus, aber ich habe zumindest weitere Denkanstösse erhalten. Vielen Dank dafür.
Moin Stefan,
ja, die Inhalte sind nach wie vor aktuell 🙂
Viel Erfolg, wenn du Fragen hast, gerne her damit!
Grüße
Jonas
Hallo Jonas,
ich finde das Problem sitzt ganz oft einfach vor dem Rechner.
Bereits einfache Dinge können WordPress sicherer machen. Starke Passwörter und die Erkenntnis das überall gefahren lauern. Dann regelmäßige Updates, möglichst wenige Plugins und schon hat man viel für die Sicherheit getan.
Mit einigen wenigen Plugins kann der Rest dann getan werden. Wobei ich kein Fan von WordPress Security Plugins bin, die eine Seite genauso gut langsam machen können.
VG
Ronny
Moin Ronny,
ja das stimmt. Mit Updates und ordentlichen Passwörtern ist schon sehr viel gemacht 🙂
Grüße
Jonas
Die NinjaFirewall ist auf jeden Fall eine Empfehlung wert.
Gruß
Pascal
Moin Pascal,
ja definitiv, allerdings muss man sich hierfür schon sehr gut auskennen, damit die Einrichtung reibungslos funktioniert.
Viele Grüße
Jonas