Ghid de securitate · România

Cum securizez accesul SSH la un server Linux?

SSH e ușa principală a serverului și prima pe care o încearcă boții, din primul minut după ce IP-ul devine public. Trei setări în sshd_config și o pereche de chei elimină aproape tot riscul; restul e igienă.

Actualizat la

Răspuns scurt

  1. Securizezi accesul SSH înlocuind parolele cu chei ed25519, cu PasswordAuthentication no în sshd_config.
  2. Interzici autentificarea directă ca root cu PermitRootLogin no și folosești un utilizator obișnuit cu sudo.
  3. Restrângi conturile care pot intra cu AllowUsers, instalezi fail2ban și, dacă poți, limitezi sursa conexiunilor prin firewall sau VPN.
  4. Schimbarea portului reduce doar zgomotul din loguri și nu înlocuiește niciuna dintre măsurile de mai sus.
Tip de cheie recomandat
ed25519
Setări-cheie în sshd_config
PasswordAuthentication no, PermitRootLogin no
Valoarea implicită PermitRootLogin din OpenSSH 7.0
prohibit-password
Blocare automată a încercărilor repetate
fail2ban, jail sshd

De ce cheile bat orice parolă

O parolă, oricât de lungă, poate fi ghicită, reutilizată sau prinsă prin phishing. O cheie ed25519 nu se transmite niciodată pe fir: serverul verifică o semnătură, iar partea privată rămâne pe laptopul tău, protejată de o frază de acces. Când dezactivezi autentificarea cu parolă, listele de parole scurse devin inutile. OpenSSH refuză implicit root cu parolă din versiunea 7.0, prin prohibit-password, dar cel mai simplu e să interzici root de tot și să intri cu un cont personal care escaladează prin sudo.

Ce face fail2ban și ce nu face

fail2ban citește logul de autentificare și adaugă în firewall o regulă temporară pentru fiecare IP care a eșuat de mai multe ori într-un interval. Oprește brute force-ul lent și reduce zgomotul. Nu te protejează dacă ai lăsat parole active pe conturi previzibile, pentru că un botnet încearcă din mii de IP-uri, câte o dată fiecare. Ordinea contează: întâi chei și fără root, apoi fail2ban ca strat suplimentar. Portul non-standard e din aceeași categorie: scanarea tuturor porturilor durează secunde.

  • Adaugi IP-urile tale în ignoreip ca să nu te blochezi singur
  • Verifici periodic authorized_keys: o cheie străină e semnul clasic al compromiterii
  • Ștergi cheia unui coleg în ziua în care pleacă din echipă
Setări sshd_config recomandate pentru un server de producție
DirectivăValoare recomandatăCe face
PasswordAuthenticationnoAcceptă doar chei; brute force-ul cu parole devine inutil
PermitRootLoginnoRoot nu se poate autentifica direct; intri cu utilizator + sudo
AllowUsersdeploy adminDoar conturile listate pot deschide sesiuni
MaxAuthTries3Limitează încercările per conexiune
KbdInteractiveAuthenticationnoÎnchide și calea interactivă de parolă

Comenzi și configurări

Generezi o cheie ed25519 și o copiezi pe server
ssh-keygen -t ed25519 -a 100 -C "deploy@exemplu.ro"
ssh-copy-id -i ~/.ssh/id_ed25519.pub deploy@exemplu.ro
/etc/ssh/sshd_config.d/10-hardening.conf (verifică întâi că sshd_config are linia Include; altfel scrii direct în sshd_config)
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
AllowUsers deploy admin
MaxAuthTries 3
LoginGraceTime 30
fail2ban: /etc/fail2ban/jail.local
[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1h
ignoreip = 127.0.0.1/8 203.0.113.10

Exemple practice

SaaS din Iași, VPS proaspăt instalat

În primele douăsprezece ore după alocarea IP-ului, logul arăta mii de încercări pe root din zeci de țări. Cu PasswordAuthentication no toate au eșuat instantaneu; fail2ban a redus apoi și volumul din log la câteva linii pe zi.

Agenție web din Timișoara cu freelanceri

Un fost colaborator încă avea cheia în authorized_keys pe cinci servere de client, un an după terminarea contractului. Agenția a introdus o listă centrală de chei și o verificare lunară a fișierului pe fiecare mașină administrată.

Greșeli frecvente

  • Crezi că portul SSH schimbat înseamnă securitate, deși scanarea celor 65.535 de porturi durează secunde.
  • Lași PasswordAuthentication yes „pentru siguranță, dacă pierd cheia”, ceea ce anulează avantajul cheilor.
  • Folosești o singură cheie partajată în echipă, fără frază de acces, salvată și în repo.
  • Editezi sshd_config și îl repornești fără să testezi dintr-o a doua sesiune, riscând să te blochezi afară.

Cum te ajută 4hosting

  • Pe VPS și pe serverele dedicate ai acces root și poți aplica integral configurația de mai sus; serviciul Hardening & Compliance o face pentru tine, în orele incluse: 1–8 ore la VPS, 5–10 ore la dedicate, în funcție de plan, și 10 ore la GPU, cerute din panoul de client, secțiunea „Servicii DevOps”.
  • Serviciul VPN WireGuard scoate portul 22 de pe internet și îl expune doar în rețeaua ta privată.
  • Serviciul SIEM & Incident Response centralizează logurile de autentificare și alertează la o cheie nouă în authorized_keys sau la un login din locație neobișnuită.

Întrebări conexe

  • Ce fac dacă îmi pierd cheia privată?

    Ai nevoie de o a doua cale de acces pregătită dinainte: o a doua cheie păstrată offline, consola din panoul furnizorului sau accesul KVM la serverul dedicat. De aceea nu lași parolele active „de rezervă”; folosești în schimb consola furnizorului, care nu e expusă pe internet.

  • Merită să schimb portul SSH?

    Nu ca măsură de securitate. Reduce zgomotul din loguri și încărcarea produsă de boți, ceea ce e util pe un server mic, dar orice scanare găsește portul nou în secunde. Dacă vrei liniște, pune SSH în spatele unui VPN sau limitează sursa prin firewall.

  • Am nevoie de 2FA la SSH dacă folosesc chei?

    Pentru majoritatea serverelor cheile cu frază de acces sunt suficiente. Pe servere critice sau când mai mulți oameni au acces, un al doilea factor TOTP prin PAM adaugă protecție dacă un laptop e furat cu cheia deblocată. Alternativ, accesul doar prin VPN are efect similar.

Cere o verificare de securitate

Un server de producție e atacat automat din primele minute după ce primește IP public, indiferent cât de mic e proiectul. Ghidul ordonează controalele după impact, de la accesul SSH până la răspunsul la incident, cu legislația din România care se aplică. Fiecare temă are o pagină dedicată, cu răspuns scurt, exemple și configurări.

Ghiduri pentru firme din România