Znajdowanie najnowszych udanych logowań i nieudanych prób na serwerze CentOS


29

Szukam pliku dziennika lub jakiejkolwiek usługi, aby zgłosić ostatnie próby logowania, które zakończyły się niepowodzeniem z powodu niedopasowania nazwy użytkownika / hasła. Czy są dostępne takie narzędzia dla CentOS? (preferowane jest wbudowane)

Moje drugie pytanie, a bardziej ogólnie, potrzebuję pliku dziennika prób penetracji na mój serwer. Idealnie, ten dziennik powinien zawierać wszystkie próby, w tym logowania, działania httpd i inne konwencjonalne otwarte porty.


2
odpowiedz na drugie pytanie: spójrz na OSSEC .
kwanty

1
Wątek został przeniesiony z Stackoverflow po tym, jak zadałem pytanie w Serverfault. Oto wątki omawiające drugie pytanie.
lashgar

Odpowiedzi:


61

W systemie Linux lastpolecenie wyświetla udane próby logowania i wyświetla informacje o sesji (pkt, źródło, data i długość).

lastbKomenda rejestruje wszystkie złe prób logowania. Obie mają tę samą manstronę, ale różnica polega na tym, że lastczyta /var/log/wtmpplik binarny i domyślnie lastbczyta /var/log/btmpplik.

Zakres tych plików zależy od harmonogramu rotacji dzienników, ale powinien trwać kilka tygodni. Większość dystrybucji będzie się obracać /var/log/wtmpco miesiąc, więc możesz przeczytać poprzedni rekord, zwykle wymieniony jako /var/log/wtmp.1, określając plik za pomocą -fparametru ...last -f /var/log/wtmp.1


17
+1 zalastb
lashgar

3
To powinna być wybrana odpowiedź
programista

@acoder, gotowe: thumb:
lashgar

14

Pytanie jest tutaj nie na temat, ale bardzo krótka odpowiedź: może powinieneś po prostu sprawdzić / var / log / secure (np. Grep dla „failed”).


To właściwie odpowiedź na moje pierwsze pytanie. Zapytam drugi w ServerFault. Dzięki.
lashgar

1

To jest stary wątek, ale dostałem podobne zadanie, więc w moim przypadku jest to wpis do dziennika

Nov 15 17:14:47 megatron sshd[4768]: Failed password for git from 192.168.122.1 port 49227 ssh2

Możemy to zrobić w ten sposób, jeśli jesteśmy pewni, że użytkownik jest statyczny

#!/bin/bash
LOG=/var/log/secure
MESSAGE="Failed password for git"
grep -i "$MESSAGE" "$LOG

W przypadku, gdy wiemy na podstawie na użytkownika

#!/bin/bash
LOG=/var/log/secure
if [ -n "$1" ]
then
NEWUSER="$1"
else
NEWUSER="root"
fi
MESSAGE="Failed password for $NEWUSER"
grep -i "$MESSAGE" "$LOG"

Skrypt powinien więc działać podobnie

[root@megatron bash1]# ./failedlogin.sh git

LUB łatwiejsze podejście

#!/bin/bash
LOG=/var/log/secure
MESSAGE="Failed password for"
grep -i "$MESSAGE" "$LOG"
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.