⏱️ Was ist Ratenbegrenzung?
Ratenbegrenzung kontrolliert, wie viele Anfragen eine IP in einem bestimmten Zeitfenster stellen kann. Überschreitet eine IP das konfigurierte Limit, wird eine Aktion ausgelöst (Überwachung, Herausforderung oder Blockierung). Es ist die primäre Verteidigung gegen Brute-Force-Angriffe (massive Login-Versuche), Scraping (automatisierte InhaltsExtraktion) und Ressourcenmissbrauch (übermäßige Anfragen an APIs oder Formulare).
🎯 Was es schützt
- Login / wp-admin: Stoppt Brute-Force-Angriffe auf wp-login.php, wp-admin und Registrierungsseiten.
- XML-RPC: Schützt den xmlrpc.php-Endpunkt vor Verstärkungsangriffen und Benutzerenumeration.
- REST-API: Begrenzt Anfragen an /wp-json/, um Sättigung durch Scraping oder Missbrauch zu verhindern.
- Allgemeine Website: Deckt die gesamte Website (Frontend) gegen aggressive Crawler und Bots ab.
⚙️ Wie RPM + Burst funktionieren
RPM (Requests Per Minute) ist das nachhaltige Limit an Anfragen pro Minute: wie oft eine IP Inhalte innerhalb einer Minute laden kann (ein Mensch beim normalen Surfen erzeugt etwa 5-15 Anfragen/Min., ein aggressiver Bot 100+). Burst ist, wie viele dieser Anfragen praktisch gleichzeitig eintreffen dürfen — schon das Laden einer einzigen Seite löst mehrere gleichzeitig aus (HTML, CSS, JS, Bilder). Wird der Burst überschritten, antwortet der Server mit der Aufforderung, vor der nächsten Anfrage ein paar Sekunden zu warten; das blockiert die IP allein noch nicht, solange sie unter dem RPM-Limit bleibt. Das unterscheidet echten menschlichen Verkehr (kurze, gelegentliche Ausbrüche beim Laden einer Seite) von automatisierten Angriffen (kontinuierliche, anhaltende Spitzen).
Aktion: Monitor / Challenge / Block
Die Aktion definiert, was passiert, wenn eine IP das konfigurierte Limit überschreitet. Jeder Modus bietet eine andere Schwere:
📋 Monitor (Nur Protokoll)
Protokolliert jedes Mal, wenn eine IP das Limit überschreitet, ergreift aber keine Maßnahme. Ideal für die anfängliche Beobachtungsphase. Verwenden Sie es für die ersten 24-48h, um eine Basislinie des legitimen Datenverkehrs zu ermitteln.
⚠️ Challenge (HTTP 429)
Antwortet mit HTTP 429 Too Many Requests und enthält einen Retry-After-Header. Der Browser oder Client muss warten, bevor er es erneut versucht. Es ist die empfohlene Option für die Produktion: stoppt Missbrauch ohne dauerhafte Sperre.
🚫 Block (HTTP 403)
Antwortet mit HTTP 403 Forbidden und blockiert die IP sofort. Die IP wird zur Sperrliste hinzugefügt und alle nachfolgenden Anfragen werden abgelehnt. Verwenden Sie es nur, wenn Sie sicher sind, dass die Grenzen den legitimen Datenverkehr nicht beeinträchtigen.
Voreinstellungen & Benutzerdefinierte Grenzen
SeenSecure enthält vorkonfigurierte Voreinstellungen für die häufigsten Szenarien. Sie können eine Voreinstellung auswählen oder benutzerdefinierte Grenzen manuell konfigurieren. Voreinstellungen passen sowohl RPM als auch Burst automatisch an:
Benutzerdefiniert
Sie definieren RPM (1-3600) und Burst (1-1000). Ideal für Websites mit spezifischen Anforderungen oder nach Analyse der Protokolle im Monitor-Modus.
🧪 Testing (50/10)
50 RPM + Burst 10. Für Tests und Entwicklung. Sehr großzügiges Limit, um Interferenzen während der Konfiguration zu vermeiden.
🔑 Login (50/10)
50 RPM + Burst 10. Optimiert für den Schutz von wp-login.php und wp-admin. 50 Login-Versuche pro Minute reichen für legitime Benutzer aus, stoppen aber Brute-Force-Angriffe.
🔌 XML-RPC (30/5)
30 RPM + Burst 5. Restriktiveres Limit, da xmlrpc.php ein häufiger Vektor für Verstärkungsangriffe ist. Wenn Sie XML-RPC nicht nutzen, erwägen Sie, es komplett zu deaktivieren.
🌐 REST-API (1000/100)
1000 RPM + Burst 100. Hohes Limit, um legitime Integrationen (Plugins, Themes, externe Apps) nicht zu beeinträchtigen. Passen Sie es an, wenn Ihre API starken Verkehr hat.
🌍 Website (1000/100)
1000 RPM + Burst 100. Allgemeine Abdeckung für das Website-Frontend. Geeignet für die meisten Websites mit moderatem Verkehr. Überwachen Sie die Protokolle und reduzieren Sie bei Missbrauch.
🔧 Benutzerdefinierte Grenzen
Bei Auswahl von "Benutzerdefiniert" können Sie definieren:
- RPM: Bereich 1-3600. Nachhaltige Anfragen pro Minute.
- Burst: Bereich 1-1000. Maximum aufeinanderfolgender Anfragen in einem Ausbruch.
Geschützte Kontexte
Die Ratenbegrenzung wird unabhängig in vier verschiedenen Kontexten angewendet. Jeder Kontext hat seinen eigenen RPM/Burst-Zähler, was spezifische Grenzen ermöglicht, ohne andere Bereiche der Website zu beeinträchtigen:
🔐 Login / wp-admin
Schützt wp-login.php, wp-admin/, Registrierungs- und Passwort-Zurücksetzungsseiten. Der kritischste Kontext: Ein erfolgreicher Angriff kann die gesamte Website gefährden. Verwenden Sie die Login-Voreinstellung (50 RPM) oder ein restriktiveres benutzerdefiniertes Limit.
🔌 XML-RPC
Schützt xmlrpc.php. Dieser Endpunkt ist berüchtigt für DDoS-Verstärkungsangriffe und Benutzerenumeration. Die XML-RPC-Voreinstellung (30 RPM + Burst 5) ist sehr restriktiv, da dieser Endpunkt idealerweise minimalen bis keinen Verkehr haben sollte.
🌐 REST-API
Schützt /wp-json/. Viele Plugins und Themes stellen häufige Anfragen an die REST-API. Die Voreinstellung (1000 RPM + Burst 100) ist hoch, um Integrationen nicht zu beeinträchtigen. Überwachen Sie die Protokolle, um festzustellen, ob ein externes Plugin mehr oder weniger Limit benötigt.
🌍 Allgemeine Website
Deckt das gesamte Website-Frontend ab: Seiten, Beiträge, Archive, Suchen und alle URLs, die nicht von den anderen Kontexten abgedeckt werden. Die Voreinstellung (1000 RPM + Burst 100) ist für die meisten geeignet. Reduzieren Sie bei aggressivem Content-Scraping.
Progressive Eskalation
Das System der progressiven Eskalation erhöht automatisch die Schwere der Strafen für wiederholt auffällige IPs. Anstatt immer die gleiche Bestrafung anzuwenden, werden die Sanktionen härter, je mehr der Missbrauch andauert:
Stufe 1 (Leicht)
Anfängliche kurzzeitige Strafe. Die IP erhält eine kurze Auszeit (einige Minuten), bevor sie es erneut versuchen kann. Hört der Missbrauch auf, kehrt die IP automatisch zur Normalität zurück.
Stufe 2 (Moderat)
Wenn die IP innerhalb des Eskalationsfensters erneut auffällt, verlängert sich die Strafe erheblich (Minuten bis Stunden). Das System zeichnet den Wiederholungsfall auf und wendet eine längere Sperrzeit an.
🚫 Dauerhafte Sperre
Wenn die IP die Wiederholungsschwelle innerhalb des konfigurierten Eskalationsfensters überschreitet, wird sie automatisch zur dauerhaften Sperrliste hinzugefügt. Nur ein Administrator kann sie manuell über die Liste der gesperrten IPs entsperren.
⚙️ Konfigurierbare Parameter
- Stufe 1 Dauer: Anfängliche Strafzeit (standardmäßig 15 Minuten, konfigurierbar zwischen 1 und 60).
- Stufe 2 Dauer: Strafe für Wiederholungstäter (standardmäßig 120 Minuten / 2 Stunden, konfigurierbar zwischen 30 und 1440).
- Dauerhafte Schwelle: Anzahl der Wiederholungen vor dauerhafter Sperre (standardmäßig 5, konfigurierbar zwischen 2 und 10).
- Eskalationsfenster: Zeitraum, in dem Wiederholungen gezählt werden (standardmäßig 24 Stunden, konfigurierbar zwischen 1 und 168). Verhält sich die IP in diesem Zeitraum gut, wird der Zähler zurückgesetzt.
❓ FAQ — Häufig gestellte Fragen
🔹 Was tun, wenn ein externer Dienst (API, Webhook) blockiert wird?
Wenn ein externer Dienst, den Ihre Website benötigt (Zahlungsgateway, CRM, Webhook von Drittanbietern), durch die Ratenbegrenzung blockiert wird:
- Protokolle prüfen — Gehen Sie zum Rate-Limiting-Protokoll und identifizieren Sie die IP oder den IP-Bereich des blockierten Dienstes.
- IP zur Whitelist hinzufügen — Fügen Sie im Whitelist-Bereich der Firewall die IP oder den CIDR-Bereich (z.B. 203.0.113.0/24) hinzu, damit der Datenverkehr dieses Dienstes die Ratenbegrenzung umgeht.
- Konnektivität prüfen — Führen Sie einen Test durch, um zu bestätigen, dass der Dienst ordnungsgemäß funktioniert.
🔹 Wie lange sollte ich den Monitor-Modus verwenden, bevor ich zu Challenge wechsle?
Wir empfehlen mindestens 24-48 Stunden im Monitor-Modus. So können Sie:
- Legitime Verkehrsspitzen identifizieren (Starts, Aktionen, E-Mail-Kampagnen).
- Die Basis-RPM für jeden Kontext ermitteln.
- Missbräuchliche IPs erkennen, bevor Sie Sperren aktivieren.
- Voreinstellungen anpassen oder fundierte benutzerdefinierte Grenzen erstellen.
Wechseln Sie nach diesem Zeitraum zu Challenge (HTTP 429). Überwachen Sie weitere 7 Tage, bevor Sie Block in Betracht ziehen.
🔹 Beeinträchtigt die Protokollierung die Leistung?
Der Protokollierungsschalter aktiviert oder deaktiviert die detaillierte Aufzeichnung von Rate-Limiting-Ereignissen. Bei aktivierter Protokollierung wird jedes Mal, wenn eine IP ein Limit überschreitet, ein Eintrag im Protokoll geschrieben. Bei deaktivierter Protokollierung werden Aktionen (Challenge/Block) weiterhin ausgeführt, aber nicht aufgezeichnet. Wir empfehlen, die Protokollierung während der Monitor- und Challenge-Phasen für die Sichtbarkeit eingeschaltet zu lassen. Sie kann in der Produktion ausgeschaltet werden, wenn das Protokollvolumen sehr hoch ist.
🔹 ¿Puedo tener límites distintos para cada contexto?
Ja. Jeder Kontext (Login, XML-RPC, REST-API, Website) hat seine eigene RPM- und Burst-Konfiguration. Sie können z.B. 50 RPM bei Login, 30 RPM bei XML-RPC, 1000 RPM bei der REST-API und 1000 RPM bei der allgemeinen Website haben, alle gleichzeitig.
🔹 Beeinträchtigt die Ratenbegrenzung Suchmaschinen (Googlebot)?
Legitime Suchmaschinen-Bots (Googlebot, Bingbot, etc.) werden an ihrem User-Agent erkannt und überschreiten in der Regel keine Standard-Voreinstellungsgrenzen (1000 RPM). Bei Unsicherheit überprüfen Sie die Protokolle im Monitor-Modus, ob ein Crawler eingeschränkt wird. In diesem Fall können Sie seine IP zur Whitelist hinzufügen oder das Limit für den allgemeinen Website-Kontext erhöhen.
🔹 Was ist die auf diesem Tab angezeigte "Erste Linie"?
Es handelt sich um eine zusätzliche Schutzschicht (nicht bot-spezifisch), die schon vor dem Laden von WordPress aktiv wird — konzipiert für Traffic-Spitzen und sehr intensive Angriffe, die den Rest der Website überlasten könnten. Sie wird genau hier im Abschnitt "🚀 Erste Linie" aktiviert und konfiguriert. Als Teil dieses Schutzes vermeidet sie zudem eine Beeinträchtigung Ihres Suchrankings: Bevor ein Limit angewendet wird, prüft sie, ob der Besuch wirklich von einer legitimen Suchmaschine oder einem KI-Assistenten stammt (durch Abgleich der IP, nicht nur des gesendeten Textes), damit er reibungslos durchgelassen wird.
🔹 Ein legitimer Besucher wurde wegen wiederholter Verstoße dauerhaft gesperrt — wie hebe ich das auf?
Eine dauerhafte Sperre durch progressive Eskalation kann nur von einem Administrator manuell über die Liste der gesperrten IPs der Firewall aufgehoben werden (oder durch Hinzufügen der IP zur Whitelist, die Vorrang vor jeder Sperre hat). Sie wird nicht von selbst aufgehoben, auch wenn die IP keinen Traffic mehr erzeugt.
🔹 Was genau bedeutet eine HTTP-429-Antwort?
Das ist die Standardantwort "zu viele Anfragen", wenn der aktive Modus Challenge ist: Der Besucher kann es nach einiger Zeit erneut versuchen. Es ist keine dauerhafte Sperre und deutet nicht auf bestätigte bösartige Aktivität hin, sondern nur darauf, dass das für diesen Kontext konfigurierte RPM-Limit überschritten wurde.