Come elencare gli accessi SSH non riusciti su Linux


Su questa pagina

  1. Installazione di OpenSSH
  2. Come trovare tutti i tentativi di accesso SSH falliti
  3. Conclusione

\Non c'è bianco o nero, ci sono solo sfumature di grigio. Non possiamo dire se è buono o cattivo.\

E a volte dobbiamo scavare nelle sfumature di grigio e cercare i problemi prima che si verifichino. Uno di questi controlli potrebbe essere una ricerca di tentativi di accesso SSH non riusciti. Fortunatamente, Ubuntu viene fornito con una soluzione abbastanza semplice ma abbastanza potente da rilevare la maggior parte dei casi in cui qualcuno lascia che si verifichino password deboli e attacchi di forza bruta.

Ogni tentativo di accesso al server SSH viene registrato in un file denominato auth.log situato in /var/log/auth.log dal demone rsyslog.

Gli amministratori possono esaminare i registri per vedere se ci sono strani traffico in entrata. Un file di registro contiene molte informazioni in testo semplice ma non è facile leggere tutto l'output. Dobbiamo imparare come usare grep per cercare nel file di log e in questo esempio ci concentreremo sui tentativi falliti.

Installazione di OpenSSH

OpenSSH è un servizio che fornisce un accesso remoto sicuro ai sistemi sotto forma di un protocollo a livello di applicazione, include anche il programma della riga di comando scp. Accedi come utente root o passa a un utente con privilegi sudo, quindi utilizza il comando seguente per installare OpenSSH:

sudo apt-get update
sudo apt-get install openssh-server -y

Questo comando dovrebbe installare OpenSSH e le sue dipendenze. Dovresti vedere che ci sono anche pacchetti aggiuntivi installati perché OpenSSH ne richiede molti per funzionare correttamente.

Dopo l'installazione, puoi abilitare ssh digitando il seguente comando nella finestra del terminale:

sudo systemctl enable ssh

Dovresti vedere un output simile all'immagine qui sotto nella finestra del terminale se il comando ha avuto successo:

I seguenti comandi possono essere utilizzati per arrestare SSH su macchine Ubuntu nel caso in cui si desideri disabilitarlo:

sudo systemctl stop ssh

Può essere riavviato eseguendo:

sudo systemctl start ssh

Per verificare se il server SSH è in esecuzione, puoi utilizzare il comando seguente:

sudo systemctl status ssh

Dovresti vedere un output simile nel tuo terminale:

Nello screenshot sopra, puoi vedere che il server SSH è già in esecuzione e abilitato, il che significa che verrà eseguito all'avvio.

Come trovare tutti i tentativi di accesso SSH non riusciti

Un tentativo di accesso fallito potrebbe essere causato da una serie di motivi e non solo da un exploit di accesso automatico. Un tentativo di accesso non riuscito può verificarsi quando:

  • Un utente potrebbe digitare in modo errato la sua password.
  • Tentativo di utilizzare una password errata per accedere.
  • Il server è sottoposto a un attacco di forza bruta e gli hacker stanno cercando di indovinare la password utilizzando script automatici.

Il modo più semplice per elencare tutti i tentativi di accesso SSH non riusciti è utilizzare il seguente comando:

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

Dovresti vedere un output simile nel tuo terminale:

I seguenti comandi possono essere utilizzati per visualizzare gli accessi SSH non riusciti in CentOS o RHEL in una versione leggermente modificata del comando precedente:

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

In alternativa, possiamo visualizzare i log utilizzando il demone Systemd con il comando journalctl:

journalctl _SYSTEMD_UNIT=ssh.service | egrep "Failed|Failure"

Per visualizzare un elenco di tutti gli indirizzi IP responsabili dei tentativi di accesso SSH non riusciti, con accanto il numero di tentativi, è possibile utilizzare questo comando:

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

È inevitabile che di tanto in tanto si verifichi un tentativo di accesso fallito. Tuttavia, rimane fondamentale identificare gli accessi non riusciti al tuo server. È importante identificare gli indirizzi IP che colpiscono frequentemente il tuo server SSH e intraprendere le azioni necessarie.

Conclusione

In questa guida, abbiamo spiegato come trovare tentativi di accesso SSH falliti su una macchina Linux. Abbiamo anche appreso un approccio diverso che prevede l'utilizzo del comando journalctl. Ci auguriamo che questo articolo ti sia stato utile. Sentiti libero di fornire il tuo feedback o qualsiasi domanda tu possa avere nella sezione commenti.