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.
node=shark type=CRED_DISP msg=audit(1480622612.317:2211277): user pid=117768 uid=0 auid=23456 ses=2201 msg='op=PAM:setcred acct="ron" exe="/usr/sbin/sshd" (hostname=abc415.mycompany.us, addr=172.16.152.5, terminal=ssh res=success)'
- z powyższego nazwa mojego serwera to rekin .
- wiele takich wierszy znajduje się w audit.log, chcę ten oparty na exe = "/ usr / sbin / sshd"
- uid konta ssh'd to wartość auid, która w tym przykładzie wynosi 23456
- nazwa konta użytkownika powiązanego z auid jest określona przez acct = "ron"
- przez większość czasu system kontroli zapisuje nazwę hosta dns systemu próbującego się połączyć, ale zawsze ma on swój adres IP
- data wpisu przypada na epokę, więc będziesz musiał przekonwertować to za pomocą czegoś takiego,
date --date @1480622612.317
co spowoduje Thu 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
i auid=0
a acct=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.