Das Brute-Force-Passwort auf SSH-Server wird nicht funktionieren?

2899
RamyenHead

Ich verwende einen SSH-Server auf meinem PC. Das Protokoll hatte viele Leute (oder Bots?), Die wiederholt versucht haben, sich bei meinem Server anzumelden (d. H. Bevor ich den Standardport geändert habe), was mich ein wenig verrückt machte. Ich machte mir Sorgen um die Angriffe auf das Wörterbuch oder das Raten von Passwörtern.

Wenn Sie jedoch ein falsches Kennwort (oder einen falschen Benutzernamen) eingeben, wartet der Server etwa 2 Sekunden, bevor er erneut nach dem Kennwort fragt. Ein Angreifer kann also alle 2 Sekunden ein Kennwort versuchen. Ich kam daher zu dem Schluss, dass diese Angriffe keine so große Bedrohung darstellen (solange Ihr Passwort nicht aus Wörterbuchwörtern besteht.) Bin ich richtig?

2
Sollte dies auf Serverfault.com verschieben ConcernedOfTunbridgeWells vor 15 Jahren 0
Ich bin nicht sicher, aber ich glaube, dass die Verzögerung von 2 Sekunden nur eine Verbindung ist. Wenn Sie also auf einem einzigen Computer tausend Steckdosen öffnen, könnten Sie immer noch 1000 Versuche pro 2 Sekunden machen, anstatt nur 1. vor 13 Jahren 0

4 Antworten auf die Frage

12
c089

SSH-Brute-Force für root-Passwörter, die nicht wirklich einfach sind (z. B. "Gott";)), wird wahrscheinlich niemals erfolgreich sein. Es gibt jedoch so viele Leute, die es versuchen. Ich denke, es gibt genug Leute, die ein schwaches Passwort verwenden, so dass es für Angreifer sinnvoll ist, es zu versuchen.

Ja, wenn Sie sichere Kennwörter verwenden, sind Sie wahrscheinlich sicher. Es gibt jedoch einige Möglichkeiten, um Ihre Sicherheit noch weiter zu verbessern (und es möglich zu machen, dass Sie täglich über Anmeldeversuche von 50.000 in Ihren Protokolldateien lachen):

  • Verwenden Sie fail2ban, um Brute-Force-Angreifer automatisch zu blockieren (es erstellt iptables-Regeln basierend auf Ihren Protokolldateien, denke ich).
  • Deaktivieren Sie das root-Konto vollständig mit "passwd -l" und verwenden Sie stattdessen sudo (stellen Sie sicher, dass sudo aktiviert und getestet ist, bevor Sie diesen Befehl ausführen!)
  • und noch besser: Deaktivieren Sie die Kennwortanmeldungen über SSH in sshd_config (PasswordAuthentication no) und verwenden Sie stattdessen Schlüsseldateien.
+1 für Schlüsseldateien. Auf jeden Fall schöner als Passwörter. Joey vor 15 Jahren 1
Wenn Sie den Root-Login nicht vollständig deaktivieren, deaktivieren Sie zumindest den SSH-Zugriff von Root. Wenn Sie nicht nur den schlüsselbasierten Zugriff verwenden, stellen Sie sicher, dass * alle * Kennwörter so komplex sind, dass sie mit Brute-Force-Methoden nicht erraten werden können. David Spillett vor 15 Jahren 5
4
timday

Ich installiere DenyHosts auf Computern mit Internet-SSH-Servern. Es fügt automatisch die Quell-IPs von wiederholt fehlgeschlagenen Anmeldungen zu hosts.deny hinzu.

3
mark

Die Vorschläge in den anderen Antworten zum weiteren Schutz bei der Verwendung von SSH sind sehr sinnvoll.

In Bezug auf Ihre Frage sind Brute-Force-Angriffe eines einzelnen Benutzers jedoch wahrscheinlich nicht wirksam, außer bei gebräuchlichen Benutzernamen / Kennwort-Kombinationen oder Wörterbuchwörtern. Eine zufällige alphanumerische Kennung mit 9 Buchstaben wird voraussichtlich etwa 6 Millionen Jahre dauern.

Es ist jedoch auch möglich, mit einem großen, koordinierten Botnet anzugreifen, mit dem Sie die Auswirkungen einer Verzögerung von 2 Sekunden für jeden Benutzer minimieren können. Eine Million Bots (offensichtlich nicht genau wahrscheinlich) würden Ihre Crackzeit auf furchterregende 6,4 Jahre reduzieren

hoffentlich würden Sie die 500.000 Anfragen pro Sekunde irgendwann in den ersten Monaten bemerken ... nickf vor 15 Jahren 4
2
nik

Mit BlockSSHd können Sie noch ein bisschen mehr tun .

BlockSSHD ist ein Perl-Skript, das auf BruteForceBlocker v1.2.3 basiert. Es fügt dynamisch IPTables-Regeln für Linux und pf Firewall-Regeln für BSD hinzu, die SSH-Brute-Force-Angriffe blockieren. Es kann auch ProFTPd-Anmeldefehler erkennen.

Es ist recht ordentlich und flexibel.

Das BlockSSHD-Skript kann die IP-Adresse nach einem bestimmten Zeitraum aufheben. Dies wird in der Konfigurationsdatei blocksshd.conf mit der Option "Unblock" und mit der mit der Option "unblock_timeout" festgelegten Periode aktiviert.

Das BlockSSHD-Skript kann auch die IP-Adressen protokollieren, die für eine Datei blockiert sind, und diese blockierten IP-Adressen erneut zuweisen, wenn das Script erneut gestartet wird. Auf diese Weise können Sie zuvor gesperrte IP-Adressen nach einem Neustart oder nach dem Löschen Ihrer Firewall-Regeln wiederherstellen.

Eine aktuelle digg- 6 Möglichkeiten, um Ihre SSH-Anmeldungen sicherer zu machen .

  1. Wählen Sie sichere Kennwörter
    • Deaktivieren Sie das direkte Root-Login
    • Deaktivieren Sie kennwortbasierte Anmeldungen
    • Führen Sie SSH auf einem nicht standardmäßigen Port aus
    • Beständige Straftäter verbieten (der iptables-Weg)
    • Perl-basiertes BlockSSHd
    • Python-basiertes Fail2Ban
    • Rate begrenzen die Verbindungen ( wieder iptables )

Immer noch paranoid? Benutzer-Zwei-Faktor-Authentifizierung,
Sichern Sie Ihre SSH-Bereitstellung mit der WiKID-Zwei-Faktor-Authentifizierung