Hvordan finne alle mislykkede SSH-påloggingsforsøk i Linux


Hvert forsøk på å logge på SSH-serveren spores og registreres i en loggfil av rsyslog-demonen i Linux. Den mest grunnleggende mekanismen for å liste opp alle mislykkede SSH-påloggingsforsøk i Linux er en kombinasjon av visning og filtrering av loggfilene ved hjelp av cat-kommando eller grep-kommando.

For å vise en liste over mislykkede SSH-pålogginger i Linux, utsted noen av kommandoene som presenteres i denne veiledningen. Sørg for at disse kommandoene utføres med root-privilegier.

Den enkleste kommandoen for å liste opp alle mislykkede SSH-pålogginger er den som vises nedenfor.

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

Det samme resultatet kan også oppnås ved å gi kattekommandoen.

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

For å vise ekstra informasjon om de mislykkede SSH-påloggingene, utfør kommandoen som vist i eksemplet nedenfor.

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

I CentOS eller RHEL blir de mislykkede SSH-øktene registrert i /var/log/secure-filen. Utfør kommandoen ovenfor mot denne loggfilen for å identifisere mislykkede SSH-pålogginger.

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

En litt modifisert versjon av kommandoen ovenfor for å vise mislykkede SSH-pålogginger i CentOS eller RHEL er som følger.

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

For å vise en liste over alle IP-adresser som prøvde og ikke klarte å logge på SSH-serveren sammen med antall mislykkede forsøk på hver IP-adresse, utfør kommandoen nedenfor.

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

På nyere Linux-distribusjoner kan du spørre runtime-loggfilen vedlikeholdt av Systemd daemon via journalctl-kommandoen. For å vise alle mislykkede SSH-påloggingsforsøk bør du sende resultatet via grep-filteret, som illustrert i kommandoeksemplene nedenfor.

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

I CentOS eller RHEL, bytt ut SSH-demonenheten med sshd.service, som vist i kommandoeksemplene nedenfor.

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

Etter at du har identifisert IP-adressene som ofte treffer SSH-serveren din for å logge på systemet med mistenkelige brukerkontoer eller ugyldige brukerkontoer, bør du oppdatere systembrannmurreglene for å blokkere mislykkede SSH-forsøks IP-adresser eller bruke en spesialisert programvare, for eksempel fail2ban for å håndtere disse angrepene.