Kako pronaći sve neuspjele pokušaje SSH prijave u Linuxu


Svaki pokušaj prijave na SSH poslužitelj prati i bilježi u log datoteku demon rsyslog u Linuxu. Najosnovniji mehanizam za popis svih neuspjelih pokušaja SSH prijave u Linuxu je kombinacija prikaza i filtriranja datoteka dnevnika uz pomoć naredbe cat ili grep.

Kako biste prikazali popis neuspjelih SSH prijava u Linuxu, izdajte neke od naredbi predstavljenih u ovom vodiču. Uvjerite se da se te naredbe izvode s root privilegijama.

Najjednostavnija naredba za popis svih neuspjelih SSH prijava je ona prikazana u nastavku.

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

Isti se rezultat može postići izdavanjem naredbe cat.

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

Kako biste prikazali dodatne informacije o neuspješnim prijavama na SSH, izdajte naredbu kao što je prikazano u donjem primjeru.

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

U CentOS ili RHEL, neuspjele SSH sesije bilježe se u datoteci /var/log/secure. Izdajte gornju naredbu za ovu datoteku dnevnika da identificirate neuspjele SSH prijave.

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

Malo modificirana verzija gornje naredbe za prikaz neuspjelih SSH prijava u CentOS ili RHEL je sljedeća.

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

Za prikaz popisa svih IP adresa koje su se pokušale i nisu uspjele prijaviti na SSH poslužitelj zajedno s brojem neuspjelih pokušaja svake IP adrese, izdajte naredbu u nastavku.

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

Na novijim distribucijama Linuxa možete postaviti upit o datoteci dnevnika izvođenja koju održava Systemd daemon putem naredbe journalctl. Kako biste prikazali sve neuspjele pokušaje prijave na SSH, trebali biste poslati rezultat preko grep filtra, kao što je prikazano u primjerima naredbi u nastavku.

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

U CentOS ili RHEL zamijenite SSH daemon jedinicu s sshd.service, kao što je prikazano u primjerima naredbi u nastavku.

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

Nakon što identificirate IP adrese koje često pogađaju vaš SSH poslužitelj kako biste se prijavili u sustav sa sumnjivim korisničkim računima ili nevažećim korisničkim računima, trebali biste ažurirati pravila vatrozida svog sustava kako biste blokirali IP adrese neuspjelih pokušaja SSH ili koristiti specijalizirani softver, kao što je fail2ban za upravljanje tim napadima.