Hushfort

Wie kann ich in WordPress die Login-Versuche begrenzen?

Von Eureka Studio · Aktualisiert

Kurze Antwort

WordPress lässt jeden endlos Passwörter raten. Um Login-Versuche zu begrenzen, nutzt du ein Plugin, das fehlgeschlagene Anmeldungen pro IP innerhalb eines Zeitfensters zählt und diese IP eine Weile sperrt – zum Beispiel bedeuten 8 Fehlversuche in 5 Minuten 15 Minuten Wartezeit. Achte darauf, dass auch Fehlversuche bei 2FA und Anwendungspasswörtern mitzählen, und setze deine eigene IP auf die Zulassungsliste.

Schritte

  1. 1Schritt 1

    Sehen, wie unbegrenztes Raten aussieht

    Ohne Limit beantwortet WordPress jedes falsche Passwort mit derselben Fehlermeldung, so oft es gefragt wird – und die Standardmeldung bestätigt sogar, dass der Benutzername existiert.

    Zwei falsche Passwörter im WordPress-Login-Formular; jedes Mal meldet WordPress, dass das Passwort für demo-admin falsch ist, und lässt den nächsten Versuch zu
  2. 2Schritt 2

    Login-Limits einschalten und die Regeln festlegen

    Öffne in WordPress Hushfort → Limits & Einschränkungen und schalte „Login-Limits aktivieren“ ein. Standardmäßig gilt: 8 Fehlversuche innerhalb von 5 Minuten, dann 15 Minuten Sperre; nach 4 Sperren in 24 Stunden dauert die Sperre 1.440 Minuten. Klicke auf „Änderungen speichern“.

    Hushfort-Tab Limits & Einschränkungen: Login-Limits eingeschaltet, mit Erlaubte Fehlversuche 8, Zeitfenster 5 Minuten und Sperrdauer 15 Minuten
  3. 3Schritt 3

    Die eigene IP freigeben und die IP-Quelle prüfen

    Lege weiter unten die „IP-Quelle“ fest. „Automatisch (nur verifizierte Proxy-Header)“ passt für die meisten Websites, auch für solche hinter Cloudflare. Füge dann deine Büro- oder Heim-IP unter „IPs auf der Zulassungsliste“ hinzu, damit du dich nie selbst aussperren kannst, und speichere.

    IP-Quelle auf Automatisch (nur verifizierte Proxy-Header) gesetzt und 203.0.113.10 unter IPs auf der Zulassungsliste hinzugefügt
  4. 4Schritt 4

    Eine E-Mail erhalten, wenn eine IP gesperrt wird

    Schalte „Warn-E-Mail“ ein und gib eine oder mehrere Adressen an, durch Kommas getrennt. Der Schalter braucht funktionierendes SMTP auf der Website; ohne SMTP lässt Hushfort die Option aus und sagt dir, warum.

    Warn-E-Mail eingeschaltet, zwei Empfängeradressen eingetragen und gespeichert
  5. 5Schritt 5

    Dem Limit bei der Arbeit zusehen

    Nach der erlaubten Anzahl an Fehlversuchen wird die IP gesperrt, statt einen weiteren Versuch zu bekommen. Der Verlauf listet jede aktive Sperre mit dem versuchten Benutzernamen, der Anzahl der Versuche und dem Ende der Sperre auf – mit einer Schaltfläche „Freigeben“.

    Hushfort-Verlauf: Aktive Sperren für drei IP-Adressen mit den versuchten Benutzernamen, je 8 Versuchen und 15 verbleibenden Minuten, über dem vollständigen Verlauf der Fehlversuche

Warum das wichtig ist

Ein Brute-Force-Angriff ist reine Geduld: ein Passwort probieren, falsch, das nächste probieren. WordPress stört das nicht. Es beantwortet tausend falsche Versuche von derselben Adresse so höflich wie den ersten. Hat ein Konto ein schwaches oder mehrfach verwendetes Passwort, ist es ohne begrenzte Login-Versuche nur eine Frage der Zeit.

Ein Login-Limit ändert die Rechnung. Kann eine IP nur eine Handvoll Versuche machen, bevor sie fünfzehn Minuten warten muss, dauert das Erraten eines ordentlichen Passworts Jahre statt Stunden. Außerdem muss dein Server die Login-Seite nicht immer wieder für einen Bot ausliefern.

Was es allein nicht abdeckt. Angreifer, die über Tausende IP-Adressen verfügen, können von jeder ein paar Versuche schicken. Deshalb wirkt ein Login-Limit am besten zusammen mit der Zwei-Faktor-Anmeldung, die ein erratenes Passwort ohne den Code nutzlos macht.

Häufige Fehler

  • Nur das Login-Formular zählen. Passwörter lassen sich auch über xmlrpc.php, über Anwendungspasswörter der REST-API und beim Schritt mit dem Zwei-Faktor-Code ausprobieren. Zählen diese nicht zum Limit, nutzen Angreifer einfach sie. Schließe auch den XML-RPC-Login; siehe XML-RPC sicher deaktivieren.
  • Hinter einem Proxy die falsche IP lesen. Steht deine Website hinter Cloudflare und liest das Plugin die Adresse des Proxys, kann ein einziger Bot alle Besucher aussperren. Vertraut es stattdessen blind dem X-Forwarded-For-Header, kann ein Bot sich bei jeder Anfrage eine neue IP ausdenken und wird nie gezählt. Die sichere Regel: Proxy-Headern nur vertrauen, wenn die Anfrage wirklich vom Proxy kommt.
  • Zu lange Sperren. Eine 24-Stunden-Sperre für drei Tippfehler bestraft dein eigenes Team. Halte die erste Sperre kurz und verlängere wiederholte Sperren.
  • Keine Zulassungsliste. Füge deine eigene feste IP hinzu, damit dich ein vergessenes Passwort nie aussperrt.

Ohne Plugin

WordPress hat einen Hook, wp_login_failed, der nach jeder fehlgeschlagenen Anmeldung ausgelöst wird. Du kannst Fehlversuche mit einem Transient zählen und Anmeldungen ablehnen, wenn die Zahl zu hoch ist. Eine minimale Version als Must-use-Plugin (wp-content/mu-plugins/login-limit.php):

<?php
add_action( 'wp_login_failed', function () {
    $key = 'll_' . md5( $_SERVER['REMOTE_ADDR'] );
    $n   = (int) get_transient( $key );
    set_transient( $key, $n + 1, 15 * MINUTE_IN_SECONDS );
} );

add_filter( 'authenticate', function ( $user ) {
    $key = 'll_' . md5( $_SERVER['REMOTE_ADDR'] );
    if ( (int) get_transient( $key ) >= 8 ) {
        return new WP_Error( 'too_many', 'Too many failed attempts. Try again later.' );
    }
    return $user;
}, 30 );

Das funktioniert, aber sei ehrlich, was es nicht abdeckt: Es liest nur REMOTE_ADDR, zählt hinter einem Proxy also den Proxy; es zählt Rateversuche über XML-RPC-Multicall nicht als einzelne Versuche; es hat keine Zulassungsliste, keine Warn-E-Mail und kein Protokoll. Jedes davon bedeutet mehr Code, den du schreiben und pflegen musst.

Manche Hoster bieten außerdem Werkzeuge auf Serverebene an, etwa fail2ban, das das Access-Log überwacht. Das ist stark, wenn dein Hoster es für dich betreibt; auf Shared Hosting kannst du es meist nicht einrichten.

Wenn etwas schiefgeht

  • Du hast dich selbst ausgesperrt. Warte, bis die Sperre abläuft, versuche es aus einem anderen Netz, etwa über mobile Daten, oder bitte einen anderen Administrator, deine IP auf die Zulassungsliste zu setzen.
  • Alle werden auf einmal ausgesperrt. Deine Website steht vermutlich hinter einem Proxy, und das Plugin liest die IP des Proxys. Ändere die Einstellung „IP-Quelle“.
  • Es kommt nie zu Sperren. Prüfe, ob die IP-Quelle einem Header vertraut, den Bots fälschen können. Zeigt jeder Versuch eine andere „IP“, ist das die Ursache.

Alle Wege zurück hinein findest du unter Ausgesperrt nach Änderung der Login-URL.

Mit Hushfort

Login-Limits gehören zu Hushfort Pro, dem kostenpflichtigen Add-on zu Hushfort Security, dem kostenlosen WordPress-Sicherheitsplugin.

Die Ebene Login-Limits von Hushfort zählt fehlgeschlagene Anmeldungen pro IP (oder pro IP und Benutzername) innerhalb eines Zeitfensters deiner Wahl und sperrt die IP für eine Dauer deiner Wahl. Wiederholte Sperren innerhalb von 24 Stunden können eine längere, verlängerte Sperre auslösen.

  • Fehlgeschlagene Zwei-Faktor-Codes und fehlgeschlagene Anmeldungen mit Anwendungspasswörtern zählen ebenfalls mit – es gibt also keine Seitentür zum Raten.
  • Proxy-Headern wird nur vertraut, wenn die Anfrage wirklich von Cloudflare oder aus einem privaten Netzwerk kommt.
  • Warn-E-Mails gehen an so viele Adressen, wie du angibst.
  • Jeder fehlgeschlagene und blockierte Versuch erscheint in einem filterbaren Verlauf.
  • Die Zulassungsliste wird mit allen anderen Hushfort-Ebenen geteilt, du trägst dich also nur einmal ein.

Das Deaktivieren von Hushfort hebt alle bestehenden Sperren auf.

Häufige Fragen

Wie viele Login-Versuche sollte ich erlauben?

Genug für jemanden, der sich ein paarmal vertippt, und wenig genug, dass Raten sinnlos wird. Etwa 5 bis 10 Fehlversuche in wenigen Minuten mit 15 Minuten Sperre sind ein entspannter Mittelweg.

Begrenzt WordPress Login-Versuche standardmäßig?

Nein. WordPress selbst akzeptiert unbegrenzt viele fehlgeschlagene Anmeldungen. Manche Hoster setzen ein Limit auf dem Server, frag also bei deinem nach – verlassen kannst du dich darauf aber nicht.

Kann mich ein Login-Limit aus meiner eigenen Website aussperren?

Ja, wenn du dich immer wieder vertippst. Setze deine eigene IP auf die Zulassungsliste oder warte, bis die Sperre abläuft. Ein anderer Administrator kann deine IP ebenfalls auf die Zulassungsliste setzen.

Reicht es, Login-Versuche zu begrenzen, um Brute Force zu stoppen?

Es bremst das Raten auf Schneckentempo, aber Angreifer mit vielen IP-Adressen können ihre Versuche verteilen. Kombiniere es mit Zwei-Faktor-Anmeldung, starken Passwörtern und einem geschlossenen XML-RPC-Login.

Warum treffen Sperren hinter Cloudflare die Falschen?

Hinter einem Proxy kann jeder Besucher scheinbar von der IP des Proxys kommen. Stelle die IP-Quelle so ein, dass das Plugin dem Header mit der echten IP vertraut – und zwar nur, wenn die Anfrage wirklich von diesem Proxy kommt.

Fehler melden oder Funktion wünschen

Deine Nachricht geht direkt an das Team, das Hushfort entwickelt.

Worum geht es?

Nur für unsere Antwort an dich.

Wir nutzen diese Angaben nur, um dir zu antworten. Datenschutz