Ricerca nel sito web

Come trovare tutti i tentativi di accesso SSH falliti in Linux


Ogni tentativo di accesso al server SSH viene tracciato e registrato in un file di registro dal demone rsyslog in Linux. Il meccanismo più semplice per elencare tutti i tentativi di accesso SSH falliti in Linux è una combinazione di visualizzazione e filtraggio dei file di registro con l'aiuto del comando cat o del comando grep.

Per visualizzare un elenco degli accessi SSH non riusciti in Linux, eseguire alcuni dei comandi presentati in questa guida. Assicurati che questi comandi vengano eseguiti con i privilegi di root.

Il comando più semplice per elencare tutti gli accessi SSH non riusciti è quello mostrato di seguito.

grep "Failed password" /var/log/auth.log

Lo stesso risultato può essere ottenuto anche emettendo il comando cat.

cat /var/log/auth.log | grep "Failed password"

Per visualizzare informazioni aggiuntive sugli accessi SSH non riusciti, emettere il comando come mostrato nell'esempio seguente.

egrep "Failed|Failure" /var/log/auth.log

In CentOS o RHEL, le sessioni SSH non riuscite vengono registrate nel file /var/log/secure. Emettere il comando precedente su questo file di registro per identificare gli accessi SSH non riusciti.

egrep "Failed|Failure" /var/log/secure

Una versione leggermente modificata del comando precedente per visualizzare gli accessi SSH non riusciti in CentOS o RHEL è la seguente.

grep "Failed" /var/log/secure
grep "authentication failure" /var/log/secure

Per visualizzare un elenco di tutti gli indirizzi IP che hanno tentato e non sono riusciti ad accedere al server SSH insieme al numero di tentativi falliti di ciascun indirizzo IP, eseguire il comando seguente.

grep "Failed password" /var/log/auth.log | awk ‘{print $11}’ | uniq -c | sort -nr

Nelle distribuzioni Linux più recenti è possibile interrogare il file di registro di runtime mantenuto dal demone Systemd tramite il comando journalctl. Per visualizzare tutti i tentativi di accesso SSH falliti è necessario reindirizzare il risultato tramite il filtro grep, come illustrato negli esempi di comando seguenti.

journalctl _SYSTEMD_UNIT=ssh.service | egrep "Failed|Failure"
journalctl _SYSTEMD_UNIT=sshd.service | egrep "Failed|Failure"  #In RHEL, CentOS 

In CentOS o RHEL, sostituisci l'unità daemon SSH con sshd.service, come mostrato negli esempi di comando seguenti.

journalctl _SYSTEMD_UNIT=sshd.service | grep "failure"
journalctl _SYSTEMD_UNIT=sshd.service | grep "Failed"

Dopo aver identificato gli indirizzi IP che colpiscono frequentemente il tuo server SSH per accedere al sistema con account utente sospetti o account utente non validi, dovresti aggiornare le regole del firewall di sistema per bloccare gli indirizzi IP dei tentativi SSH falliti o utilizzare un servizio specializzato software, come fail2ban, per gestire questi attacchi.