Ich benutze zum einen ein "Tarpit" und erlaube nur die Authentifizierung mit öffentlichen Schlüsseln und verbiete Root-Logins.
In netfilter
gibt es ein recent
Modul, das Sie mit ( INPUT
chain) verwenden können:
iptables -A INPUT -i if0 -p tcp --dport 22 -m state --state NEW -m recent --set --name tarpit --rsource
iptables -A INPUT -i if0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 6 --name tarpit --rsource -j DROP
iptables -A INPUT -i if0 -p tcp --dport 22 -j ACCEPT
Das bedeutet, dass jeder Versuch, eine Verbindung zu Port 22 herzustellen, vom recent
Modul mit IP und einigen anderen Informationen unter dem Namen "tarpit" aufgelistet wird (wenn Sie neugierig sind, schauen Sie sich das an /proc/net/xt_recent/tarpit
). Natürlich können Sie auch andere Namen verwenden.
Um IPs aufzulisten oder zu löschen, verwenden Sie:
echo "+123.123.123.123" > /proc/net/xt_recent/tarpit
echo "-123.123.123.123" > /proc/net/xt_recent/tarpit
Diese Rate begrenzt die Versuche auf 5 in 300 Sekunden. Bitte beachten Sie, dass Benutzer mit einer bestehenden Verbindung von dieser Beschränkung nicht betroffen sind, da sie bereits über eine bestehende Verbindung verfügen und mehr Verbindungen erstellen dürfen (auch über der Gebührengrenze).
Passen Sie die Regeln nach Ihren Wünschen an, achten Sie jedoch darauf, dass sie in dieser Reihenfolge hinzugefügt werden (dh wenn Sie sie hinzufügen, verwenden Sie sie in dieser Reihenfolge, wenn Sie sie in umgekehrter Reihenfolge einfügen).
Dies reduziert den Lärm ungemein. Es bietet auch tatsächliche Sicherheit (gegen Brute-Forcing) im Gegensatz zur wahrgenommenen Sicherheit beim Ändern des Ports. Ich würde jedoch weiterhin empfehlen, den Port zu ändern, wenn dies in Ihrer Umgebung möglich ist. Es wird auch den Geräuschpegel reduzieren ...
Sie können dies immer noch mit fail2ban kombinieren, obwohl ich ohne es und nur mit den oben genannten Regeln gut lief.
BEARBEITEN:
Auf diese Weise können Sie sich selbst aussperren, sodass Sie Folgendes hinzufügen können, mit dem Sie das Sperren aufheben können, indem Sie an einen bestimmten Port klopfen:
iptables -A INPUT -i if0 -p tcp --dport <knockport> -m state --state NEW -m recent --name tarpit --remove