Vyhledávání na webu

Jak najít všechny neúspěšné pokusy o přihlášení k SSH v Linuxu


Každý pokus o přihlášení k SSH serveru je sledován a zaznamenán do log souboru démonem rsyslog v Linuxu. Nejzákladnějším mechanismem pro výpis všech neúspěšných pokusů o přihlášení SSH v Linuxu je kombinace zobrazení a filtrování souborů protokolu pomocí příkazu cat nebo příkazu grep.

Chcete-li zobrazit seznam neúspěšných přihlášení SSH v systému Linux, zadejte některé z příkazů uvedených v této příručce. Ujistěte se, že tyto příkazy jsou prováděny s právy root.

Nejjednodušší příkaz pro výpis všech neúspěšných přihlášení SSH je ten, který je uveden níže.

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

Stejného výsledku lze dosáhnout také vydáním příkazu cat.

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

Chcete-li zobrazit další informace o neúspěšných přihlášeních SSH, zadejte příkaz, jak je uvedeno v příkladu níže.

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

V systému CentOS nebo RHEL se neúspěšné relace SSH zaznamenávají do souboru /var/log/secure. Chcete-li identifikovat neúspěšná přihlášení SSH, zadejte výše uvedený příkaz proti tomuto souboru protokolu.

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

Mírně upravená verze výše uvedeného příkazu pro zobrazení neúspěšných přihlášení SSH v CentOS nebo RHEL je následující.

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

Chcete-li zobrazit seznam všech IP adres, které se pokusily a nepodařilo se přihlásit k serveru SSH, spolu s počtem neúspěšných pokusů pro každou IP adresu, zadejte níže uvedený příkaz.

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

V novějších distribucích Linuxu se můžete dotazovat na soubor protokolu runtime spravovaný démonem Systemd pomocí příkazu journalctl. Chcete-li zobrazit všechny neúspěšné pokusy o přihlášení k SSH, měli byste výsledek zpracovat pomocí filtru grep, jak je znázorněno v níže uvedených příkladech příkazů.

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

V CentOS nebo RHEL nahraďte jednotku démona SSH za sshd.service, jak je znázorněno v níže uvedených příkladech příkazů.

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

Poté, co identifikujete adresy IP, které často zasahují váš server SSH, abyste se mohli přihlásit do systému pomocí podezřelých uživatelských účtů nebo neplatných uživatelských účtů, měli byste aktualizovat pravidla brány firewall systému tak, aby blokovaly IP adresy neúspěšných pokusů o SSH, nebo použijte specializované software, jako je fail2ban ke správě těchto útoků.