Wie kann ich fehlgeschlagene SSH-Anmeldeversuche nachverfolgen?

134

Ich würde gerne sehen, ob jemand versucht hat, sich mit Brute-Force über SSH bei meinem Ubuntu 12.04-Server anzumelden. Wie kann ich sehen, ob solche Aktivitäten stattgefunden haben?

Ivan
quelle

Antworten:

150

Alle Anmeldeversuche werden protokolliert /var/log/auth.log.

1. Filtern Sie nach interaktiven Brute-Force-SSH-Anmeldungen

Öffnen Sie ein Terminal und geben Sie Folgendes ein. Wenn es länger als 1 Seite ist, können Sie nach oben und unten scrollen. Typ qzum Beenden:

grep sshd.\*Failed /var/log/auth.log | less
  • Hier ist ein echtes Beispiel von einem meiner VPS:

    18. August 11:00:57 izxvps sshd [5657]: Passwort für root von 95.58.255.62 Port 38980 ssh2 fehlgeschlagen
    18. August 23:08:26 izxvps sshd [5768]: Passwort für root von 91.205.189.15 Port 38156 ssh2 fehlgeschlagen
    18. August 23:08:30 izxvps sshd [5770]: Passwort für niemanden von Port 91.205.189.15 38556 ssh2 fehlgeschlagen
    18. August 23:08:34 izxvps sshd [5772]: Passwort für ungültigen Benutzer-Stern von 91.205.189.15 Port 38864 ssh2 fehlgeschlagen
    18. August 23:08:38 izxvps sshd [5774]: Passwort für ungültigen Benutzer sjobeck von 91.205.189.15 Port 39157 ssh2 fehlgeschlagen
    18. August 23:08:42 izxvps sshd [5776]: Passwort für root von 91.205.189.15 Port 39467 ssh2 fehlgeschlagen
    

2. Suchen Sie nach fehlgeschlagenen Verbindungen (dh es wurde kein Anmeldeversuch unternommen, möglicherweise handelt es sich um einen Port-Scanner usw.):

Verwenden Sie diesen Befehl:

grep sshd.*Did /var/log/auth.log | less
  • Beispiel:

    5. August 22:19:10 izxvps sshd [7748]: Es wurde keine Identifikationszeichenfolge von 70.91.222.121 empfangen
    10. August 19:39:49 izxvps sshd [1919]: Die ID-Zeichenfolge vom 50.57.168.154 wurde nicht empfangen
    13. August 23:08:04 izxvps sshd [3562]: Es wurde keine Identifikationszeichenfolge von 87.216.241.19 empfangen
    17. August 15:49:07 izxvps sshd [5350]: Es wurde keine Identifikationszeichenfolge von 211.22.67.238 empfangen
    19. August, 06:28:43 Uhr izxvps sshd [5838]: Die ID-Zeichenfolge von 59.151.37.10 wurde nicht empfangen
    

So reduzieren Sie fehlgeschlagene / Brute-Force-Anmeldeversuche

  • Versuchen Sie, Ihr SSH von der Standardeinstellung 22 auf eine nicht standardmäßige Schnittstelle umzustellen
  • Oder installieren Sie ein Auto-Ban-Skript wie fail2banInstallieren Sie fail2ban .
ish
quelle
4
Wie viel Sicherheit erhalten Sie beim Wechseln des SSH-Ports (können Sie nicht trotzdem gescannt werden, wie Sie es erwähnen)?
Nick T
8
@NickT Es stellt sich heraus, dass dies ausreicht, um Anmeldeversuche erheblich zu reduzieren. Wo ich in einer Woche / am Tag Tausende von Versuchen hatte, hatte ich im letzten Monat noch keine, einfach indem ich den Hafen wechselte.
AntoineG
2
Ich denke, dass es auch hilfreich sein kann, sich nicht mit einem Passwort anzumelden.
Luc M
2
Ich weiß, das ist Ubuntu, wollte nur erwähnen, dass auf einigen Systemen wie Centos der Dateipfad ist/var/log/secure
lfender6445
Einige Systeme greifen mitsystemctl -eu sshd
alecdwm am
72

Ich würde argumentieren, dass das Überwachen von Protokollen eine schwache Lösung ist, insbesondere wenn Sie ein schwaches Kennwort für ein Konto haben. Brute Versuche versuchen oft mindestens Hunderte von Schlüsseln pro Minute. Selbst wenn Sie einen Cron-Job haben, der Sie per E-Mail über brutale Versuche informiert, kann es Stunden dauern, bis Sie Ihren Server erreichen.

Wenn Sie einen öffentlich zugänglichen SSH-Server haben, benötigen Sie eine Lösung, die  lange vor dem Hacken eingesetzt wird.

Ich kann es nur empfehlen fail2ban. Ihr Wiki sagt, was es besser macht als ich.

Fail2Ban scannt Protokolldateien (z. B. /var/log/apache/error_log) und verbietet IP-Adressen, die böswillige Anzeichen aufweisen - zu viele Kennwortfehler, Aufsuchen nach Exploits usw. Im Allgemeinen wird Fail2Ban dann zum Aktualisieren von Firewall-Regeln verwendet, um die IP-Adressen für einen bestimmten Zeitraum abzulehnen, obwohl dies der Fall ist Es kann auch eine beliebige andere Aktion (z. B. Senden einer E-Mail oder Auswerfen der CD-ROM-Schublade) konfiguriert werden. Fail2Ban enthält standardmäßig Filter für verschiedene Dienste (Apache, Curier, SSH usw.).

Sich davor zu schützen ist so einfach wie sudo apt-get install fail2ban.

Sobald jemand drei Fehlversuche hat, wird seine IP standardmäßig für fünf Minuten gesperrt. Diese Art von Verzögerung stoppt im Wesentlichen einen SSH-Brute-Force-Versuch, aber es wird Ihren Tag nicht ruinieren, wenn Sie Ihr Passwort vergessen (aber Sie sollten trotzdem Schlüssel verwenden!)

Oli
quelle
6
Warum heißt es nicht verbieten?
Pacerier
9
@ Pacerier Nun, mit einigen Analogien führt ein Login-Fehler zu (2) einem Verbot.
Sebi
2
Bwahaha, du hast meinen Tag bei Pacerier gemacht. Ich habe es nie als wörtliches "Versagen zu verbieten" betrachtet.
Adelriosantiago
1
Ich denke, dies sollte bearbeitet werden, um "besonders" aus dem ersten Satz zu entfernen. Es ist nur ein Problem, wenn Sie ein schwaches Passwort haben. Sichere Passwörter können unter keinen Umständen brutal erzwungen werden, und der einzige Grund, warum Menschen davon abgehalten werden, dies zu versuchen, besteht darin, die Serverlast zu verringern.
Abhi Beckert
Absolute Zustimmung. Jedenfalls wird es ok sein, eine hohe Serverlast zu verhindern. Ich habe Versuche mit Millisekunden-Raten gesehen
Diego Andrés Díaz Espinoza