Astăzi găsim diferite moduri de a ne conecta în siguranță la serverele noastre pentru a efectua sarcini de întreținere și asistență sau pentru a verifica starea acestora. Deoarece nu putem fi întotdeauna direct în locația fizică a acestui cel mai practic și comun mod de a accesa serverul, este posibil de la distanță prin protocolul SSH.
SSH (Secure SHell) a fost dezvoltat ca un protocol care permite stabilirea conexiunilor între două sisteme bazate pe arhitectura client / server, facilitând faptul că, în calitate de administratori sau utilizatori, ne putem conecta de la distanță la server sau computer, unul dintre cele mai notabile avantaje ale SSH este că este responsabil pentru criptarea sesiunii de conectare pentru a spori securitatea, împiedicând atacatorii să acceseze parole necriptate.
Acum, fiecare autentificare sau încercare de a accesa serverul utilizând SSH este înregistrată și stocată într-un fișier jurnal de către daemon-ul rsyslog pe Linux, astfel încât va fi posibil să îl accesați și să validați în detaliu cine, când și starea pornirii sesiunii permițând o sarcină de audit și control mult mai completă.
Solvetic vă va explica în acest tutorial cum să vizualizați acest fișier și să stabiliți cine a încercat sau s-a conectat la computer.
1. Instalați SSH pe Linux
Pentru acest exemplu am folosit Ubuntu 19 și CentOS 8, amintiți-vă că atunci când accesăm prin SSH putem lucra complet pe computer:
MARI
Instalați SSH pe CentOS 8Dacă doriți să instalați SSH în CentOS 8 trebuie să executați următoarele:
yum -y install openssh-server openssh-clients
MARI
Instalați SSH pe UbuntuDacă doriți să faceți acest lucru în Ubuntu 19, trebuie să executați următoarele:
sudo apt instalează openssh-server
2. Utilizați comanda grep pentru a vizualiza conectările eșuate pe Linux
Pasul 1
Cel mai simplu mod de a determina și vizualiza încercările de conectare este executând următoarele:
grep "Parola eșuată" /var/log/auth.log
Pasul 2
Putem vedea detalii precum:
- Utilizator care încearcă să se conecteze
- adresă IP
- Port utilizat pentru încercarea de conectare
Pasul 3
Găsim același rezultat cu comanda cat:
cat /var/log/auth.log | grep "Parola eșuată"
Pasul 4
În cazul în care doriți să obțineți informații suplimentare despre datele de conectare SSH eșuate în Linux, trebuie să executăm următoarele. După cum vedem, detaliile sunt mult mai complete.
egrep "Eșuat | Eșec" /var/log/auth.log
Vizualizați jurnalele în RHEL sau CentOS 8În cazul RHEL sau CentOS 8, toate jurnalele sunt găzduite în fișierul / var / log / secure, pentru vizualizarea lor vom executa următoarele:
egrep "Eșuat | Eșuat" / var / log / secure
MARI
Vedem că jurnalele sunt păstrate cu detalii complete, inclusiv numele sesiunilor înregistrate (corecte sau nu). O altă opțiune pentru a vizualiza datele de conectare SSH eșuate în CentOS este să utilizați una dintre următoarele linii:
grep "Eșuat" / var / log / secure grep "eșec de autentificare" / var / log / secure
MARI
Pasul 5
Pentru a afișa lista adreselor IP care au încercat să acceseze, dar nu au reușit, trebuie să folosim următoarea comandă:
grep "Parola eșuată" /var/log/auth.log | awk „{print $ 11}” | uniq -c | sort -nrPasul 6
În cele mai actuale distribuții Linux (cum ar fi Ubuntu 19), este posibil să accesați fișierul jurnal de rulare pe care Systemd îl gestionează cu comanda journalctl, dacă dorim să vedem jurnalele de autentificare SSH eșuate, vom folosi comanda grep pentru a filtra rezultate ca aceasta:
journalctl _SYSTEMD_UNIT = ssh.service | egrep "Failed | Failure" (Ubuntu) journalctl _SYSTEMD_UNIT = sshd.service | egrep "Failed | Failure" (RHEL, CentOS)
Pe CentOSÎn CentOS putem folosi și următoarele:
journalctl _SYSTEMD_UNIT = sshd.service | grep "eșec" journalctl _SYSTEMD_UNIT = sshd.service | grep "Nu a reușit"
Putem vedea cum să vizualizăm fiecare încercare de conectare SSH eșuată și pe baza acesteia luăm măsurile de securitate relevante pentru a păstra disponibilitatea serviciilor.