Aproape orice VPS nou începe la fel: te autentifici ca root, instalezi câteva lucruri și peste o lună ești tot root. Merge până când un script lipit de undeva șterge directorul greșit. Configurarea unui utilizator normal cu sudo durează cinci minute, iar ordinea contează mai mult decât comenzile — dacă o greșești, te încui afară.
Iată secvența sigură pentru Ubuntu 22.04/24.04 și Debian 12.
1. Creează utilizatorul
Ca root:
adduser deploy
usermod -aG sudo deploy
adduser cere o parolă și câteva detalii opționale (treci prin ele cu Enter). Alege o parolă reală: o vei tasta pentru sudo. Pe o imagine Debian minimală, rulează întâi apt install -y sudo dacă lipsește comanda.
2. Dă-i cheia SSH
Cel mai simplu e să copiezi cheile autorizate ale lui root, cu proprietarul corect:
rsync --archive --chown=deploy:deploy /root/.ssh /home/deploy
Dacă preferi s-o faci de mână:
mkdir -p /home/deploy/.ssh
cp /root/.ssh/authorized_keys /home/deploy/.ssh/
chown -R deploy:deploy /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
chmod 600 /home/deploy/.ssh/authorized_keys
Permisiunile greșite sunt motivul clasic pentru care autentificarea cu cheie eșuează fără niciun mesaj. SSH ignoră un authorized_keys în care pot scrie alți utilizatori.
3. Testează înainte să schimbi ceva
Ține deschisă sesiunea root. Într-un terminal nou:
ssh -p 22 deploy@203.0.113.10
sudo whoami
Folosește propriul IP și port — pe un plan NAT, asta e portul tău SSH personal din dashboard. Dacă sudo whoami afișează root, totul e în regulă. Dacă autentificarea eșuează, ai încă fereastra root ca s-o repari.
4. Oprește autentificarea ca root
Acum închide ușa. Creează un mic fișier drop-in în loc să editezi configurația principală:
cat > /etc/ssh/sshd_config.d/10-hardening.conf <<'EOF'
PermitRootLogin no
PasswordAuthentication no
EOF
sshd -t && systemctl reload ssh
sshd -t verifică întâi sintaxa. O configurație stricată plus un reload e felul în care oamenii ajung să aibă nevoie de consolă. PasswordAuthentication no are sens doar după ce autentificarea cu cheie merge pentru noul utilizator — lucru pe care tocmai l-ai testat.
Deschide încă un terminal și confirmă că root e refuzat, iar deploy intră în continuare. Apoi închide vechea sesiune root.
5. Opțional: sudo fără parolă pentru automatizări
Dacă un script de deploy are nevoie de sudo fără cerere de parolă, dă-i exact asta și nimic mai larg:
visudo -f /etc/sudoers.d/deploy
deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart myapp
Sincer, NOPASSWD: ALL e tentant, dar înseamnă că o cheie furată e egală cu root. Limitează-l la comenzile pe care le rulează automatizarea.
Dacă ceva merge prost
Consola web din dashboard nu depinde de SSH sau de firewall. Autentifică-te acolo, repară fișierul din /etc/ssh/sshd_config.d/, reload, gata. Am descris tot fluxul de recuperare în cum intri înapoi pe un VPS în care nu mai poți intra.
Ce urmează
- Treci cum trebuie la autentificare doar cu cheie: autentificarea cu cheie SSH.
- Redu zgomotul atacurilor brute-force: fail2ban.
- Parcurge restul elementelor de bază cu lista de securitate pentru un VPS nou.
Opțiunile de acces pentru fiecare plan sunt în documentația despre acces. Chiar și un Nano de $3 merită un utilizator non-root — e cel mai ieftin upgrade de securitate care există.
Comentarii
Încă nu există comentarii. Fii primul.