Come tenere traccia dei tentativi di accesso SSH non riusciti?


134

Mi piacerebbe vedere se qualcuno ha cercato di accedere con la forza bruta al mio server Ubuntu 12.04 su SSH. Come posso vedere se tali attività si sono svolte?

Risposte:


150

Tutti i tentativi di accesso sono registrati /var/log/auth.log.

1. Filtro per accessi SSH interattivi a forza bruta

Apri un terminale e digita quanto segue; se è più lungo di 1 pagina sarai in grado di scorrere su e giù; digitare qper uscire:

grep sshd.\*Failed /var/log/auth.log | less
  • Ecco un vero esempio da uno dei miei VPS:

    18 ago 11:00:57 izxvps sshd [5657]: password non riuscita per root dalla porta 95.58.255.62 38980 ssh2
    18 ago 23:08:26 izxvps sshd [5768]: Password non riuscita per root dalla porta 91.205.189.15 della porta 38156 ssh2
    18 ago 23:08:30 izxvps sshd [5770]: Password non riuscita per nessuno dalla porta 91.205.189.15 38556 ssh2
    18 ago 23:08:34 izxvps sshd [5772]: Password non riuscita per asterisco utente non valido dalla porta 91.205.189.15 38864 ssh2
    18 ago 23:08:38 izxvps sshd [5774]: Password non riuscita per utente non valido da 91.205.189.15 porta 39157 ssh2
    18 ago 23:08:42 izxvps sshd [5776]: Password non riuscita per root dalla porta 91.205.189.15 39467 ssh2
    

2. Cerca connessioni non riuscite (ovvero nessun tentativo di accesso, potrebbe essere uno scanner delle porte, ecc.):

Usa questo comando:

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

    5 ago 22:19:10 izxvps sshd [7748]: Non ho ricevuto la stringa di identificazione da 70.91.222.121
    10 ago 19:39:49 izxvps sshd [1919]: Non ho ricevuto la stringa di identificazione dal 50.57.168.154
    13 ago 23:08:04 izxvps sshd [3562]: Non ha ricevuto la stringa di identificazione da 87.216.241.19
    17 ago 15:49:07 izxvps sshd [5350]: non ha ricevuto la stringa di identificazione da 211.22.67.238
    19 ago 06:28:43 izxvps sshd [5838]: Non ho ricevuto la stringa di identificazione da 59.151.37.10
    

Come ridurre i tentativi di accesso falliti / forza bruta

  • Prova a passare il tuo SSH a una porta non standard dal 22 predefinito
  • O installa uno script di divieto automatico come fail2banInstalla fail2ban .

4
Quanta sicurezza ottieni nel cambiare la porta SSH (non possono semplicemente scansionarti come dici tu) e vale la pena quella minima hit di usabilità per utenti legittimi?
Nick T

8
@NickT risulta essere sufficiente per ridurre significativamente i tentativi di accesso. Dove avrei ricevuto migliaia di tentativi in ​​una settimana / giorno, finora non ne ho avuti per l'ultimo mese, semplicemente cambiando la porta.
AntoineG

2
Penso che impedire l'accesso con la password possa essere di aiuto.
Luc M

2
so che questo è Ubuntu, volevo solo menzionare che su alcuni sistemi come centos il percorso del file è/var/log/secure
lfender6445

Alcuni sistemi accedono al registro consystemctl -eu sshd
alecdwm il

72

Direi che il monitoraggio dei registri è una soluzione debole soprattutto se si dispone di una password debole su un account. I tentativi bruti spesso provano almeno centinaia di chiavi al minuto. Anche se hai un cron job impostato per inviarti email di tentativi bruti, potrebbero passare ore prima che arrivi al tuo server.

Se disponi di un server SSH rivolto al pubblico, hai bisogno di una soluzione che entri in azione  molto prima di poter essere violato.

Consiglio vivamente fail2ban. La loro wiki dice cosa fa meglio di me.

Fail2ban esegue la scansione dei file di registro (ad es. /var/log/apache/error_log) E vieta gli IP che mostrano segni dannosi: troppi errori di password, ricerca di exploit, ecc. Generalmente Fail2Ban quindi utilizzato per aggiornare le regole del firewall per rifiutare gli indirizzi IP per un determinato periodo di tempo, anche se potrebbero essere configurate anche altre azioni arbitrarie (ad es. invio di e-mail o espulsione di un vassoio CD-ROM). Fail2Ban è dotato di 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 suo IP riceve un divieto di cinque minuti. Questo tipo di ritardo essenzialmente interrompe un tentativo di forza bruta SSH ma non ti rovinerà la giornata se dimentichi la password (ma dovresti comunque usare le chiavi!)


6
Perché si chiama non riescono a vietare?
Pacerier,

9
@Pacerier Bene, con qualche analogia, l'accesso fallito porta a (2) un divieto.
Sebi,

2
Bwahaha mi hai reso felice @Pacerier Non l'ho mai pensato come un letterale "fallimento nel vietare".
adelriosantiago,

1
Penso che questo dovrebbe essere modificato per rimuovere "soprattutto" dalla prima frase. È solo un problema se hai una password debole. Le password complesse non possono essere forzate brutalmente in nessuna circostanza e l'unico motivo per impedire alle persone di provare è ridurre il carico del server.
Abhi Beckert,

Assolutamente d'accordo. Comunque andrà bene prevenire un carico elevato del server. Ho visto tentativi di tassi di millisecondi
Diego Andrés Díaz Espinoza,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.