Welches Tool oder welche Technik verwenden Sie, um Brute-Force-Angriffe auf Ihren SSH-Port zu verhindern? In meinen Sicherheitsprotokollen habe ich festgestellt, dass ich Millionen von Anmeldeversuchen als verschiedene Benutzer über ssh habe.
Dies ist auf einer FreeBSD-Box, aber ich stelle mir vor, dass es überall anwendbar wäre.
security
ssh
brute-force-attacks
trauern
quelle
quelle
TARPIT
TCP- Verkehr an das Ziel sendet , wenn Sie sich böse fühlen (von xtables-addons).Eine kleine Sache, die Sie tun können, ist, etwas wie DenyHosts zu verwenden:
http://denyhosts.sourceforge.net/
Es verwendet die integrierte Funktion hosts.allow / hosts.deny, um SSH-Missbraucher auszublenden.
quelle
quelle
Eine der einfachsten Möglichkeiten, diese Angriffe zu vermeiden, besteht darin, den Port zu ändern, auf dem sshd lauscht
quelle
Wie Chris betont, sollten Sie anstelle von Passwörtern Verschlüsselungsschlüssel verwenden.
Fügen Sie dazu hinzu:
Wie viele Personen oder Standorte (mit öffentlichen IP-Adressen) benötigen Sie wirklich, um auf Ihre öffentlichen SSH-Verbindungen zuzugreifen?
Abhängig von der Anzahl der von Ihnen verwalteten öffentlichen SSH-Hosts und der Frage, ob Sie die allgemeinen Verbindungskriterien eingrenzen können, ist es möglicherweise einfacher, die Konfiguration zu verwalten, um den Zugriff auf einige externe Hosts zu beschränken.
Wenn dies für Sie funktioniert, kann dies den Administrationsaufwand erheblich vereinfachen.
quelle
Zusätzlich zu den anderen guten Vorschlägen ist es sehr einfach, eingehende Verbindungen auf eine bestimmte Rate zu beschränken. Beschränkung auf 3 Verbindungen pro Minute pro IP:
quelle
Verwenden Sie die Option "AllowUsers" in sshd_config, um sicherzustellen, dass sich nur wenige Benutzer anmelden können. Alle anderen werden abgelehnt, auch wenn Benutzername und Passwort korrekt sind.
Sie können Benutzer sogar auf Anmeldungen von einem bestimmten Host beschränken.
z.B,
Dies reduziert den Suchraum und vermeidet, dass alte Benutzer versehentlich herumliegen oder aktiviert werden (obwohl diese natürlich sowieso deaktiviert werden sollten, ist dies eine einfache Möglichkeit, um zu verhindern, dass sie für einen SSH-basierten Eintrag verwendet werden).
Dies stoppt die Brute-Force-Angriffe nicht vollständig, verringert jedoch das Risiko.
quelle
Verwenden Sie so etwas mit PF:
Tabelle <ssh-brute> persist
block im Schnellprotokoll vom Label ssh_brute
übergeben an $ ext_if proto tcp an ($ ext_if) Port ssh modulate state \
(max-src-conn-rate 3/10, overload flush global)
quelle
Port-Knocking ist ein ziemlich solider Weg, um solche Dinge fernzuhalten. Etwas fummelig, manchmal nervig, aber es macht definitiv das Problem weg.
quelle
Der Kontext ist wichtig, aber ich würde Folgendes empfehlen:
quelle
Neben dem Vorschlag von Sherbang, die Geschwindigkeit zu begrenzen , ist die Länge der Verzögerung wichtig. Durch Erhöhen der Verzögerung zwischen drei Anmeldeversuchen von 2 Minuten auf 20 Minuten sank die Anzahl der verschiedenen IP-Adressen, die mehr als drei Anmeldeversuche unternommen haben, im Vergleich zu zwei Wochen auf einem meiner Computer von 44 auf drei Keine dieser drei Adressen versuchte es länger als 11 Stunden.
Sehr anekdotisch, aber auth.log wurde für mich viel lesbarer ...
quelle
Es interessiert mich einfach nicht. Lassen Sie sie am Hafen wegschnallen, sie werden keinen Schlüssel mit Gewalt erzwingen.
quelle
Installieren Sie OSSEC. Es wird nicht nur nach wiederholten Anmeldungen gesucht, sondern auch ein temporärer Block mit iptables für die betreffende IP-Adresse erstellt. Am Ende erhalten Sie einen Bericht mit den Details. es protokolliert alles, was nett ist. Jemand hat einmal versucht, sich mit über 8000 Anmeldenamen anzumelden. Ich habe die Logs geparst und eine nette Benutzerliste rausgeholt;)
quelle