Mikrotik: Host sperren, wenn zu viele HTTP-Anfragen von ihm kommen

Mikrotik: Host sperren, wenn zu viele HTTP-Anfragen von ihm kommen

Gestern bemerkte ich eine seltsame Aktivität meines bescheidenen Webservers: Er war mäßig warm, die Festplattenköpfe zuckten und die LAN-Aktivität war ungewöhnlich hoch.

Als ich mir die Protokolle ansah, stellte ich fest, dass ein Host meinen Webserver mit roher Gewalt nach Dokumenten durchsucht, um Dateinamen zu ermitteln.

Gibt es einen Schutz gegen einen solchen Brute-Force-Angriff, den ich in RouterOS implementieren könnte?

Antwort1

Ja, es gibt einen Schutz. Grundsätzlich müssen Sie eine Firewall-Regel hinzufügen, um solche Hosts zu erkennen (Kriterium: mehrere TCP/Port 80-Verbindungen vom selben Host) und, wenn Sie eine haben, diese Quell-IP zu einer Adressliste hinzufügen.

/ip firewall filter add chain=input protocol=tcp dst-port=80 connection-limit=200,32  \
action=add-src-to-address-list  address-list=blocked-addr address-list-timeout=1d 

Blockieren Sie dann eingehende Verbindungen von dieser Adressliste.

/ip firewall filter add chain=input src-address-list=blocked-addr action=drop

Sie müssen das Limit (hier 200) einstellen. Und auch die Kette (Eingabe, wenn der Webserver das Mikrotik-Gerät ist, Weiterleitung, wenn es ein anderer Webserver ist).

Dies ist aus dem Wiki übernommen: http://wiki.mikrotik.com/wiki/DoS_attack_protection

Antwort2

Die Antwort von Benoit ermöglicht das Blockieren von Hosts, die gleichzeitig Anfragen stellen. Aber wenn sie die Verbindungen genauso schnell schließen, wie sie sie öffnen, erhalten Sie möglicherweise nicht viele davon zum Filtern. Eine andere Logik besteht darin, diejenigen zu verwenden, dst-limitdie eine Ratenbegrenzung haben.

  • Wir fügen eine Rate-Limit-Liste hinzu:
/ip firewall address-list
add list=rate-limit
  • Anschließend legen wir die Filterregeln fest:
    • Springen Sie zur Rate-Limit-Kette für alle neuen Verbindungen im WAN;
    • Überprüfen Sie, ob in der letzten Minute 10 Verbindungen bestanden haben, mit Intervallen von 5 basierend auf der dst-addressund Zurücksetzen nach 2 Minuten Inaktivität
    • Wenn das Ziellimit erreicht ist, wird die Rückgabeaktion übersprungen und die nächste Aktion in der Rate-Limit-Kette ausgeführt – add-src-to-address-listzur Rate-Limit-Liste mit 10 Minuten-Timeout.
/ip firewall filter
add chain=forward action=jump jump-target=rate-limit connection-state=new in-interface-list=WAN
chain=rate-limit action=return dst-limit=10/1m,5,dst-address/2m
chain=rate-limit action=add-src-to-address-list address-list=rate-limit address-list-timeout=10m
  • Zum Schluss geben wir den Drop im Rohzustand hinzu, so sparen wir Ressourcen:
/ip firewall raw
add action=drop chain=prerouting src-address-list=rate-limit

Sie können mit der Anzahl der Verbindungen und den Zeiteinstellungen experimentieren, um sie je nach Bedarf zu optimieren. Sie können auf der Registerkarte Firewall/Verbindungen mit einem Filter für Ihre öffentliche IP-Adresse überwachen, um zu sehen

verwandte Informationen