Mit der Nginx-Direktive limit_rate
können Sie die Geschwindigkeit angeben, mit der Sie Grenzwertantworten bewerten möchten, z
location / {
if ($slow) {
limit_rate 4k;
}
}
Die Nginx-Dokumentation finden Sie hier . (Aus der Dokumentation geht hervor, dass Ihr Backend möglicherweise die Entscheidung trifft und Nginx auffordert, den Client zu bewerten.)
Wie Sie diesen $slow
Variablensatz erhalten, hängt von Ihrer Konfiguration ab. Am einfachsten wäre es, es über geo
Mapping einzustellen :
geo $slow {
default 0;
1.2.3.0/24 1;
}
"Geo" -Mapping ist eine Abhängigkeit von $slow
der Client-IP-Adresse. Es ist standardmäßig 0 und 1, wenn sich eine Client-IP-Adresse im 1.2.3.0/24
Subnetz befindet. Siehe Nginx-Dokumentation zu "Geo" hier
Die Verwendung von "fail2ban" ist eine vernünftige Weiterentwicklung dieser gesamten Lösung. Sie können "fail2ban" verwenden, um ungewöhnliche Aktivitäten automatisch zu erkennen und IPs für Nginx zu sammeln und dann Nginx neu zu laden, damit Listen von IP-Adressen erneut gelesen werden, die verlangsamt und / oder blockiert werden müssen.
Der beste Weg, um mit diesem Spammer umzugehen, ist die ordnungsgemäße Installation und Konfiguration von fail2ban. Fail2ban durchsucht Muster in Protokolldateien und blockiert alle IP-Adressen, die Ihre Site als Spam versenden. Natürlich müssen Sie es so konfigurieren, dass es nach dem richtigen Muster sucht.
quelle