In der UFW-Manpage wird erwähnt, dass iptables ratenbegrenzend für mich eingerichtet werden kann:
ufw unterstützt die Beschränkung der Verbindungsrate, die zum Schutz vor Brute-Force-Login-Angriffen nützlich ist. ufw lehnt Verbindungen ab, wenn eine IP-Adresse in den letzten 30 Sekunden versucht hat, 6 oder mehr Verbindungen herzustellen. Weitere Informationen finden Sie unter http://www.debian-administration.org/articles/187 . Typische Verwendung ist:
ufw limit ssh/tcp
Leider ist dies die gesamte Dokumentation, die ich finden konnte. Ich möchte bei UFW bleiben und keine komplizierteren iptables-Befehle verwenden (um die Dinge "unkompliziert" zu halten).
Wie würde ich ufw verwenden, um den gesamten eingehenden (also nicht ausgehenden) Datenverkehr auf Port 80 auf 20 Verbindungen pro 30 Sekunden zu beschränken? Wie deaktiviere ich die Ratenbeschränkung für die Ports 30000 bis 30005? Ist die Ratenbegrenzung standardmäßig für alle Ports aktiviert?
iptable
, wenn ja, dann ist iptable das Backend von ufw.Wie im vorherigen Beitrag erwähnt, können Sie die user.rules anpassen. Ich benötige ein SMTP-Verbindungsratenlimit von bis zu 12 Verbindungen in 6 Sekunden. Ich habe eine Regel hinzugefügt, wie unten gezeigt. Hinweis: Dies fügt eine Begrenzungsregel hinzu, die standardmäßig 6 in 30 Sekunden zulässt
und ich habe die Datei /lib/ufw/user.rules bearbeitet (ich behalte eine benutzerdefinierte Kopie dieser Datei mit vielen anderen Verbesserungen), wie unten gezeigt ...
quelle
Das Ratenlimit kann in der UFW-Regeldatei geändert werden, die sich unter /lib/ufw/user.rules befindet. Standardmäßig sind keine Beschränkungen für alle Ports aktiviert. Sie sollten jeden Port manuell hinzufügen oder die Datei user.rules bearbeiten.
quelle
Es lohnt sich, auf mögliche unbeabsichtigte Folgen der Verwendung der LIMIT-Funktion von ufw hinzuweisen.
Angenommen, man hat Port 22 / tcp als erste UFW-Regel ein pauschales Limit zugewiesen:
mit der Annahme, dass alle Verbindungen, die unter dem Grenzwert arbeiten, weiterhin durch Befolgen der UFW-Regeln und schließlich der Standardrichtlinie "Verweigern (eingehend)" gefiltert werden können.
Zumindest für ufw 0.35 wäre diese Annahme falsch. Tatsächlich akzeptiert die LIMIT IN-Logik Eingaben, die nicht vom Limit-Kriterium abgelehnt wurden, sofort.
Im Pseudocode ist die LIMIT-Logik
if CONDITION then DENY else ACCEPT
während andere UFW-Regeln logisch zu sein scheinen:
if CONDITION then (DENY|ACCEPT) else continue to next rule
.Ich persönlich habe festgestellt, dass dies ein unerwartetes Verhalten für ufw LIMIT ist, das ich nur entdeckt habe, als ich unerwartet viele Anmeldeversuche für Port 22 in der Systemprotokolldatei gefunden habe, die aufgrund der Filterung durch andere ufw-Regeln niemals hätten passieren dürfen.
Details zur Verhaltensbestätigung
Die relevanten Zeilen des von ufw eingefügten iptables-Codes lauten wie folgt:
Die obige Auflistung kann mit erstellt werden
Die ersten beiden Zeilen sind aufeinanderfolgend und
ufw-user-input
können mit bestätigt werdenquelle