Wyszukiwanie w witrynie

Jak znaleźć wszystkie nieudane próby logowania SSH w systemie Linux


Każda próba zalogowania się do serwera SSH jest śledzona i zapisywana w pliku dziennika przez demona rsyslog w systemie Linux. Najbardziej podstawowym mechanizmem wyświetlającym listę wszystkich nieudanych prób logowania SSH w systemie Linux jest połączenie wyświetlania i filtrowania plików dziennika za pomocą polecenia cat lub polecenia grep.

Aby wyświetlić listę nieudanych logowań SSH w systemie Linux, wydaj niektóre z poleceń przedstawionych w tym przewodniku. Upewnij się, że te polecenia są wykonywane z uprawnieniami roota.

Najprostszym poleceniem wyświetlającym listę wszystkich nieudanych logowań SSH jest to pokazane poniżej.

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

Ten sam rezultat można również osiągnąć wydając polecenie cat.

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

Aby wyświetlić dodatkową informację o nieudanych logowaniach SSH należy wydać polecenie jak w poniższym przykładzie.

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

W CentOS lub RHEL nieudane sesje SSH są rejestrowane w pliku /var/log/secure. Wydaj powyższe polecenie w odniesieniu do tego pliku dziennika, aby zidentyfikować nieudane logowania SSH.

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

Nieco zmodyfikowana wersja powyższego polecenia wyświetlająca nieudane logowanie SSH w CentOS lub RHEL jest następująca.

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

Aby wyświetlić listę wszystkich adresów IP, które próbowały i nie udało się zalogować do serwera SSH wraz z liczbą nieudanych prób każdego adresu IP, wydaj poniższe polecenie.

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

W nowszych dystrybucjach Linuksa możesz wysłać zapytanie do pliku dziennika środowiska wykonawczego obsługiwanego przez demona Systemd za pomocą polecenia journalctl. Aby wyświetlić wszystkie nieudane próby logowania SSH, należy przesłać wynik przez filtr grep, jak pokazano w poniższych przykładach poleceń.

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

W CentOS lub RHEL zamień jednostkę demona SSH na sshd.service, jak pokazano w poniższych przykładach poleceń.

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

Po zidentyfikowaniu adresów IP, które często trafiają na Twój serwer SSH w celu zalogowania się do systemu przy użyciu podejrzanych kont użytkowników lub nieprawidłowych kont użytkowników, powinieneś zaktualizować reguły zapory systemowej, aby blokować adresy IP nieudanych prób SSH lub skorzystać ze specjalistycznego oprogramowanie, takie jak Fail2ban, do zarządzania tymi atakami.