Com trobar tots els intents fallits d'inici de sessió SSH a Linux


Cada intent d'iniciar sessió al servidor SSH es fa un seguiment i es registra en un fitxer de registre mitjançant l'ordre grep.

Per mostrar una llista dels inicis de sessió SSH fallits a Linux, emet algunes de les ordres que es presenten en aquesta guia. Assegureu-vos que aquestes ordres s'executen amb privilegis de root.

L'ordre més senzilla per enumerar tots els inicis de sessió SSH fallits és la que es mostra a continuació.

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

El mateix resultat també es pot aconseguir emetent l'ordre cat.

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

Per mostrar informació addicional sobre els inicis de sessió SSH fallits, emet l'ordre tal com es mostra a l'exemple següent.

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

A CentOS o RHEL, les sessions SSH fallides es registren al fitxer /var/log/secure. Emet l'ordre anterior contra aquest fitxer de registre per identificar els inicis de sessió SSH fallits.

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

Una versió lleugerament modificada de l'ordre anterior per mostrar els inicis de sessió SSH fallits a CentOS o RHEL és la següent.

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

Per mostrar una llista de totes les adreces IP que han intentat i no han pogut iniciar sessió al servidor SSH juntament amb el nombre d'intents fallits de cada adreça IP, emet l'ordre següent.

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

A les distribucions de Linux més noves, podeu consultar el fitxer de registre en temps d'execució que manté el dimoni Systemd mitjançant l'ordre journalctl. Per mostrar tots els intents fallits d'inici de sessió SSH, hauríeu de canalitzar el resultat mitjançant el filtre grep, tal com es mostra als exemples d'ordres següents.

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

A CentOS o RHEL, substituïu la unitat del dimoni SSH per sshd.service, tal com es mostra als exemples d'ordres següents.

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

Després d'haver identificat les adreces IP que afecten amb freqüència al vostre servidor SSH per iniciar sessió al sistema amb comptes d'usuari sospitosos o comptes d'usuari no vàlids, hauríeu d'actualitzar les regles del tallafoc del sistema a fail2ban per gestionar aquests atacs.