Mi piacerebbe vedere se qualcuno ha cercato di accedere da brute-force al mio server Ubuntu 12.04 su SSH. Come posso vedere se tali attività si sono svolte?
Mi piacerebbe vedere se qualcuno ha cercato di accedere da brute-force al mio server Ubuntu 12.04 su SSH. Come posso vedere se tali attività si sono svolte?
Tutti i tentativi di accesso sono registrati su /var/log/auth.log
.
Apri un terminale e digita il seguente; se è più lungo di 1 pagina sarai in grado di scorrere su e giù; digita q
per uscire:
grep sshd.\*Failed /var/log/auth.log | less
Ecco un esempio reale di uno dei miei VPS:
Aug 18 11:00:57 izxvps sshd[5657]: Failed password for root from 95.58.255.62 port 38980 ssh2 Aug 18 23:08:26 izxvps sshd[5768]: Failed password for root from 91.205.189.15 port 38156 ssh2 Aug 18 23:08:30 izxvps sshd[5770]: Failed password for nobody from 91.205.189.15 port 38556 ssh2 Aug 18 23:08:34 izxvps sshd[5772]: Failed password for invalid user asterisk from 91.205.189.15 port 38864 ssh2 Aug 18 23:08:38 izxvps sshd[5774]: Failed password for invalid user sjobeck from 91.205.189.15 port 39157 ssh2 Aug 18 23:08:42 izxvps sshd[5776]: Failed password for root from 91.205.189.15 port 39467 ssh2
Usa questo comando:
grep sshd.*Did /var/log/auth.log | less
Esempio:
Aug 5 22:19:10 izxvps sshd[7748]: Did not receive identification string from 70.91.222.121 Aug 10 19:39:49 izxvps sshd[1919]: Did not receive identification string from 50.57.168.154 Aug 13 23:08:04 izxvps sshd[3562]: Did not receive identification string from 87.216.241.19 Aug 17 15:49:07 izxvps sshd[5350]: Did not receive identification string from 211.22.67.238 Aug 19 06:28:43 izxvps sshd[5838]: Did not receive identification string from 59.151.37.10
Direi che i registri di monitoraggio sono una soluzione debole soprattutto se hai una password debole su un account. I tentativi brutali spesso provano almeno centinaia di chiavi al minuto. Anche se hai un cron job impostato per inviarti email di tentativi brutali, potrebbero essere passate ore prima di arrivare al tuo server.
Raccomando caldamente fail2ban
. La loro wiki dice quello che fa meglio di me.
Fail2ban esegue la scansione dei file di registro (ad esempio
/var/log/apache/error_log
) e blocca gli IP che mostrano i segni dannosi: troppi errori di password, ricerca di exploit, ecc. Generalmente Fail2Ban viene quindi utilizzato per aggiornare le regole del firewall per rifiutare gli indirizzi IP per uno specifico quantità di tempo, anche se qualsiasi altra azione arbitraria (ad esempio l'invio di un messaggio di posta elettronica o l'espulsione del vassoio del CD-ROM) potrebbe essere configurata. Fuori dalla scatola Fail2Ban viene fornito con filtri per vari servizi (apache, curier, ssh, ecc.)
Ottenere protezione da esso è semplice come sudo apt-get install fail2ban
.
Di default non appena qualcuno ha tre tentativi falliti, il loro IP ottiene un divieto di cinque minuti. Questo tipo di ritardo blocca di fatto un tentativo di forza bruta SSH ma non rovinerà la giornata se dimentichi la password (ma dovresti usare comunque i tasti!)