Es gibt eine Reihe von verschiedenen Paketen, um IP-Adressen auszuschließen, von denen aus Brute-Force-SSH-Angriffe auf Ihr System gestartet werden. Beispielsweise:
Was sind die Vor- / Nachteile dieser oder anderer?
Meine derzeitige Lösung besteht darin, die E-Mail, die Logwatch täglich generiert, in eine Textdatei zu kopieren , die ich in ein Skript einspeise , das dann iptables neu erstellt. Es ist hackig, zeitaufwändig und manuell und ich hätte gerne einen besseren Weg.
(Beachten Sie, dass ich nicht gefragt habe, was der "beste" Weg ist, um das Problem zu lösen, da es keinen "besten" Weg gibt, etwas zu tun.)
Ein einfacher und in der Praxis wirksamer Schutz vor scanbasierten Angriffen besteht darin, nicht den Standardport zu verwenden. 443 (der https-Port) setzt Sie verschiedenen Brute-Force-Angriffen aus, die Ihre schwachen Passwörter nicht knacken, und funktioniert möglicherweise über mehr Firewalls als der Standardport (22).
Die meisten Methoden, um ssh-Brute-Force-Angriffe zu verhindern, sind großartige Möglichkeiten für Self-DoS (Ups, ich habe die Konfiguration verkorkst! Ups, ich habe ein paar schnelle Rsync-Vorgänge durchgeführt und bin jetzt für den Tag gesperrt!) Oder Assisted-Self-DoS (Ups, Assisted-Self-DoS) , der Angreifer kommt von / hat einen Computer im selben Subnetz wie ich (dynamischer IP-Bereich, Hochschulnetzwerk ...) unterwandert und ich werde auch gebannt!).
Wenn Sie sich nur von wenigen Orten aus anmelden, können Sie nur Quell-IP-Adressen auf die Whitelist setzen. Das ist natürlich nicht gut, wenn Sie von Ihrem Laptop oder Handy unterwegs ssh wollen.
Ein ssh-Daemon, der nur IPv6-Verbindungen überwacht, sollte Sie noch einige Jahre vor Scans schützen. Bei vielen Firewalls können Sie IPv6 jedoch nicht auf vernünftige Weise transportieren.
Eine andere Methode, die Sie nicht erwähnen, ist das Portklopfen . Es leidet nicht unter Self-DoS-Problemen (mit Ausnahme von Fehlkonfigurationen), ist jedoch nicht in der Lage, Firewalls zu durchqueren, und kann den Verbindungsaufbau um einige Sekunden verzögern.
Wenn Sie gute Kennwörter haben oder ohne Kennwortauthentifizierung auskommen, deaktivieren Sie die Kennwortauthentifizierung. (Schlüssel und Einmalkennwörter sind für die meisten Anwendungsfälle ausreichend: Wenn Sie dem Client-Computer nicht genug vertrauen, um einen SSH-Schlüssel zu speichern, können Sie auch nicht davon ausgehen, dass kein Keylogger vorhanden ist.) Dann kosten Brute-Force-Angriffe Sie ein bisschen CPU und Bandbreite, setzen Sie jedoch keinem Eingriff aus (solange Sie überprüft haben, dass keiner Ihrer Schlüssel von einem Debian OpenSSL mit niedriger Entropie stammt) ).
Alles in allem ist zu beachten, dass das Ändern des Anschlusses Ihre Exposition nicht wesentlich verringert. Sie werden weniger scannen müssen , aber alles, was Sie abschneiden können, ist die niedrig hängende Frucht, die versucht, alte Schwachstellen und schwache Passwörter auszunutzen. Solange Sie Ihren Daemon auf dem neuesten Stand halten und entweder angemessene Kennwörter oder angemessene Grenzwerte für die Versuchsrate durchsetzen, ist das Wechseln des Ports eher eine Haftung als eine Sicherheitsmaßnahme.
quelle
.ssh/config
. Lockout ist ein Problem, wenn die Firewall Sie nicht durchlässt, und die einfachste Lösung besteht darin, sich an Port 22 zu halten und auch auf 443 zu lauschen. Ich stimme zu, dass das Wechseln des Ports die Sicherheit nicht wirklich verbessert. Vielleicht sollte ich das klarer machen . Ich weiß nicht, warum Sie es für unmöglich halten, dass ein SSH-Daemon die Kennwortauthentifizierung nicht unterstützt: Es geht nur darum,sshd_config
mit OpenSSH, der am häufigsten verwendeten Implementierung , eine Zeile hinzuzufügen .