Dziś znajdujemy różne sposoby bezpiecznego łączenia się z naszymi serwerami, aby wykonywać zadania konserwacji i wsparcia lub sprawdzać ich status. Ponieważ nie zawsze możemy znajdować się bezpośrednio w fizycznej lokalizacji tego najbardziej praktycznego i powszechnego sposobu dostępu do serwera, jest to możliwe zdalnie za pośrednictwem protokołu SSH.
SSH (Secure SHell) został opracowany jako protokół umożliwiający nawiązywanie połączeń pomiędzy dwoma systemami w oparciu o architekturę klient/serwer, ułatwiając, że jako administratorzy lub użytkownicy możemy łączyć się zdalnie z serwerem lub komputerem, jedna z najbardziej zauważalnych zalet SSH jest to, że jest odpowiedzialny za szyfrowanie sesji połączenia w celu zwiększenia bezpieczeństwa, uniemożliwiając atakującym dostęp do niezaszyfrowanych haseł.
Teraz każde logowanie lub próba uzyskania dostępu do serwera za pomocą SSH jest rejestrowana i przechowywana w pliku dziennika przez demona rsyslog w systemie Linux, dzięki czemu będzie można uzyskać do niego dostęp i szczegółowo zweryfikować kto, kiedy i stan uruchomienia sesji pozwalając na znacznie pełniejsze zadanie audytu i kontroli.
Solvetic wyjaśni w tym samouczku, jak wyświetlić ten plik i określić, kto próbował lub zalogował się do komputera.
1. Zainstaluj SSH w systemie Linux
W tym przykładzie użyliśmy Ubuntu 19 i CentOS 8, pamiętaj, że dostęp przez SSH możemy wszechstronnie pracować na komputerze:
POWIĘKSZAĆ
Zainstaluj SSH na CentOS 8Jeśli chcesz zainstalować SSH w CentOS 8, musisz wykonać następujące czynności:
mniam - zainstaluj openssh-server openssh-clients
POWIĘKSZAĆ
Zainstaluj SSH na UbuntuJeśli chcesz to zrobić w Ubuntu 19, musisz wykonać następujące czynności:
sudo apt install openssh-server
2. Użyj polecenia grep, aby wyświetlić nieudane logowania w systemie Linux
Krok 1
Najprostszym sposobem określenia i wyświetlenia prób logowania jest wykonanie następującego polecenia:
grep "Nieudane hasło" /var/log/auth.log
Krok 2
Możemy zobaczyć takie szczegóły jak:
- Użytkownik próbuje się zalogować
- adres IP
- Port używany do próby logowania
Krok 3
Ten sam wynik znajdujemy za pomocą polecenia cat:
kot /var/log/auth.log | grep "Nieudane hasło"
Krok 4
W przypadku, gdy chcesz uzyskać dodatkowe informacje o nieudanych logowaniach SSH w systemie Linux, musimy wykonać następujące czynności. Jak widzimy, szczegóły są znacznie pełniejsze.
egrep „Niepowodzenie | Awaria” /var/log/auth.log
Wyświetl logi w RHEL lub CentOS 8W przypadku RHEL lub CentOS 8 wszystkie logi są przechowywane w pliku /var/log/secure, w celu ich wizualizacji wykonamy następujące czynności:
egrep „Failed | Failure” / var / log / secure
POWIĘKSZAĆ
Widzimy, że logi są przechowywane z pełnymi szczegółami, w tym zarejestrowanymi nazwami sesji (poprawne lub nie). Inną opcją wyświetlenia nieudanych logowań SSH w CentOS jest użycie jednego z następujących wierszy:
grep „Niepowodzenie” / var / log / Secure grep „Błąd uwierzytelniania” / var / log / Secure
POWIĘKSZAĆ
Krok 5
Aby wyświetlić listę adresów IP, które próbowały uzyskać dostęp, ale nie powiodły się, musimy użyć następującego polecenia:
grep "Nieudane hasło" /var/log/auth.log | awk '{drukuj 11 USD}' | uniq -c | sortuj -nrKrok 6
W najnowszych dystrybucjach Linuksa (takich jak Ubuntu 19) możliwy jest dostęp do pliku dziennika runtime, którym zarządza Systemd za pomocą polecenia journalctl, jeśli chcemy zobaczyć nieudane logi logowania SSH, użyjemy polecenia grep do filtrowania wyniki takie:
journalctl _SYSTEMD_UNIT = ssh.service | egrep "Failed | Failure" (Ubuntu) journalctl _SYSTEMD_UNIT = sshd.service | egrep „Niepowodzenie | Awaria” (RHEL, CentOS)
Na CentOSW CentOS możemy również skorzystać z:
journalctl _SYSTEMD_UNIT = sshd.service | grep „awaria” journalctl _SYSTEMD_UNIT = sshd.service | grep „Niepowodzenie”
Możemy zobaczyć, jak wyświetlić każdą nieudaną próbę logowania SSH i na tej podstawie podjąć odpowiednie środki bezpieczeństwa, aby zachować dostępność usług.