Hardening-ul nu înseamnă să activezi toate restricțiile găsite într-un checklist și să speri că aplicația continuă să funcționeze. Scopul este să reduci suprafața de atac păstrând serviciile necesare: SSH pentru administrare, Nginx sau Apache, PHP-FPM, baza de date, backup-ul și monitorizarea.
Ubuntu recomandă o abordare pe mai multe niveluri, fără a depinde de un singur mecanism de protecție. Începe cu inventarierea sistemului, apoi aplică modificările pe rând și verifică funcționarea după fiecare etapă.
Creează un punct de revenire
Înainte să modifici firewall-ul, SSH sau serviciile, creează un snapshot al VPS-ului ori un backup verificat. Salvează separat configurațiile importante:
sudo tar -czf /root/config-before-hardening.tar.gz \
/etc/ssh \
/etc/nginx \
/etc/ufw \
/etc/apt
Ține deschisă sesiunea SSH curentă pe durata schimbărilor. Dacă o regulă nouă refuză conexiunea, sesiunea existentă îți poate permite să revii la configurația anterioară.
Inventariază serviciile și porturile
Mai întâi stabilește ce trebuie să ruleze pe server:
systemctl list-units --type=service --state=running
systemctl list-unit-files --type=service --state=enabled
sudo ss -lntup
Pentru un server web obișnuit, porturile publice pot fi:
22/tcp SSH
80/tcp HTTP
443/tcp HTTPS
O bază de date locală ar trebui, în mod normal, să asculte pe 127.0.0.1, nu pe 0.0.0.0. Verifică fiecare port necunoscut înainte să oprești procesul:
sudo lsof -nP -iTCP:PORT -sTCP:LISTEN
systemctl status nume-serviciu
Păstrarea unui număr minim de pachete și servicii reduce suprafața de atac, însă eliminarea trebuie făcută numai după confirmarea rolului lor.
Instalează actualizările înainte de alte modificări
Rulează:
sudo apt update
sudo apt upgrade
sudo dpkg --audit
systemctl --failed
Dacă apar erori APT, pachete neconfigurate sau servicii eșuate, rezolvă-le înainte să continui. Pentru actualizările automate de securitate:
sudo apt install unattended-upgrades
sudo unattended-upgrade --dry-run --debug
Ubuntu Server activează în mod normal instalarea zilnică a actualizărilor de securitate, dar configurația și logurile trebuie verificate în /etc/apt/apt.conf.d/ și /var/log/unattended-upgrades/.
Configurează UFW fără să pierzi accesul
UFW este disponibil pe Ubuntu, dar nu este neapărat activ. Înainte să îl pornești, adaugă toate serviciile legitime.
Pentru un server web:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw show added
sudo ufw enable
sudo ufw status verbose
Testează imediat SSH, site-ul și HTTPS dintr-un alt terminal. Dacă ai un IP fix de administrare, poți restrânge ulterior SSH:
sudo ufw allow from IP_ADMIN to any port 22 proto tcp
Adaugă și testează regula limitată înainte să elimini regula generală OpenSSH. Verifică separat firewall-ul furnizorului VPS, deoarece regulile cloud și UFW funcționează independent. Ubuntu documentează folosirea UFW pentru controlul traficului și limitarea accesului după adresă și port.
Întărește SSH în ordinea corectă
Generează cheia pe calculatorul de administrare:
ssh-keygen -t ed25519 -C "administrare-server"
ssh-copy-id utilizator@IP_SERVER
Testează autentificarea într-un terminal nou. Abia apoi creează:
sudo nano /etc/ssh/sshd_config.d/00-hardening.conf
Adaugă:
PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
Verifică înainte de aplicare:
sudo sshd -t
sudo sshd -T | grep -E \
'pubkeyauthentication|passwordauthentication|permitrootlogin'
sudo systemctl reload ssh
Ubuntu permite configurări modulare în sshd_config.d și subliniază importanța testării configurației înainte de reîncărcarea serviciului.
Verifică AppArmor, nu îl dezactiva
AppArmor este instalat și încărcat implicit pe Ubuntu. Verifică:
sudo aa-status
sudo journalctl -k --since today |
grep 'apparmor="DENIED"'
AppArmor limitează capabilitățile aplicațiilor prin profiluri individuale. Dacă un serviciu legitim este blocat, analizează evenimentul și ajustează profilul; nu dezactiva protecția la nivelul întregului sistem.
Fă verificarea finală
După fiecare etapă și din nou la final:
systemctl --failed
sudo ss -lntup
sudo ufw status verbose
sudo aa-status
sudo journalctl -p err -b --no-pager
curl -I http://localhost
Testează autentificarea SSH, site-ul, aplicația, baza de date, backup-ul și monitorizarea. Nu aplica automat un profil CIS sau DISA-STIG peste un server existent cu servicii deja configurate: Canonical avertizează că scripturile complete de conformitate pot modifica setări esențiale și pot întrerupe aplicații.
Hardening-ul sigur se face incremental: modificare mică, test, documentare și posibilitate de rollback. Astfel reduci riscurile fără să transformi protecția serverului într-o cauză de downtime.
Surse folosite
Ubuntu Server Documentation — Introduction to security
Ubuntu Server Documentation — Firewall și UFW
Ubuntu Server Documentation — OpenSSH Server
Ubuntu Server Documentation — Automatic updates
Ubuntu Server Documentation — AppArmor
Ubuntu Security Documentation — Unnecessary packages și Ubuntu Security Guide

















































