Skip to main content

Cyber AI România

Cum analizezi logurile de autentificare Linux pentru tentative suspecte

Logurile de autentificare îți arată cine a încercat să intre pe sistem, când, de unde și prin ce metodă. Pe un server Linux expus la internet, mai ales cu SSH activ, este normal să vezi încercări automate de autentificare. Important este să știi să le citești corect și să faci diferența între zgomot obișnuit, configurare greșită și risc real.

Pe Ubuntu și Debian, multe evenimente de autentificare apar în /var/log/auth.log. Pe distribuții care folosesc puternic systemd journal, poți folosi journalctl pentru a filtra logurile serviciului SSH. journalctl este instrumentul standard pentru citirea logurilor din systemd journal, iar Ubuntu documentează OpenSSH Server ca serviciul folosit pentru acces remote securizat pe server.

Începe cu verificarea serviciului SSH

Înainte să analizezi loguri, vezi dacă SSH rulează:

systemctl status ssh

Pe unele distribuții serviciul se numește sshd:

systemctl status sshd

Verifică și dacă ascultă pe port:

sudo ss -tulpen | grep ':22'

Dacă SSH nu rulează sau portul nu apare, nu vei vedea autentificări remote recente.

Citește ultimele evenimente din auth.log

Pe Ubuntu/Debian:

sudo tail -n 100 /var/log/auth.log

Pentru doar SSH:

sudo grep 'sshd' /var/log/auth.log | tail -n 50

Caută expresii importante:

sudo grep -i 'failed password' /var/log/auth.log
sudo grep -i 'invalid user' /var/log/auth.log
sudo grep -i 'accepted' /var/log/auth.log
sudo grep -i 'authentication failure' /var/log/auth.log

Ce înseamnă concret:

Failed password — cineva a încercat parolă greșită.
Invalid user — s-a încercat autentificarea cu un utilizator care nu există.
Accepted password — autentificare reușită cu parolă.
Accepted publickey — autentificare reușită cu cheie SSH.
authentication failure — eveniment de autentificare eșuată, de obicei prin PAM.

O singură încercare eșuată nu înseamnă incident. Zeci sau sute de încercări de la același IP, mai ales cu utilizatori precum root, admin, test, oracle, ubuntu, pot indica scanare automată sau brute-force.

Folosește journalctl pentru SSH

Dacă sistemul tău folosește journalctl, rulează:

sudo journalctl -u ssh -b

sau:

sudo journalctl -u sshd -b

Pentru ultimele 100 de linii:

sudo journalctl -u ssh -n 100

Pentru erori din bootul curent:

sudo journalctl -u ssh -p warning -b

Manualul journalctl include filtrarea după unități systemd cu -u și după boot cu -b, ceea ce îl face util când investighezi un serviciu concret, cum este SSH.

Identifică IP-urile care repetă încercările

Ca să vezi IP-urile din încercările eșuate:

sudo grep 'Failed password' /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head

Această comandă îți arată de câte ori apare fiecare IP în liniile cu Failed password. Nu lua decizii majore doar pe baza unei singure comenzi, dar folosește rezultatul ca punct de plecare.

Pentru utilizatori inexistenți:

sudo grep 'Invalid user' /var/log/auth.log | awk '{print $8}' | sort | uniq -c | sort -nr | head

Dacă vezi multe încercări pe utilizatori inexistenți, serverul este probabil atins de scanări automate.

Verifică autentificările reușite

Nu te uita doar la eșecuri. Cele mai importante sunt autentificările reușite:

sudo grep -i 'Accepted' /var/log/auth.log

Verifică utilizatorul, IP-ul și ora. Dacă vezi un login reușit de la un IP necunoscut sau într-un interval ciudat, investighează imediat.

Comenzi utile:

last
lastlog
who

lastlog afișează ultima autentificare pentru utilizatorii sistemului, folosind fișierul /var/log/lastlog, iar faillog poate raporta autentificări eșuate în sistemele unde este folosit.

Ce faci dacă vezi activitate suspectă

Nu șterge logurile. Nu reporni serverul imediat. Notează ora, IP-ul, utilizatorul și tipul evenimentului.

Pași defensivi:

sudo grep -i 'Accepted' /var/log/auth.log
getent passwd
getent group sudo
sudo ufw status verbose

Verifică dacă există utilizatori necunoscuți, cine are sudo și dacă SSH este expus către toată lumea. Dacă folosești parolă pentru SSH, treci la chei SSH și dezactivează login-ul prin parolă doar după ce ai testat conectarea cu cheia într-o sesiune separată.

Setări importante în /etc/ssh/sshd_config:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

După modificări:

sudo sshd -t
sudo systemctl reload ssh

Analiza logurilor de autentificare nu este despre panică. Este despre metodă: verifici SSH, citești logurile, separi eșecurile de autentificările reușite, identifici IP-uri repetitive, verifici utilizatorii și aplici măsuri defensive clare.

Surse folosite

Ubuntu Server Documentation — OpenSSH Server.
Linux man-pages — journalctl, citirea și filtrarea logurilor systemd.
Linux man-pages — lastlog, ultima autentificare a utilizatorilor.
Linux man-pages — faillog, raportarea autentificărilor eșuate.

Facebook
X
WhatsApp

Te-ar putea interesa si: