Die Absicherung des Backends von WordPress ist ein immer wieder interessantes Thema, Möglichkeiten gibt es viele. Die Absicherung über das Plugin  Limit-Login-Attempts hatte ich bereits vor 2 Jahren hier erwähnt. In letzter Zeit erhielt ich per E-Mail mehrfach Anfragen, welche Einstellungen für Limit-Login-Attempts empfohlen werden bzw. welche ich selbst verwende. Meine verwendeten Einstellungen fasse ich hier in diesem Beitrag zusammen und stelle sie allen Interessenten nebst Begründung zur Verfügung.

Voraussetzung für den erfolgreichen Einsatz von Limit-Login-Attempts ist natürlich erstens ein „vernünftiges“ Passwort sowie einen geänderten Benutzernamen.“Admin“ ist bei allen Versuchen immer noch die absolute Nummer 1 für den Knackversuch. Somit sind 50% schon mal richtig, ein Hacker braucht jetzt nur noch das Passwort und schon ist es passiert. Wer sich beim Erstellen eines guten Passwortes schwer tut kann sich bei Gaijin eines generieren lassen.

Das Plugin selbst bringt in seinen Grundeinstellungen meines Erachtens „zu sanfte Sperren“ mit sich. Vier Login-Versuche und anschließend nur eine Sperre von 20 Minuten sowie nach weiteren 4 Login-Versuchen eine Sperre für 24 Stunden lassen zuviel experimentelle Zeit um ein Passwort zu knacken.

Empfohlene Einstellungen

Meine Einstellungen habe ich mal nummerisch von 1 bis 5 gekennzeichnet. Nachfolgend die Erklärung, warum ich die Einstellung so und nicht wie vorgegeben gewählt habe.

  1. Zwei Anmeldeversuche reichen völlig aus, somit ist es auch mal möglich sich selbst zu vertippen ohne gleich geblockt zu werden. Doch auch dies lässt sich mit einem Neustart des Routers beheben, mit einer neuen IP-Adresse ist der Zugang wieder möglich. Hier eine 1 zu setzen wäre die sicherste Variante wenn man das eigene Vertippen mal außen vor lässt.
  2. Hier ruhig bis an die Obergrenze der Sperrzeit gehen. 9999 Minuten entsprechen knapp 7 Tagen, die bei der ersten Sperrung verhängt werden. Die Eingabe ist maximal vierstellig möglich. Mit einem kleinen Eingriff ins Plugin selbst sind hier auch 5 Stellen möglich. Dazu weiter unten mehr.
  3. Kommt es zu einer 2. Sperrung (das wäre mit dieser Einstellung der 4. Fehlversuch) wird die verwendete IP-Adresse deutlich länger geblockt – hier satte 6 Monate.
  4. Fehlgeschlagene Logins werden – bevor es zu einer Sperrung kommt – werden nach 336 Stunden (14 Tage) wieder zurückgesetzt. Hacker werden es jedoch immer mehr als einmal binnen 14 Tagen versuchen. Auch deswegen sollte die Zahl der Anmeldeversuche (wie unter 1. beschrieben) möglichst gering gehalten werden.
  5. Hier bleibt es dem Nutzer selbst überlassen welche Option er wählt. Ich nutze die Protokollierung deswegen um wiederkehrende Hacker leichter identifizieren zu können. Die Benachrichtigung per E-Mail (in Einstellungen – Allgemein hinterlegte Adresse) bereits nach der ersten Sperrung halte ich für wichtig um über stattfindende Aktionen auf dem laufenden zu sein.

Um leichter mit Minuten, Stunden, Wochen und Monaten zu jonglieren bedient man sich der Einfachkeit halber dem Umrechnungstool für Zeiteinheiten.

IP-Adressen per .htaccess blockieren

Alex vom OffenenBlog hatte Ende letzter Woche darüber berichtet Hacker per .htaccess auszusperren. Generell auch eine Variante das Backend von WordPress „abzudichten“. Allerdings bläht sich dadurch die .htaccess mit jedem Eintrag weiter auf. Und Gründe für neue Einträge liefern sich wöchentlich doch etliche. Die .htaccess wo schlank wie möglich zu halten ist mir persönlich zunächst wichtiger. Daraus resultierten bei mir schließlich die deutlich höheren Sperrzeit via Limit-Login-Attempts von 6 Monaten.

Innerhalb der zwei Jahren in denen ich das Plugin nutze kam es nur einmal vor, dass es ein über 6 Monate gesperrter Hacker mit der gleichen IP-Adresse erneut hier aufschlug und gesperrt wurde. Diese IP landete bei mir dann in der .htaccess. Würde ich jede IP-Adresse dort eintragen die versucht einzubrechen wären dies in mancher Woche zwischen 20 und 30 Adressen. Auf zwei Jahre betrachtet würde die .htaccess inzwischen eine enorme Länge habe, bei der nicht zuletzt auch schnell mal die Übersicht verloren gehen kann.

Erhöhen auf 5-stellige Eingaben bei Sperrdauer

Limit-Login-Attempts arbeitet nur mit einer php-Datei, das vereinfacht den Eingriff ins Plugin. Öffne die limit-login-attempts.php  und editiere in Zeile 978 die Option „Maxlength“ von 4 auf 5. Und schon können durch die 5-stellige Angabe von Minuten längere Zeiträume abgedeckt werden.

[php]<input type="text" name="lockout_duration" value="<?php echo(limit_login_option(‚lockout_duration‘)/60); ?>" size="3" maxlength="4" /> <!–?php echo __(‚minutes lockout‘,’limit-login-attempts‘); ?–>[/php]

Zeile 978 nach der Bearbeitung:

[php]<input type="text" name="lockout_duration" value="<?php echo(limit_login_option(‚lockout_duration‘)/60); ?>" size="3" maxlength="5" /> <!–?php echo __(‚minutes lockout‘,’limit-login-attempts‘); ?–>[/php]

Das Editieren am Code ist natürlich auf eigene Gefahr, dafür übernehme ich keine Haftung. Ich würde auf den Einsatz von Limit-Login-Attempts nicht mehr verzichten wollen, meine Erfahrungen damit sind in jeder Hinsicht sehr gut.