Skonfigurowałem serwer Ubuntu z openssh, aby się z nim połączyć i wykonywać polecenia ze zdalnego systemu, takiego jak telefon lub laptop. Problem w tym, że ... prawdopodobnie nie jestem jedyny.
Czy istnieje sposób, aby poznać wszystkie próby logowania do serwera?
Odpowiedzi:
Na serwerach Ubuntu możesz dowiedzieć się, kto zalogował się, kiedy (i skąd) w pliku
/var/log/auth.log
. Tam znajdziesz wpisy takie jak:źródło
lastb
komendę ?/var/log/auth.log
W dystrybucjach opartych na systemie Red Hat, takich jak Fedora / CentOS / RHEL, możesz sprawdzić, czy użytkownicy zalogowali się w pliku
/var/log/secure
.Jeśli chcesz uzyskać więcej informacji, zapoznaj się z pytaniami i odpowiedziami SuperUser zatytułowanymi: Jak mogę rejestrować próby dostępu do SSH i śledzić, co użytkownicy SSH kończą na moim serwerze? .
źródło
/var/log/secure
na żadnym z moich systemów Ubuntu./var/log/auth
w swoich systemach. Dlatego przed opublikowaniem odpowiedzi sprawdziłem, czy mam/var/log/secure
w swoim systemie, który jest także serwerem Ubuntu :)/var/log/secure
./var/log/secure
to ism Fedory / CentOS / RHEL.W systemie Ubuntu możesz zalogować się przez SSH i użyć polecenia tail Linux, aby wyświetlić ostatnią x liczbę wierszy
/var/log/auth.log
pliku. Po zalogowaniu przez SSH użyj następującego polecenia, aby wyświetlić 100 ostatnich wierszy dziennika SSH:a nawet czystsze
źródło
Zauważ, że domyślna konfiguracja Ubuntu NIE zapisuje logowań ssh do
/var/log/auth
pliku. To jestINFO
poziom rejestrowania.Jeśli chcesz, aby zawierała próby logowania do pliku dziennika, musisz edytować
/etc/ssh/sshd_config
plik (jako root lub sudo) i zmienićLogLevel
zINFO
naVERBOSE
.Następnie zrestartuj demona sshd za pomocą
Następnie próby logowania ssh zostaną zalogowane do
/var/log/auth.log
pliku.źródło
Polecam skorzystanie z audytu . Jest to logowanie przy użyciu podsystemu kontroli jądra Linuksa i moim zdaniem jest to właściwy sposób, jeśli mówisz poważnie. Biorąc pod uwagę naturę pytania związanego z bezpieczeństwem, powinieneś również używać PAM . Na domyślnym poziomie po zainstalowaniu audytu i PAM powinieneś automatycznie otrzymywać wszystkie udane i nieudane próby SSH zalogowane w pliku audit.log. Więc naprawdę nie musisz niczego konfigurować, wystarczy mieć audyty i PAM zainstalowane. Znam to z pierwszej ręki dla SLES. I stawiałbym RHEL oraz wszelkie inne przedsiębiorstwo wersja Linux będzie działać podobnie.
http://manpages.ubuntu.com/manpages/precise/man8/auditd.8.html
w surowym dzienniku kontroli wygenerowanym przez auditd możesz użyć albo czegoś w rodzaju
aureport
filtrowania, co jest opisane na stronach kontrolowanych , napisać własny parser tekstu, lub po prostu użyć VI i wyszukać słowa kluczowe.oto wyjątek od mojego
/var/log/audit/audit.log
pliku, w którym ssh'ing do mojego serwera linux.date --date @1480622612.317
co spowodujeThu Dec 1 15:03:32 EST 2016
i nastąpi, gdy ssh'd na mój serwer.Kiedy
res=failed
chcesz sprawdzić adresy IP i nazwy hostów, aby zobaczyć, jakie systemy próbowały się połączyć, pod jaką nazwą użytkownika. I oczywiście udany ssh próbuje zrozumieć, co dzieje się w twoim systemie - na przykład twój bob współpracujący, który codziennie siedzi przy tym samym biurku z nazwą hosta = bobscomputer i adresem ip = 192.168.5.5; jeśli zobaczysz wczoraj udaną próbę ssh o 2 nad ranem pod jego nazwą użytkownika z adresu IP 10.10.5.6, na przykład może być w twoim najlepszym interesie porozmawiać z Bobem w celu zbadania. Możliwa próba włamania przez kogoś innego? A wkrótce potem są próby rootowania w dzienniku kontroli z konta boba?kiedy widzisz powtarzalne
res=failed
iauid=0
aacct=root
następnie, że ktoś próbuje ssh do swojej skrzynki do konta root, i to po zmodyfikowaniu/etc/hosts.deny
z tego adresu IP dla sshd.źródło
Wiem, że to stare, ale napisałem coś do monitorowania udanych i nieudanych połączeń / prób ssh. Jak również zablokowane adresy IP, jeśli używasz sshguard. Oprogramowanie jest napisane w języku Python. Prześle Ci wiadomość e-mail, gdy ktoś pomyślnie połączy się za pośrednictwem ssh, gdy ktoś pomyli hasło ssh lub gdy ktoś zostanie zbanowany z powodu wielu nieudanych prób. Mam nadzieję, że pomoże to w przyszłości komuś, kto szuka tego problemu i znajduje mój kod!
Dla skryptu python napisałem skrypt bash do monitorowania procesu. Sprawdza, czy działa co minutę za pomocą zadania root cron. Jeśli nie jest uruchomiony, uruchamia inny proces. Które są wywoływane przez zadanie root cron co minutę.
źródło
Najlepszą rzeczą, jaką kiedykolwiek spotkałem przy logowaniu komend SSH, jest rootsh to narzędzie pozwala administratorowi uzyskać każdą komendę z każdej sesji z dużym poziomem rejestrowania.
Napisałem skrypt do instalacji i konfiguracji ROOTSH w Ubuntu i CentOS / RHEL
pobierz z github tutaj jest link
źródło