Im folgenden will ich euch einige grundlegende und meiner persönlicher Meinung und Erfahrung nach, sinnvolle Sicherheitsmaßnahmen für WordPress vorstellen.
WordPress ist das beliebteste CMS und beherrscht den Markt der Content-Management-Systeme mit knapp 60% und 26,6% aller Websites läuft mit WordPress. Durch die hohe Verbreitung, einer hohen Anzahl an Plugins und Themes ist WordPress ein lohnenswertes Ziel für potenzielle Angreifer.
In der Standardinstallation und ohne Plugins ist WordPress eine relativ sichere Sache, und mit wenigen, einfachen Schritten, die ich im Folgenden nennen werde, kannst du die eingerichtete Installation zusätzlich absichern und es einem Angreifer noch schwerer machen in dein System einzudringen.
Maßnahme Nr. 1: Tabellenpräfix ändern
Die Erhöhung der Sicherheit fängt schon während des Installationsprozesses an. Alles was dich der breiten Masse abhebt, dient auch deiner Sicherheit, da du eine kleinere Angriffsfläche für automatisierte Attacken bietest.
Die Standardeinstellung für das Präfix in den Datenbanktabellen ist wp_
. Daraus ergibt sich später zum Beispiel die Tabelle wp_options
in der die Optionen der Installation gespeichert werden.
Ich würde dir empfehlen, hier einen individuelles Präfix zu wählen, das ungefähr so aussehen könnte: projekt_name_
. Es ist eine kleine Maßnahme, schnell durchgeführt, erhöht aber dennoch den Schutz gegen automatisierte Datenbank-Attacken.
Übrigens: wenn du mehrere WordPress-Installationen innerhalb einer Datenbank unterbringen möchtest, dann muss jede Installation ein unterschiedliches Tabellenpräfix bekommen.
Maßnahme Nr. 2: Individueller Benutzername und starkes Passwort
Die zweite Maßnahme ist ebenfalls in wenigen Sekunden umgesetzt. Gönne dir einen individuellen Benutzernamen und ein starkes Passwort.
Während des kurzen Installationsprozesses wirst du unter anderem auch gebeten einen Benutzernamen und das Passwort für den ersten Nutzer bzw. den Administrator zu bestimmen.
Da dich dieser Schritt keine extra Zeit oder Mühe kostet entscheide dich bitte für einen individuellen Benutzernamen. Nehme bitte nicht admin, Administrator, Webmaster, Demo, Test oder Ähnliches.
Ein individueller Name muss jetzt keine exotische Buchstabenkombination sein. Dein Vorname oder Spitzname ist schon ausreichend um dich von der Masse abzuheben… ich gehe jetzt einfach davon aus, dass du mit Vornamen nicht Administrator oder mit Spitznamen Test heißt. 😉
Kritiker dieser Maßnahme würden jetzt unter anderem mit solchen oder ähnlichen Artikeln entgegnen, dass versierte Angreifer in recht kurzer Zeit deinen Benutzernamen erraten können und dass viele Themes sowieso durch die Verlinkung des jeweiligen Autors in der URL, den jeweiligen Benutzernamen verraten.
Diese Kritiker haben zwar in der Sache Recht, aber dennoch ist es hilfreich einen individuellen Benutzernamen zu wählen. Aus der eigenen Erfahrung kann ich sagen, dass ich auf perun.net täglich zwischen einer Handvoll bis zu mehreren dutzend Loginversuche mit dem Benutzernamen admin registriere. Sehr häufig sind auch Loginversuche mit dem Benutzernamen Administrator, Webmaster, Demo und Test zu verzeichnen.
In der oberen Abbildung siehst du einen eher kleinen Ausschnitt, der vielleicht maximal 5% der tatsächlichen Liste zeigt. Das sind alles automatisierte Versuche um in die WordPress-Installation zu gelangen. Daher lohnt es sich in der Praxis auf jeden Fall sich einen individuelleren Benutzernamen auszusuchen.
Bezüglich des zweiten Arguments der Kritiker, also bei Themes, die durch die Autoren-Verlinkung den jeweiligen Benutzernamen verraten, habe ich weiter unten eine Maßnahme parat, die dabei hilfreich ist und zusätzliche Sicherheitsaspekte berücksichtigt.
Jetzt habe ich mich dem Benutzernamen ausführlich gewidmet, aber das Passwort dürfen wir nicht außer Acht lassen. Klar, man sagt so im Alltag “ja, gutes Passwort ist wichtig”, aber dennoch neigen viele dazu entweder zu schwache Passwörter einzusetzen oder die selben auf mehreren Stellen. Aber dadurch, dass WordPress bei der Installation einen recht guten Passwort-Generator bietet, dürfte zumindest das Problem der schwachen WordPress-Passwörter etwas kleiner werden.
Wozu ein schwaches Passwort führen kann, zeigt folgender Artikel. Anscheinend wurde vor einigen Tagen TechCrunch gehackt. Dabei wurde keine Lücke in WordPress oder einem Plugin zum Verhängnis, sondern das schwache Passwort des Redakteurs.
Maßnahme Nr. 3: Loginversuche begrenzen
Eine äußerst sinnvolle und auch schnell eingerichtete Sicherheitsmaßnahme ist die Einschränkung der Loginversuche für einen festgelegten Zeitraum. Damit erschwert man die automatisierten Angriffe auf die Installation (engl. Brute Force) mit denen der Angreifer versucht richtige Kombination aus dem Benutzernamen und Passwort zu erraten.
Um Loginversuche zu beschränken gibt es mehrere Lösungen bzw. Plugins, mit denen man dies realisieren kann. Ich persönlich empfehle hierfür momentan Login LockDown, da es sich sehr einfach einrichten lässt. Nach der Aktivierung der Erweiterung kannst du die Einstellungen anpassen:
Im oberen Screenshot siehst du die drei ersten Punkte, die du für dieses Plugin anpassen kannst. Der erste Wert bezieht sich auf die Anzahl der Loginversuche, die notwendig sind, damit Login LockDown aufmerksam wird.
Der zweite Wert bezieht sich auf den ersten Wert und betrifft die Anzahl der Minuten in denen die Anzahl der Loginversuche zu einem Verdacht führt. In der oberen Abbildung führen drei Loginversuche innerhalb von fünf Minuten dazu, dass das Plugin den jeweiligen Nutzer oder besser gesagt seine IP sperrt. Wie lange die Sperrung dauert hängt vom dritten Wert ab und dieser ist in der Abbildung mit 120 Minuten angegeben.
Welche Wert du hier wählst, bleibt dir überlassen, aber ich würde dir empfehlen die Werte nicht zu tief und auch nicht zu hoch anzusetzen. Setzt du die Anzahl der missglückten Loginversuche zum Beispiel auf den Wert 2 oder 1, dann ist die Wahrscheinlichkeit hoch, dass deine Blogautoren sich des öfteren bei dir melden, weil sie ausgesperrt wurden. Setzet du den Wert dagegen zu hoch an, dann schmälert sich die Schutzwirkung des Plugins.
Ein Wert von 3 bis 5 für Loginversuchen, 4-5 Minuten für den zweiten Wert und eine Sperrzeit von 90-120 Minuten sind in meinen Augen eine gute Kombination aus Sicherheit einerseits und lassen anderseits auch genug Spielraum für Nutzer, die hektisch beim Eintippen der Zugangsdaten sind.
In der zweiten Abbildung siehst du die letzten drei Anpassungspunkte. Der erste betrifft die Frage ob der Loginversuch mit einem nicht bestehenden Namen direkt abgewiesen werden soll. Meine Empfehlung wäre es hier Yes, also ja zu wählen.
Ebenfalls zu bejahen ist die Frage ob demjenigen, der versucht sich einzuloggen, verschleiert werden soll ob bei seinem fehlgeschlagenen Login der Nutzername oder das Passwort falsch war. Wenn du hier Yes wählst, dann wird dem Angreifer seine Arbeit noch mehr erschwert.
Der letzte Punkt betrifft die Frage ob du es wünschst, dass im Loginformular angezeigt wird, dass hier Login LockDown im Einsatz ist. Es ist zwar eine gute Sache, dass man sich mit einem Backlink für die Arbeit des Autor bedanken möchte, aber ich blende dennoch den Hinweis aus, da man nicht auf den ersten Blick erkennen sollte womit man seine Installation schützt. Bei dem Autor kann man sich auch auf andere Art bedanken: indem man zum Beispiel das Plugin empfiehlt oder einen Beitrag darüber verfasst.
Maßnahme Nr. 4: Benutzerrechte mit Bedacht einsetzen oder arbeite nicht mit Admin-Rechten
WordPress verfügt über eine Benutzerverwaltung, die in der Standard-Installation fünf Benutzergruppen kennt. Diese Benutzergruppen und Ihre Fähigkeiten, habe ich bereits in diesem Beitrag beschrieben.
Mein erster Ratschlag bezüglich der Benutzerverwaltung wäre, dass du sparsamer mit den Benutzerrechten umgehst. Nehmen wir mal an, du betreibst ein Weblog wo mehrere Autoren tätig sind. Dann wäre es ratsam, dass du den neuen Autoren bzw. den Autoren mit wenig WordPress-Erfahrung lediglich die Rechte als Mitarbeiter einräumst. Den erfahreneren Autoren kannst du Autor-Rechte geben und nur denjenigen, die das ganze koordinieren und leiten, sollten auch Rechte als Redakteur bekommen. Die Administrationsrechte sollte nur derjenige haben, der tatsächlich für die Pflege des Weblogs verantwortlich ist.
Mein zweiter Rat in diesem Zusammenhang wäre, dass du dich nicht immer mit den Administrator-Rechten einloggst. Gönne dir den Luxus eines zweiten Accounts. Einen mit Admin-Rechten und den anderen mit Autor- oder maximal Redakteur-Rechten. Nutze den Administrator-Account nur für administrative Tätigkeiten, wie zum Beispiel Plugins und WordPress aktualisieren, und verfasse die neuen Beiträge mit dem Account mit weniger Rechten.
Wenn du den Account mit weniger Rechten, als Redakteur oder noch besser als Autor, neue Inhalte verfasst, dann kannst du viel gelassener sein, wenn das Theme durch den Autorenlink deinen Benutzernamen verrät – du erinnerst dich noch an den Einwand aus der Maßnahme Nr. 2 – oder wenn du von unterwegs über eine ungesicherte WLAN-Verbindung das Dashboard ansteuerst.
Es ist ein deutlicher Unterschied ob der Angreifer es dann irgendwann schafft einen Account mit Autorenrechten zu knacken oder ob er im Besitzer der Administrationsrechte ist.
Du könntest natürlich weiterhin als Admin arbeiten und Artikel verfassen und die vor dem Veröffentlichen auf dein Redakteur- oder Autor-Account übertragen. Diese Vorgehensweise eignet sich aber nur bedingt, wenn man zum Beispiel sich über ungesicherte WLAN-Verbindungen einloggt.
Maßnahme Nr. 5: Aktualisieren und auf dem Laufenden bleiben
Der letzte Tipp in Bezug auf die Sicherheit, ist eine Selbstverständlichkeit, wird aber dennoch von vielen Nutzern sträflich vernachlässigt, wie ich aus meiner Erfahrung als WordPress-Dienstleister beobachten kann. Hauptgründe für diese Vernachlässigung ist zum einen Unwissenheit und zum anderen der Zeitmangel.
Man sollte das Geschehen rund um WordPress beobachten um schnell reagieren zu können, zum Beispiel um Sicherheitsupdates für WordPress und die Plugins einzuspielen oder unsichere Erweiterungen zumindest zeitweise zu deaktivieren.
Die Sicherheitsupdates solltest du zügig einspielen und wichtige Anbieter von News zu sicherheitsrelevanten Themen solltest du im Auge behalten. Neben dem offiziellen Weblog solltest du meiner Meinung nach zumindest noch die zwei folgenden Quellen folgen:
- Website Security News (englisch)
- heise Security (deutsch)
Sollte dir für diese Maßnahmen die Zeit fehlen oder du fühlst dich von dem Thema überfordert, dann ist es keine Schande sich an einen Dienstleister zu wenden, der deine Installation betreut. Ich selber zum Beispiel, schneide meine Haare seit dem 3. Lebensjahr nicht mehr selber und begebe mich auch als Erwachsener vertrauensvoll in die Hände eines erfahrenen Friseurs. 🙂
Weitere Maßnahmen
Natürlich gibt es weitere Maßnahmen mit denen man die Sicherheit der eigenen WordPress-Installation erhöhen kann. So könnte man zum Beispiel mit einem Eintrag in der .htaccess die wp-config.php und die .htaccess selber vor externen Zugriffen schützen. Man könnte das Login-Formular mit einem zusätzlichen Passwortschutz versehen oder eine 2-Wege-Authentifizierung einrichten.
Allerdings bin ich der Meinung, dass man zuerst die vorherigen Tipps umsetzen soll, bevor man sich an die Einrichtung solcher Maßnahmen begibt, weil die oben vorgestellten Maßnahmen in meinen Augen das Fundament darstellen und wie wir alle wissen, kommt zuerst das Fundament und erst am Schluss der Dach.
Wir arbeiten seit 20 Jahren mit WordPress und bieten diverse Dienstleistungen rund um das System an. Kontaktiere uns für weitere Informationen oder für ein Angebot.
“Login LockDown” wurde das letzte mal vor zwei Jahren aktualisiert und ist nicht offiziell kompatibel mit der aktuellen WordPress-Version.
Hallo Andreas,
das Plugin funktioniert einwandfrei mit WordPress 4.5.3 und sogar mit 4.6 RC1 obwohl das letzte Update im März 2014 war. Viele Plugins sind nicht “offiziell” kompatibel mit der aktuellen WP-Version und funktionieren dennoch. Es empfiehlt sich immer der Blick in den Support-Bereich eines Plugins und/oder selber ausprobieren bevor man ein Plugin nur deswegen ablehnt, weil das letzte Update etwas länger her ist.,
Hi!
Meines Erachtens nach, sollte die Zugriffsverwaltung via .htaccess auf den Login und den Adminbereich zum Fundament gehören. Allein durch diese Sicherheitsmaßnahme ist man vor vielen Zugriffsversuche bereits um Längen besser abgesichert.
Besten Gruß,
Dave
Hallo Vladimir!
ich würde gerne den Tabellenpräfix ändern, aber mit was für einem Tool macht man das?
Meine Homepage läuft schon 5 Jahre.
Erste Frage
Kommt man mit Bordmitteln dahin – und über welchen Weg, oder muss man ein Plugin benutzen?
Zweite Frage:
Wenn ich das Präfix geändert habe, bekommen dann andere Plugins das automatisch mit, z.B. backwpup oder muss ich das dann irgendwo explizit noch angeben – und wenn ja – wo?
Ich möchte vermeiden dass die Datenbank nach Umstellung des Präfixes nicht mehr erreichbar ist.
Gruß Frank
Hallo Frank,
bei einer bereits bestehenden Seite würde ich den Tabellenpräfix nicht ändern. Ich habe damit keine allzu guten Erfahrungen gemacht. Es ist zwar ein paar Jahre her, aber ich weiß nicht ob sich da in der Zwischenzeit was getan hat.
Hallo.
Mit All In One WP Security & Firewall geht das problemlos und schnell. Hab ich schon zig mal gemacht wenn wir beim Setup nicht aufs Prefix geachtet haben. DB Backup geht auch mit den Tool so ist man hier auf der sichern Seite.
https://de.wordpress.org/plugins/all-in-one-wp-security-and-firewall/
Hallo Vladimir,
vielen Dank für deine Sicherheitstipps. Zum absichern gegen Brute Froce haben wir in der htacess folgenden Eintrag:
order deny,allow
Deny from all
Allow from *.*.*.* (Eigene ip Adresse)
Wir haben eine Feste ip-Adresse. Denkst du das ist absicherung genug gegen Brute Force oder sollte man trotz der Beschränkung durch ip “Login LockDown” installieren.
Ich kann ebenfalls noch Wordfence als Plugin empfehlen
Als Webdesiger, der ausschließlich mit WordPress arbeitet kommen mir diese Überlegungen – wie man WordPress NOCH sicherer machen kann, alle paar Wochen. Danke für deine Einschätzung und deine Tipps!
Gibt es ein gutes Plugin für two factor authentication? Ich würde gerne beim login noch einen zweiten code aus freeOTP oder dem Google authenticator nutzen, aber ich hab in der Menge der Plugins nichts gefunden, was mir gefallen hatte.
Hallo Jakob,
ich bin sehr zufrieden mit Clef seit bestimmt nun einem Jahr.
https://wordpress.org/plugins/wpclef/
Danke, beide Plugins sahen mir so groß aus, voller Kram den ich nicht brauch. Ich hab mich jetzt mal für https://wordpress.org/plugins/google-authenticator/ entschieden.
Hallo Vladimir,
tolle und wirklich einfach umzusetzende Tipps.
Danke schön!
Gruß
Matthias
[…] + + + Sinnvolle Sicherheitsmaßnahmen für WordPress + + + […]
Hey,
danke für die Tipps. Hatte wirklich den Fall, wo zu viele Login Versuche zu dem von dir geschilderten Problem geführt haben.
Die Begrenzung sollte dem nun ein Ende bereiten.
Viele Grüße und Danke dir