T3 Campus T3 Campus

Wie man den IP-Block nach zu vielen Anmeldeversuche entfernt

Seit TYPO3 11 gibt es die Symfony Komponente: Rate Limiter in TYPO3. Dieser schützt das TYPO3 Backend vor Brute-Force Attacken effektiv.

Du hast deine Anmeldeversuche überschritten (TYPO3\CMS\Core\RateLimiter\RequestRateLimitedException) und deine IP-Adresse wurde gesperrt?

Keine Sorge, in diesem Blog erfährst du, wie du den IP-Block schnell und einfach entfernen kannst. Ich erkläre dir, welche Komponente in TYPO3 dafür verantwortlich ist und wie du sie konfigurieren kannst.

Lass uns loslegen!

Was ist der Rate-Limiter in TYPO3?

Der Rate-Limiter in TYPO3 ist eine nützliche Komponente, um unerwünschte Zugriffe auf deine Website zu verhindern. Dieses Feature ermöglicht es, die Anzahl bestimmter Anfragen von einer bestimmten IP-Adresse innerhalb eines bestimmten Zeitraums zu begrenzen.

Ein Einsatzort in TYPO3 ist das Loginformular für das Backend.

Wenn ein Benutzer zu viele Anmeldeversuche unternimmt, um ins Backend zu kommen, dann blockiert der Rate-Limiter die IP des Benutzers für einen bestimmten Zeitraum. 

Nach Ablauf dieser Zeit kann der Benutzer einen erneuten Loginversuch unternehmen. Während der Blockierungsphase kann der Benutzer zwar ein neues Passwort über die "Passwort vergessen" - Funktion festlegen, aber er muss in jedem Fall die volle Blockierzeit abwarten.

Der Rate-Limiter kommt von Symfony, ist seit TYPO3 11 Bestandteil des CMS und seit TYPO3 12 auch standardmäßig aktiviert. Dir wird er deswegen wahrscheinlich auch erst seit TYPO3 12 aufgefallen sein.

So kannst du den Rate-Limiter in TYPO3 konfigurieren

In TYPO3 kann man alles konfigurieren und der Rate-Limiter ist keine Ausnahme. Im Auslieferungszustand lässt der Rate-Limiter 5 Anmeldeversuche zu und blockiert danach für 15 Minuten die IP-Adresse des Benutzers.

Die Anzahl der fehlgeschlagenen Anmeldeversuche kannst du in den systemweiten Einstellungen ändern. Dazu gehst du in das Install Tool oder via Backend unter Admin-Tools -> Settings und dann auf Configure Installation-Wide Options

Dort suchst du am besten nach "Rate Limit" und du wirst folgende Einstellungen finden:

  • [BE][loginRateLimit]
  • [BE][loginRateLimitInterval]
  • [BE][loginRateLimitIpExcludeList]

Mit diesen 3 Einstellungen kannst du die Anzahl der Fehlversuche und Dauert des Blocks einstellen. Ebenso kannst du auch IP-Adressen von der Blockierung ausschließen. Besonders sinnvoll für vergessliche System-Maintainer ;)

Wie kann ich manuell die Blockierung aufheben?

Technisch gesehen wird die Blockierung über eine temporäre Datei realisiert. Diese findest du in TYPO3 12 unter var\cache\data\ratelimiter.
Um den temporären Block zu entfernen, musst du dort alle Dateien löschen. 

Die Dateinamen und deren Inhalt sind kodiert und nicht lesbar. Mir ist kein Verfahren bekannt, dass man darauf zugreifen kann. Das bedeutet durch das Entfernen aller Dateien entfernst du alle aktuelle Blockierungen. 
Das gilt es zu bedenken und wenn du auf Nummer sicher gehen willst, dann wartest du die eingestellte Zeit einfach ab.

Fazit

Der Rate Limiter ist ein weiteres Tool in TYPO3, was die Sicherheit dieses CMS erhöht. TYPO3 ist an sich schon eines der sichersten, wenn nicht das sicherste, Content-Management-Systeme auf PHP Basis. 

Eine Begrenzung der Loginversuche hat lange gefehlt und ist jetzt seit TYPO3 11 und spätestens 12 nun Teil des TYPO3 Core.

Echt klasse!