Das Anmeldefenster von WordPress ist ein potentielles Einfallstor für Verbrecher. Es gab genügend Blogs, die kompromittiert wurden. Habe ich bisher einen manuellen Brute-Force-Schutz aktiv gehabt, so habe ich mich nun mit der 2-Faktor-Authentifizierung für WordPress beschäftigt. Denn Sicherheit geht nun einmal vor. In den heutigen Zeiten ist es unerlässlich, den eigenen Blog abzusichern. Wohlweislich aber: Es gibt keinen hundertprozentigen Schutz.
Was ist denn 2-Faktor-Authentifizierung?
Die 2-Faktor-Authentifizierung dient dem Nachweis der Identität eines Nutzers. Dieser muss den Nachweis mithilfe einer Kombination aus zwei unterschiedlichen und voneinander unabhängigen Komponenten erbringen. Und diese Komponenten sind eben jene Faktoren. Am Geldautomaten machen das Millionen von Menschen tagtäglich: Sie benutzen ihre Bankkarte und dazu einen PIN. Als Komponenten oder Faktoren gelten dabei:
- Etwas, wovon der Nutzer weiß, wie den Benutzernamen und das Kennwort oder eine PIN
- Etwas, das der Nutzer besitzt, wie etwa ein Hardware-Token oder eben die Bankkarte
- Ein körperliches Merkmal, wie die Iris oder der Fingerabdruck
Bei der 2-Faktor-Authentifizierung werden zwei dieser Komponenten miteinander kombiniert. Mehr und mehr haben sich dabei dynamisch generierte Passcodes durchgesetzt. Dabei ist es so, dass man zur Anmeldung an einem Dienst einerseits die bekannte Kombination aus Benutzernamen und Kennwort einsetzt, aber zusätzlich dazu noch von einem zweiten Gerät einen aktuell erstellten Code eingeben muss, der automatisch nach ein paar Sekunden erneuert wird. Und so etwas habe ich nun bei mir im Blog im Einsatz.
Bisheriger Zustand
Leser, die länger hier mitlesen, werden sich daran erinnern: Durch eine enorme Brute-Force-Attacke hatte ich mal einen manuell gepflegten Schutz mithilfe einer angepassten .htaccess sowie einer eigens erstellten Passwort-Datei .htpasswd eingeführt. Mit der Zeit änderte sich auch mal das Passwort, weil man ja immer wieder die Empfehlung erhält, das Passwort von Zeit zu Zeit zu erneuern. Jedes Mal musste ich dann auch die Datei .htpasswd erneuern. Vergaß man das mal, musste man sich dann mit zwei unterschiedlichen Passwörtern anmelden.
Und ehrlich gesagt, war ich mir in letzter Zeit nicht mehr sicher, ob dieser Schutzmechanismus wirklich so wirksam ist, wie ich mir das jahrelang eingeredet habe. In jedem Fall ist er nicht mehr zeitgemäß. Denn es ist leider so, dass unter Umständen die Anmeldedaten, die man eingibt und dann durchs Internet schickt, auch mal ausspioniert werden können. Irgendwann hätte dann ein potentieller Angreifer die Daten, die ja immer gleich waren, sicher gehabt. Darum habe ich die Anpassungen, die ich oben verlinkt habe, wieder zurückgebaut und etwas neues eingeführt.
2-Faktor-Authentifizierung in WordPress
Ich habe mich dazu entschieden, den Google Authenticator für die Authentifizierung mit dieser Webseite einzusetzen. Hierzu habe ich mir das entsprechende Plugin von miniOrange installiert. Danach habe ich erstmal gesucht, wo ich das Plugin einrichte. Es befindet sich direkt in der Seitenleiste vom Dashboard. Und dort konnte ich das Plugin einstellen.
Wichtig ist, dass man sich dazu die App Google Authenticator aus dem Play Store beschafft. Für iOS gibt es die App auch. Man muss verschiedene Dinge angeben. Unter anderem muss die Email-Adresse aktiviert werden, an die ein Aktivierungscode geschickt wird. Den trägt man in das Plugin ein.
Man trifft seine Einstellungen und ist dann auch bald fertig. Ich habe mich direkt für die 2-Faktor-Methode mit dem Google Authenticator entschieden. In dem wird fortlaufend ein Passcode generiert. Den kann man kopieren, man kann ihn aber auch abtippen. Und danach sollte man fertig sein und sich sauber an seinem Blog anmelden können: Erst mit dem bisherigen Login, der allerdings um die Passcode-Abfrage ergänzt wurde.
Ich hoffe, dass ich nun geschützt bin. Es läuft auf jeden Fall alles bestens. Und so bin ich endlich wieder frohen Mutes, dass der Blog weiterhin sicher ist. Um den Google Authenticator nutzen zu können, muss ein QR Code eingescannt werden, der im Plugin angezeigt wird. Mit diesem QR Code registriert man die App und das Plugin gegenseitig. Und dann geht es los.
Update 14.02.2020
Schade, ich musste mich von diesem miniOrange-Zeug verabschieden. Letztlich war es so, dass das Plugin immer weiter aufgebläht wurde, bis es letztlich eine komplette Security Suite war. Das führte dazu, dass fälschlicherweise Daten als Infektion erkannt wurden. Ich wurde zum Scan aufgefordert. Und wenn sie nicht gestorben sind, dann scannen sie noch heute. Das Plugin hat den Blog ausgebremst und war nicht dazu in der Lage, diesen ominösen Scan zu mehr als 1% abzuschließen.
Ich habe mir stattdessen das Plugin „Google Authenticator“ von Ivan Kruchkoff installiert. Auf der Seite gibt es den Reiter „Installation“. Und dieser einfache Weg macht genau das, was beschrieben ist. Dieses kleine, feine Plugin ist vermutlich komplett ausreichend. Denn ich mache ja sonstwas für Handstände, um den Blog sicher zu haben. Ich brauchte daher nur eine gut gehende 2-Faktor-Authentifizierung. Das Plugin säbelt einem ein zusätzliches Feld ins Login-Formular und funktioniert einfach.
Und es geht weiter
Mal ehrlich, wer nun schon mal den Google Authenticator im Einsatz hat, kann damit noch einiges mehr machen. Welche Dienste man dann noch absichern kann, muss jeder selbst entscheiden. Aber es gibt eine ganze Menge Dienste, die man in Verbindung mit dem Google Authenticator nutzen kann. Soziale Netzwerke gehören genauso dazu wie Email-Konten. Bei Facebook macht man das hier. Achtung, auf die richtige Handynummer achten. Bei den Google-Diensten geht das hier. Damit werden alle Google-Dienste abgesichert. Und bei Twitter geht das Ganze hier.
In Zeiten von Heartbleed oder auch Meltdown kann man nicht vorsichtig genug sein. Darum lieber einen zusätzlichen Mechanismus einrichten, bevor Daten missbraucht werden. Dennoch muss jeder daran denken, dass niemand auf der Welt und auch kein Dienst eine absolute Sicherheit gewährleisten kann. Man kann sich ihr nur annähern. Und dazu ist so etwas wie die 2-Faktor-Authentifizierung beim eigenen WordPress-Blog schon mal ein Anfang.
Hi,
jepp, sehe ich genau so, Henning. Die 2-Schritte-Auth ist ein sehr gelungener Anfang in Richtung mehr Websicherheit eigener Accounts und Konten. So schaue ich immer bei meinen CMS-Installationen im Vorfeld, ob diese CMS nicht so etwas anbieten würden. Joomla, WordPress, SocialNetworks, Plesk, Server, Mail können das bereits. Xenforo, Woltlab Suite nutzt das Hauptkennwort, wenn du es einmal einstelltest, muss jeder dran vorbei, um gravierende Änderungen im Forum-ACP durchführen zu können. Daher auch mein PW-Manager, denn ich setze sehr viele PWs zur Zeit ein und täglich werden es mehr.
Seitdem ich ein Android Smartphone besitze, habe ich alle 2-Schritte-Auth-Codes hübsch auf dem Handy und gehe es nur mit dem Finger ab, um den richtigen Code zu finden. Zugegeben, meine Anmeldungen in Konten etc.pp. ziehen sich in die Länge, aber das kann man nicht mit der Sicherheit vergleichen, die einem gegeben wird.
Hallo Alex,
das stimmt, mit der 2FA geht es schon in die richtige Richtung. Natürlich erkauft man sich diese zusätzliche Sicherheit mit Geschwindigkeitseinbußen und mit einem zusätzlichen Gerät. Aber es geht leider nicht anders. Ich werde nach und nach auch noch mehr Logins, wo es möglich ist, mit 2FA bestücken. So ist wieder etwas mehr Sicherheit gegeben.
Hallo
Wir haben bei einigen Sites auch einen 2-fachen Login. Aber auf NGINX gibts das .htaccess Konzept nicht so wie bei Apache, hier trägt man einen ähnlichen Code direkt in die config des Servers ein. Schließlich hat es aber den gleichen Effekt. Und dieser Schutz funzt seit vielen Jahren – trotz massiven Angriffen. (s. unten *)
Google Authenticator
Vorausschickend möchte ich sagen: Google traue ich keinen Bit weit, ok, ich nütze deren Suche, das wars.
Aber was ist an dem Authenticator besser als die hta Lösung?
Warum braucht man dazu diesen AppStore und einen QR-Code? (Ich hole Plugins nur vom Original WP-Verzeichnis)
Und für was wieder ein Plugin, wieso? Was wenn der Hersteller sich kaufen lässt? Wär nicht da erste Mal – dann tauchen die Logins mal im Netz auf und der Hersteller taucht in der Südsee unter.
(Evtl. verstehe ich das Prinzip der hier vorgestellten Lösung nicht oder meine Abneigung von Google behindert dabei)
Ich glaube, 2 hintereinander gestaffelte Logins mit urlangen, komplexen PW, reichen. Und wenn der Verzeichnis,- bzw. wp-login.php – Schutz beim Hoster des Vertrauens, innerhalb dessen gesicherten Adminbereichs generiert wird – sollte das sicher sein.
*) Eine unserer Sites ist so „beliebt“, dass wir oft 12-stündige DDos Attacken haben, wo bis zu 60 Mio. Zugriffe/min kommen. (ok, dagegen braucht es andere Maßnahmen).
Aber: Wir haben pro Tag auch etliche tausend Versuche, in den Login zu kommen – es ist noch keinen gelungen…
Oha, das liest sich ja übel. So viele Angriffe! Da würde mein popeliges Shared Hosting Paket völlig zusammenbrechen. Aber deine Sorge bezüglich Google Authenticator kann ich nicht gänzlich teilen. Natürlich: Ich würde auch nicht mein Online Banking damit verheiraten, obwohl das eigentlich gehen sollte. Aber da das Passwort nicht bei Google landet und auch nicht im Browser gespeichert ist, sehe ich die Aushebelungsmöglichkeit als verhältnismäßig gering an.
Das Prinzip ist ja: Du hast für WordPress dein Login, bestehend aus Benutzername und Kennwort. Demgegenüber musst du dich noch mit einer externen Möglichkeit authentifizieren. Ich mache das mit dem genannten Plugin. Das gibt mir die Möglichkeit, eine Email-Verifizierung, eine Token-Verifizierung und – neben anderem – auch den Google Authenticator einzusetzen. Und den wiederum beziehe ich unabhängig davon aus dem Play Store.
Der Google Authenticator puzzelt sich einen Zahlencode zusammen, der alle paar Sekunden erneuert wird. Selbst wenn Google die Reihenfolge der Zahlencodes weiß, sie wissen aber nichts davon, wann du den Code eingeben willst. Also insofern halte ich das schon für einigermaßen sicher.
Einbrüche hatte ich vorher mit .htpasswd und angepasster .htaccess auch nicht. Ich hatte Versuche. Aber das ist ja wohl etwas anderes.