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.