Salt la conținut
Business și cloud

Listă de verificare pentru configurarea unui server Linux sigur pe VPS

Un ghid pas cu pas pentru configurarea unui server Linux sigur pentru o aplicație web, acoperind firewall, întărirea SSH, actualizări, monitorizare și backup.

Developer configuring a Linux server on a laptop in a modern office
Ilustrație generată cu AI.

Implementarea primei tale VPS implică adesea gestionarea multor sarcini de securitate în timp ce încerci să pornești aplicația. O singură etapă de întărire lipsă poate lăsa serverul tău expus atacurilor.

Răspunsul este o listă de verificare concisă și practică care te ghidează prin regulile de firewall, întărirea SSH, actualizările, monitorizarea și backup-urile, astfel încât să poți lansa cu încredere.

Alegerea distribuției Linux potrivite pentru o aplicație web

Suportul pe termen lung contează

Când lansezi un VPS pentru o aplicație web de producție, sistemul de operare reprezintă fundația fiecărei decizii de securitate pe care le vei lua ulterior. Distribuțiile care oferă o fereastră LTS (Long‑Term Support) de cinci ani, cum ar fi Ubuntu 20.04 LTS sau Ubuntu 22.04 LTS, primesc corecții regulate de kernel, actualizări de securitate și versiuni de corectare a erorilor fără a necesita o actualizare majoră de versiune. Debian 11 (Bullseye) și Debian 12 (Bookworm) urmează același model, oferind pachete stabile și o cadentă de actualizare previzibilă. Alegând o distro LTS înseamnă că poți conta pe o bază de securitate cunoscută pe întreaga durată de viață a serviciului tău, reducând riscul ca versiuni de pachete neteste să-ți compromită stack-ul.

Imaginile oficiale ale furnizorului reduc riscul lanțului de aprovizionare

Majoritatea furnizorilor VPS găzduiesc un catalog de imagini pre-construite, semnate și verificate împotriva propriului depozit al furnizorului. Deployarea imaginii oficiale Ubuntu sau Debian direct din marketplace asigură că sistemul de fișiere nu a fost modificat și că bootloader-ul corespunde politicilor de securitate ale furnizorului. De exemplu, Marketplace-ul Vultr listează „Ubuntu 22.04 LTS – Official” și „Debian 12 – Official” ca intrări separate; alegerea oricăreia dintre acestea garantează că pornești de la o bază curată și validată de vendor.

Compatibilitate cu instrumentele Qubitpage

Suite-ul de gestionare la distanță al Qubitpage, CarphaCom Remote, este pachetat ca o serie de fișiere .deb compatibile cu Debian și depozite apt compatibile cu Ubuntu. Scriptul de instalare presupune prezența systemd, apt și a structurii standard de directoare utilizate de aceste distribuții. Folosirea unei versiuni LTS elimină astfel nevoia de patch-uri personalizate și îți permite să rulezi agentul la distanță cu un singur comandă:

curl -sSL https://github.com/qubitpage/carpathron-remote/install.sh | sudo bash

Instalatorul descarcă cel mai recent pachet semnat de pe /software/carpathron-remote și configurează serviciul să pornească la boot, simplificând monitorizarea continuă și colectarea jurnalelor.

Considerații de performanță și ecosistem

Ubuntu LTS include versiuni de kernel mai noi (de exemplu, 5.15 pentru 22.04) care suportă drivere hardware recente și runtimes de containere precum Docker sau Podman. Kernelul mai conservator al Debianului (5.10 în Bullseye) poate fi preferat pentru medii legacy unde se cere maximă stabilitate. Ambele distribuții vin cu aceleași instrumente de securitate de bază—AppArmor, unattended‑upgrades și fail2ban—permițând aplicarea uniformă a pașilor de întărire indiferent de alegere.

Check‑list de decizie

  • Preferă Ubuntu 22.04 LTS sau Debian 12 pentru cea mai lungă fereastră de suport.
  • Deployă imaginea oficială din marketplace-ul furnizorului VPS.
  • Verifică suma de control sau semnătura digitală dacă furnizorul o oferă.
  • Confirmă că managerul de pachete al distribuției (apt) poate accesa depozitul CarphaCom Remote.
  • Documentează versiunea aleasă în inventarul infrastructurii pentru audituri viitoare.

Crearea unui utilizator ne-root și configurarea sudo

Pasul 1 – Adăugarea unui utilizator dedicat

După ce te-ai autentificat ca root, creează un cont nou care va fi folosit pentru toate operaţiunile de rutină. Rulează:

adduser deployer

Comanda îți cere un nume complet, numărul de cameră etc.; poţi apăsa Enter pentru a sări peste acestea. Când ţi se cere o parolă, alege o frază de acces cu cel puţin 12 caractere, combinând majuscule, minuscule, cifre și simboluri. Exemplu de generare a unei parole puternice:

openssl rand -base64 18

Copiază rezultatul și lipeşte-l ca nouă parolă. Acest lucru asigură protecţia contului împotriva atacurilor brute‑force.

Pasul 2 – Restricționarea autentificării directe cu root

Deschide fișierul de configurare al daemonului SSH și dezactivează autentificarea prin parolă pentru contul root:

sed -i 's/^PermitRootLogin .*/PermitRootLogin no/' /etc/ssh/sshd_config

Reîncarcă serviciul pentru a aplica modificarea:

systemctl reload sshd

De acum înainte, orice sarcină administrativă trebuie efectuată prin sudo folosind contul ne-root, ceea ce reduce suprafața de atac.

Pasul 3 – Alocarea drepturilor sudo limitate

Instalează pachetul sudo dacă nu există deja:

apt-get update && apt-get install -y sudo

Apoi adaugă noul utilizator în grupul sudo:

usermod -aG sudo deployer

Pentru a aplica principiul privilegiei minime, editează fișierul sudoers cu visudo și creează o regulă care permite doar anumite comenzi. De exemplu, pentru a permite utilizatorului să repornească servicii și să administreze firewallul:

deployer ALL=(ALL) NOPASSWD: /bin/systemctl restart *, /usr/sbin/ufw *

Toate celelalte comenzi vor necesita încă parola utilizatorului, păstrând responsabilitatea.

Pasul 4 – Verificarea configurării

Comută la noul cont și testează o comandă privilegiată:

su - deployer
sudo systemctl status sshd

Dacă comanda se execută fără a cere o parolă, regula NOPASSWD este activă. Încearcă o comandă interzisă, cum ar fi editarea /etc/passwd:

sudo nano /etc/passwd

Sistemul ar trebui să solicite parola utilizatorului și apoi să refuze operația dacă regula nu include acel binar.

Sfat: Stochează parola generată într-un manager de parole și dezactivează complet autentificarea SSH prin parolă adăugând PasswordAuthentication no în /etc/ssh/sshd_config. Aceasta forțează autentificarea bazată pe chei, care este mult mai dificil de compromis.

Cu un utilizator ne-root dedicat și permisiuni sudo bine delimitate, munca zilnică nu mai necesită acces direct la root. Această practică se aliniază standardelor de securitate demonstrat în implementările noastre QuBIOS și formează fundamentul pentru pașii de întărire următori.

Întărirea accesului SSH

Secure Shell (SSH) reprezintă punctul principal de intrare pentru administrarea la distanță, așa că consolidarea configurării sale previne numeroase atacuri automate. Începe prin dezactivarea autentificării prin parolă și forțarea autentificării bazată pe chei; acest lucru elimină riscul de „credential stuffing” împotriva parolelor slabe sau reutilizate.

Apoi, mută serviciul de pe portul implicit 22. Schimbarea portului de ascultare reduce zgomotul din scanările de masă și oferă un strat mic, dar eficient, de obscuritate. În final, ia în considerare utilizarea tehnicianului AI opțional din Carpathron Remote pentru a valida prompturile de admin și a impune respectarea politicilor în timp real.

  1. Generează o pereche de chei pe stația ta de lucru. Rulează ssh-keygen -t ed25519 -C "admin@domeniul.tau.com" și acceptă locația implicită a fișierului. Păstrează cheia privată în siguranță; cheia publică va fi copiată pe server.
  2. Copiază cheia publică pe noul utilizator non‑root. Folosește ssh-copy-id -i ~/.ssh/id_ed25519.pub noulutilizator@ip-ul-tau-vps sau adaugă manual cheia în /home/noulutilizator/.ssh/authorized_keys cu permisiunile corecte (700 pentru .ssh, 600 pentru authorized_keys).
  3. Editează /etc/ssh/sshd_config pentru a impune autentificarea bazată pe chei. Setează PasswordAuthentication no, PubkeyAuthentication yes și ChallengeResponseAuthentication no. Salvează fișierul și repornește SSH cu systemctl restart sshd.
  4. Schimbă portul implicit SSH. În același fișier sshd_config, înlocuiește #Port 22 cu Port 4242 (sau orice port înalt neutilizat). Actualizează regulile firewall pentru a permite traficul pe noul port și verifică conectivitatea înainte de a închide portul vechi.
  5. Restricționează logarea la utilizatorul dedicat admin. Adaugă AllowUsers noulutilizator în sshd_config. Acest lucru împiedică alte conturi, chiar dacă sunt compromise, să deschidă o sesiune SSH.
  6. Activează limitarea ratei cu fail2ban. Instalează cu apt-get install fail2ban, apoi creează /etc/fail2ban/jail.d/ssh.conf conținând [sshd]\nenabled = true\nport = 4242\nmaxretry = 3. Repornește fail2ban pentru a aplica regulile.
  7. Activează tehnicianul AI pentru prompturile de admin. În Carpathron Remote, navighează la Setări → Asistent AI și activează „Verificare Prompt SSH”. Asistentul va cere o frază scurtă vorbită înainte de a acorda comenzi privilegiate, adăugând un factor biometric fără hardware suplimentar.
  8. Testează configurarea întărită. De pe o mașină separată, conectează-te folosind ssh -p 4242 noulutilizator@ip-ul-tau-vps. Verifică că logarea prin parolă este respinsă, promptul AI apare și sesiunea funcționează normal. Documentează pașii în wiki-ul intern pentru audituri viitoare.

După finalizarea acestor acțiuni, conexiunile SSH sunt limitate la un singur utilizator autenticat prin cheie pe un port nestandard, cu un strat de verificare bazat pe AI. Această combinație reduce drastic suprafața de atac, păstrând în același timp accesul la distanță comod pentru administratorii de sistem.

Configurarea unui firewall cu ufw

Instalarea și activarea UFW

Începe prin instalarea pachetului uncomplicated firewall pe VPS-ul tău. Pe sistemele bazate pe Debian rulează:

sudo apt-get update && sudo apt-get install ufw -y

După instalare, verifică starea cu sudo ufw status verbose. Firewallul este inactiv în mod implicit, așa că activează-l odată ce setul de reguli este pregătit.

Permite serviciile necesare

Mai întâi, permite traficul HTTP și HTTPS, care sunt esențiale pentru orice aplicație web:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Dacă ai configurat SSH pe un port non‑standard (de exemplu 2222), adaugă o regulă pentru acel port specific în locul portului implicit 22:

sudo ufw allow 2222/tcp

Aceste trei comenzi asigură că doar serviciile de care ai nevoie sunt accesibile din internet.

Activarea jurnalizării și pornirea firewallului

UFW poate înregistra încercările de conexiune, ceea ce te ajută să identifici activitatea de scanare sau clienți malconfigurați. Activează jurnalizarea la nivelul „low” pentru a captura pachetele refuzate fără a supraîncărca fișierele de log:

sudo ufw logging low

În final, pornește firewallul și verifică regulile active:

sudo ufw enable
sudo ufw status numbered

Outputul ar trebui să listeze cele trei reguli de permitere pe care le-ai adăugat, iar politica implicită va fi setată la refuz pentru traficul de intrare.

Testarea configurării

Dintr-o mașină remote, încearcă să te conectezi la serverul web pe porturile 80 și 443; ambele ar trebui să funcționeze. Apoi încearcă SSH pe portul personalizat; o autentificare reușită confirmă că regula este corectă. Orice alt port ar trebui blocat, returnând un timeout sau un refuz de conexiune.

Dacă ai nevoie să depanezi accesul la desktop remote ulterior, consultă ghidul nostru de depanare a desktopului remote pentru cerințe suplimentare de porturi.

Sfat: După activarea UFW, rulează sudo ufw reload ori de câte ori modifici regulile pentru a aplica schimbările fără a dezactiva firewallul.

Automatizarea actualizărilor și instalarea instrumentelor de securitate

Configurează actualizările neasistențate

Instalează pachetul unattended-upgrades și activează-l pentru patch-urile de securitate:

sudo apt-get update
sudo apt-get install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

În timpul configurării selectează „${distro_codename}-security” și orice alte depozite în care ai încredere. Instrumentul creează /etc/apt/apt.conf.d/20auto-upgrades cu următoarele valori implicite:

  • APT::Periodic::Update-Package-Lists "1";
  • APT::Periodic::Download-Upgradeable-Packages "1";
  • APT::Periodic::AutocleanInterval "7";
  • APT::Periodic::Unattended-Upgrade "1";

Aceste setări fac ca sistemul să verifice actualizările zilnic, să descarce actualizările de securitate și să le aplice automat fără interacțiune din partea utilizatorului.

Activează apt‑automatic pentru o automatizare mai largă

În timp ce unattended-upgrades se concentrează pe securitate, apt-automatic poate programa actualizări complete ale pachetelor. Instalează-l și creează un cron job:

sudo apt-get install apt-automatic
sudo crontab -e

Adaugă linia de mai jos pentru a rula scriptul la 03:30 AM în fiecare zi:

30 3 * * * /usr/bin/apt-automatic -y

Acest lucru asigură că actualizările non‑securitate, cum ar fi îmbunătățirile nucleului sau ale bibliotecilor, sunt aplicate prompt, reducând fereastra de expunere.

Deplasează fail2ban pentru a proteja serviciile

Fail2ban monitorizează fișierele de log și blochează IP-urile care prezintă semne malitioase. Instalează-l și activează-l cu carceră SSH implicită:

sudo apt-get install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Pentru a personaliza carceră SSH, editează /etc/fail2ban/jail.local:

[sshd]
enabled = true
port    = ssh
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600

După salvare, reîncarcă serviciul: sudo systemctl reload fail2ban. Configurația blochează încercările repetate de autentificare eșuate pentru o oră, atenuând atacurile de tip brute‑force.

Instalează un scanner de malware ușor

ClamAV oferă scanare la cerere și programată. Instalează-l și actualizează semnăturile:

sudo apt-get install clamav clamav-daemon
sudo freshclam

Creează un cron job zilnic de scanare care înregistrează rezultatele în /var/log/clamav/scan.log:

0 2 * * * /usr/bin/clamscan -r /var/www/html --log=/var/log/clamav/scan.log

Scanarea rulează la 02:00 AM, acoperind rădăcina web în timp ce serverul este inactiv. Revizuiește logul regulat sau configurează o alertă prin e‑mail folosind mail dacă logul conține „Infected files”.

Îmbină toate acestea într-un singur fișier cron

Pentru o gestionare mai ușoară, plasează toate intrările în /etc/cron.d/security-tasks:

# Daily apt‑automatic
30 3 * * * root /usr/bin/apt-automatic -y

# Daily ClamAV scan
0 2 * * * root /usr/bin/clamscan -r /var/www/html --log=/var/log/clamav/scan.log

# Optional: custom script to restart fail2ban after updates
45 3 * * * root systemctl restart fail2ban

Acest fișier asigură că actualizările, scanarea și repornirea serviciilor rulează automat fără intervenție manuală.

Pentru mai multe îndrumări privind gestionarea la distanță a VPS-ului tău întărit, consultă ghidul de administrare la distanță. Dacă ai nevoie de un pachet personalizat de întărire a securității, explorează serviciile noastre axate pe securitate.

Compară lista de verificare a componentelor esențiale de securitate

Înainte de a lansa un VPS nou, verifică fiecare strat de securitate față de linia de bază recomandată. Tabelul de mai jos rezumă starea implicită a unui server tipic Ubuntu 22.04, configurarea dură pe care o sfătuim și impactul de securitate al fiecărei modificări.

Componentă Configurare implicită Setare recomandată Motivul pentru care contează
Firewall (ufw) Dezactivat; toate porturile sunt deschise pentru traficul de intrare. Activează ufw și permite doar 22/tcp, 80/tcp, 443/tcp. Denunță tot ce rămâne. Restricționează expunerea doar la serviciile pe care vrei să le publici, reducând suprafața de atac pentru scanări de port și exploatări automate.
SSH Autentificarea cu parolă este activată, loginul root este permis, portul implicit 22. Dezactivează loginul root, forțează PubkeyAuthentication yes, schimbă portul la 2222 și folosește AllowUsers pentru a limita conturile. Elimină atacurile de tip brute‑force pe parole, previne escaladarea privilegiilor prin root și ascunde serviciul de la scanerele generice.
Actualizări Trebuie să rulezi manual apt update && apt upgrade; nu există patchuri de securitate automate. Instalează unattended-upgrades, activează APT::Periodic::Update-Package-Lists "1" și APT::Periodic::Unattended-Upgrade "1". Asigură că corecturile critice CVE sunt aplicate în termen de 24 ore, limitând fereastra de vulnerabilitate pentru exploatare cunoscută.
Monitorizare Nu există agregare de loguri sau alertare; logurile sunt stocate local doar. Instalează fail2ban pentru SSH, configurează auditd pentru apeluri de sistem și redirecționează logurile către un server syslog remote (de ex., prin rsyslog). Detectează eșecuri repetate de autentificare, modificări neautorizate ale fișierelor și oferă dovezi forensic pentru răspunsul la incidente.
Backupuri Nu există configurare; datele există doar pe discul principal. Planifică snapshoturi zilnice rsnapshot sau borg către un volum separat sau stocare off‑site și testează restaurarea trimestrial. Protejează împotriva ransomware-ului, ștergerii accidentale și defectelor hardware, asigurând în același timp recuperare rapidă.

După ce confirmi că fiecare rând corespunde mediului tău, poți trece la următoarea fază de implementare, cum ar fi instalarea stivei tale de aplicații sau integrarea cu instrumentele de gestionare remote ale Qubitpage. Menținând această listă de verificare la îndemână în timpul auditărilor de rutină, vei menține o postură de securitate consistentă pe toate instanțele VPS.

Întrebări frecvente

Cum pot genera și adăuga o cheie SSH pentru VPS-ul meu?

Pe stația ta locală rulează ssh-keygen -t ed25519 -C "your_email@example.com" și acceptă locația implicită a fișierului. După ce perechea de chei este creată, copiază cheia publică cu cat ~/.ssh/id_ed25519.pub | ssh user@vps_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys". Verifică permisiunile directorului .ssh (700) și fișierului authorized_keys (600) pe serverul de la distanță înainte de a testa autentificarea fără parolă.

Ce porturi de firewall ar trebui să păstrez deschise pentru o aplicație web tipică?

O configurare minimă permite traficul de intrare pe portul 22 pentru SSH, 80 pentru HTTP și 443 pentru HTTPS. Dacă rulezi o bază de date pe același gazdă, păstreaz-o legată de 127.0.0.1 și nu expune portul public. Folosește ufw allow 22/tcp && ufw allow 80/tcp && ufw allow 443/tcp și apoi activează firewall-ul cu ufw enable.

Pot folosi Carpathron Remote pentru a gestiona serverul meu Linux de la distanță?

Carpathron Remote nu face parte din setul de instrumente documentat public al Qubitpage, iar oferta oficială de gestionare de la distanță a companiei este CarphaCom, care rulează pe NVIDIA Isaac Sim și Google Gemini pentru cazuri de utilizare în robotică. Pentru administrarea standard a Linuxului, bazează-te pe SSH, Ansible sau pe o soluție terță verificată, în loc de un client Carpathron nedocumentat.

Cât de des ar trebui să rulez actualizări de securitate pe un server de producție?

Aplică actualizările critice de kernel și pachete în termen de 24 de ore de la lansare; programează actualizări complete regulate cel puțin o dată pe săptămână. Automatizează procesul cu unattended-upgrades pentru distribuțiile bazate pe Debian sau cu dnf-automatic pentru Fedora/RHEL. Testează întotdeauna actualizările majore de versiune într-un mediu de testare înainte de a le aplica în producție.

Care este cea mai simplă modalitate de a face backup pentru fișierele și baza de date a aplicației web?

Folosește rsync -a --delete /var/www/html/ backup_user@backup_host:/backups/web/ pentru a sincroniza rădăcina documentelor cu un server de stocare la distanță. Pentru bază de date, extrage-o cu mysqldump -u root -p mydb > /tmp/mydb.sql și copiază dump-ul pe același gazdă de backup, opțional comprimat cu gzip. Programează ambele comenzi cu cron pentru a rula pe noapte și verifică backup-urile regulat.

Gânduri finale despre securizarea primului tău VPS Linux

După ce ai întărit rețeaua, ai criptat stocarea și ai securizat sistemul de operare, restul muncii este rutinară, dar esențială. Ține kernelul și toate pachetele actualizate cu apt-get update && apt-get upgrade -y (sau echivalentul pentru distribuția ta) și automatizează această etapă cu un job cron. Revizuiește regulat accesul SSH, rotește cheile și dezactivează autentificarea prin parolă pentru a elimina vectorii de atac prin forță brută.

Instalează un sistem de detectare a intruziunilor bazat pe gazdă, cum ar fi auditd sau ossec, și configurează trimiterea jurnalelor către un server syslog remote pentru păstrarea integrității. Scanările periodice de vulnerabilitate cu instrumente precum nmap sau OpenVAS vor dezvălui devieri de la configurația de bază.

În final, documentează fiecare schimbare, salvează fișierele de configurare și testează procedurile de recuperare lunar. O abordare disciplinată a gestionării patch-urilor, monitorizării și backup-ului asigură că VPS-ul rămâne o bază fiabilă pentru orice aplicație pe care o implementezi.

Pregătit să accelerezi proiectele tale cloud securizate? Explorează cum poate ajuta Qubitpage.

Scris de

Mircea S. Rusu

Fondator și inginer Qubitpage. Inginer de suport din 2005, dezvoltator CMS, fost consultant tehnic la Spitalul Niguarda Ca' Granda din Milano și autor al cărții „The Architect”.

Mai multe despre autor →