Cum să găsiți toate încercările eșuate de conectare SSH în Linux


Fiecare încercare de conectare la serverul SSH este urmărită și înregistrată într-un fișier jurnal de către comanda grep.

Pentru a afișa o listă a conectărilor SSH eșuate în Linux, lansați unele dintre comenzile prezentate în acest ghid. Asigurați-vă că aceste comenzi sunt executate cu privilegii root.

Cea mai simplă comandă pentru a enumera toate conectările SSH eșuate este cea afișată mai jos.

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

Același rezultat poate fi obținut și prin lansarea comenzii cat.

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

Pentru a afișa informații suplimentare despre login-urile SSH eșuate, lansați comanda așa cum se arată în exemplul de mai jos.

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

În CentOS sau RHEL, sesiunile SSH eșuate sunt înregistrate în fișierul /var/log/secure. Emiteți comanda de mai sus împotriva acestui fișier jurnal pentru a identifica conectările SSH eșuate.

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

O versiune ușor modificată a comenzii de mai sus pentru a afișa conectări SSH eșuate în CentOS sau RHEL este următoarea.

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

Pentru a afișa o listă cu toate adresele IP care au încercat și nu au reușit să se conecteze la serverul SSH împreună cu numărul de încercări eșuate ale fiecărei adrese IP, lansați comanda de mai jos.

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

Pe distribuțiile Linux mai noi, puteți interoga fișierul jurnal de rulare menținut de demonul Systemd prin comanda journalctl. Pentru a afișa toate încercările eșuate de conectare SSH, ar trebui să direcționați rezultatul prin filtrul grep, așa cum este ilustrat în exemplele de comandă de mai jos.

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

În CentOS sau RHEL, înlocuiți unitatea demon SSH cu sshd.service, așa cum se arată în exemplele de comandă de mai jos.

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

După ce ați identificat adresele IP care lovesc frecvent serverul dvs. SSH pentru a vă conecta la sistem cu conturi de utilizator suspecte sau conturi de utilizator invalide, ar trebui să actualizați regulile firewall-ului sistemului la fail2ban pentru a gestiona aceste atacuri.