WordPress absichern – Schnelle Maßnahmen gegen Botnetzattacken
Gestern Morgen hatte ich auf diesem Blog über 500 ungültige Anmeldeversuche innerhalb von zwei Stunden. Nach meiner Beobachtung passiert das so alle vier bis fünf Wochen in ähnlich hoher Intensität. Einen 100prozentigen Schutz dagegen gibt es nicht. Wenn jemand das Blog unbedingt hacken will, wird er wohl Mittel und Wege finden. Allerdings kann man es den Botnetzen, die bei solchen Attacken eingesetzt werden, so schwer wie möglich machen.
Zusätzliches Masterpasswort
Die sicherste Lösung ist wohl, ein zusätzliches Masterpasswort noch vor die Login-Seite zu legen. Damit kommen die Angreifer gar nicht erst bis zum Login-Bereich. Zugegeben, da müsste ich in der nächsten Zeit auch mal dran. Aber ehrlich gesagt, verstehe ich in erster Linie etwas von Kommunikation. Deshalb scheue ich mich immer ein wenig davor, so weit in WordPress einzugreifen. Wie viele anderen auch bräuchte ich dazu einen ruhigen Tag, an dem ich mich intensiver mit dem Thema auseinandersetzen kann, um keine Fehler zu machen. (Eine Anleitung gibt es hier) Schnellere Methoden sind PlugIns, die auch einen recht guten Schutz bieten.
„Limit Login Attempts“ gegen ungültige Anmeldversuche
Bislang habe ich gute Erfahrungen mit dem PlugIn „Limit Login Attempts“ gemacht. Das PlugIn sperrt IP-Adressen nach drei ungültigen Anmeldversuchen für 120 Minuten nach weiteren drei für 48 Stunden. Dauer der Sperrung und Anzahl der Anmeldeversuche lassen sich aber einfach konfigurieren. Nach der heutigen Welle werde ich wohl die Sperrdauer nach oben setzen. Zudem lasse ich mir von Limit Login Attempts immer eine Mail schicken, wenn es zu einer 48 Stunden Sperrung kommt. Es ist überraschend wie oft das Blog angegriffen wird. Das hätte ich vor dem Einsatz von Limit Login Attempts bei so einem kleinen Blog am Rande der großen Blogosphäre nicht gedacht.
„Admin“ und „Domainname“ nicht als Benutzer
Aufschlussreich ist in dieser Hinsicht auch die Protokollfunktion von Limit Login Attempts. Das PlugIn protokolliert die IP-Adressen und Anmeldenamen. Die Versuche laufen immer mit den Namen „admin“ „administrator“ oder anderen Variationen wie „admn“. Was mich überrascht hat: Einige Bots generieren einen Anmeldenamen aus dem Domainnamen, in dem die Länderdomain weggelassen wird. In meinem Fall „totterturm-pr“. Von daher sollte man auch keine Benutzer mit diesem Namen anlegen, bzw. diese löschen oder umbenennen. Herbert Peck hat mich gerade via Twitter auf das PlugIn: „Admin renamer extended“ aufmerksam gemacht, das hier weiterhilft. Am sichersten ist es allerdings, den Benutzernamen ebenso wie das Passwort zu generieren. Im Netz finden sich dazu einige Tools wie dieses hier: Passwortgenerator
IP-Adressen komplett sperren
Interessanterweise erfolgen die meisten Angriffe über einige tausend IP-Adressen, die überall auf der Welt verstreut sind. Der Großteil der IP-Adressen verzeichnet dabei nur ein bis zwei Sperrungen, danach werden sie nicht mehr eingesetzt. Die wenigsten IP-Adressen haben mehr Sperrungen. Geschätzt sind gerade einmal 20 – 30 von ihnen im Protokoll, die zehn und mehr Sperrungen wegen ungültiger Anmeldversuche haben. Bislang habe ich auf ein PlugIn, das IP-Adressen oder auch ganz IP-Ranges komplett sperrt, verzichtet. Nach der heftigen Angriffswelle überlege ich es auszuprobieren. In einigen Blogartikeln wird „IP-Filter“ dazu empfohlen. Über den Sinn von Komplettsperrungen kann man sicher streiten. Zumindest kann man so aber schon einmal die 20 -30 draußen halten, die es mit aller Macht versuchen.
Wie gesagt einen vollständigen Schutz kann und wird es nicht geben. Mit den vorgestellten Maßnahmen kann man aber sein Blog gegen Angriffe von Botnetzen effektiv absichern. Vor allem die PlugIns sind ein Weg, der bei wenig Aufwand einen hohen Nutzen bringt. Bei allen PlugIns sollte man aber nicht vergessen: Regelmäßige Updates auf die neuste WordPressversion und ein starkes Passwort sind die ersten Maßnahmen.
Wenn Ihr Euren Account über eine Konsole konfigurieren könnt, lässt sich ein beliebiges Verzeichnis, z. B. /wp-admin/ auf einfache Weise mit einem Masterpasswort schützen.
Sonst eine .htaccess mit dem Inhalt
AuthUserFile /usr/www/users/ishpca//wp-admin//.htpasswd
AuthName „WP Admin“
AuthType Basic
require valid-user
und eine .htpasswd mit dem Inhalt
anlegen und per FTP ins Verzeichnis laden.
Attribute .htaccess 744 – .htpasswd 644