Răspuns scurt
- Configurezi firewall-ul pe un VPS setând politica implicită pe respingere pentru traficul de intrare și deschizând explicit doar porturile serviciilor publice: 22 pentru SSH, 80 și 443 pentru web.
- Baza de date, Redis și panourile de administrare ascultă doar pe localhost sau pe rețeaua privată, niciodată pe adresa publică.
- Folosește ufw limit pe portul SSH pentru a limita încercările repetate de conectare.
- Restrânge porturile de administrare la adresele biroului sau la un VPN, nu la tot internetul.
- Verifică din exterior, cu un scan de porturi de pe altă mașină, că regulile fac ce crezi că fac.
- Politica de pornire
- deny incoming, allow outgoing
- Porturi publice pe un server web
- 80 și 443; 22 restricționat pe sursă
- Baza de date
- 3306 sau 5432 doar pe 127.0.0.1 sau rețea privată
- Limitare integrată în ufw
- ufw limit: 6 conexiuni în 30 de secunde
Totul închis, apoi deschizi cu un motiv scris
Regula de bază este simplă: firewall-ul respinge tot ce vine din exterior, iar tu adaugi excepții pentru fiecare serviciu pe care vrei să îl ofere serverul. Fiecare excepție răspunde la trei întrebări: ce serviciu, pentru cine și până când. Portul 443 este pentru toată lumea. Portul 22 este pentru echipa ta, deci limitezi sursa. Un port de monitorizare este pentru serverul de metrici, deci îl deschizi doar către adresa lui. Ce nu ai notat nu are ce căuta deschis.
Baza de date nu se expune pe internet
Cea mai frecventă greșeală pe VPS-urile firmelor mici este MariaDB sau PostgreSQL care ascultă pe 0.0.0.0 fiindcă un dezvoltator voia să se conecteze de acasă. Scanerele găsesc portul în ore, apoi urmează încercări de autentificare sau exploatarea unei versiuni vechi. Lasă baza de date pe 127.0.0.1 și conectează-te prin tunel SSH sau VPN. Dacă aplicația și baza rulează pe servere diferite, folosește rețeaua privată a furnizorului și permite doar adresa serverului de aplicație.
Ce cer clienții din UE: dovada perimetrului
Când o firmă din Moldova găzduiește date pentru un client din UE, anexa de securitate a contractului și acordul de prelucrare conform articolului 28 GDPR cer de obicei o descriere a măsurilor de rețea. Un export al regulilor de firewall, cu data ultimei revizuiri, și un scan extern care arată doar porturile 80 și 443 sunt exact dovezile așteptate. La nivel local, Legea nr. 48/2023 cere furnizorilor din sectoarele acoperite o gestionare documentată a riscurilor, iar perimetrul de rețea este primul capitol al unei astfel de documentații.
Porturi uzuale pe un VPS de producție și cui le deschizi| Port | Serviciu | Deschis către | Observație |
|---|
| 22/tcp | SSH | adresele echipei sau VPN | ufw limit, fără parole |
|---|
| 80/tcp | HTTP | toată lumea | doar redirect către 443 |
|---|
| 443/tcp | HTTPS | toată lumea | singurul serviciu real public |
|---|
| 3306 / 5432 | MariaDB / PostgreSQL | 127.0.0.1 sau rețea privată | niciodată public |
|---|
| 6379 | Redis | 127.0.0.1 | fără parolă implicit, deci obligatoriu local |
|---|
Comenzi și configurări
Configurare ufw de la zero pe un server webufw default deny incoming
ufw default allow outgoing
ufw limit 22/tcp comment 'SSH echipa'
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
ufw status verbose
Acces la baza de date doar dintr-o rețea privatăufw allow from 10.20.0.0/24 to any port 5432 proto tcp comment 'app -> postgres'
# și în postgresql.conf:
# listen_addresses = 'localhost,10.20.0.5'
Verificare din exterior, de pe altă mașinănmap -Pn -p- --open exemplu.md
Exemple din practică
Agenție IT din Chișinău cu servere de staging pentru clienți
Fiecare mediu de staging avea portul bazei de date deschis „temporar”. Un scan extern cerut de un client a găsit șase instanțe PostgreSQL accesibile. Toate au trecut pe localhost, cu acces prin tunel SSH și un singur bastion.
Fintech cu server de raportare către BNM
Panoul de administrare era accesibil pe portul 8443 din tot internetul, protejat doar de parolă. Acum portul se deschide doar pentru rețeaua VPN a firmei, iar auditorul băncii partenere a bifat cerința fără discuții.
Greșeli frecvente
- Activezi firewall-ul fără să permiți întâi SSH și rămâi în afara propriului server.
- Deschizi portul bazei de date pentru „un test rapid” și uiți de el luni întregi.
- Permiți portul 22 din orice adresă când echipa lucrează din două birouri și un VPN.
- Nu verifici regulile din exterior și descoperi la audit că Docker a ocolit ufw.
Cum te ajută 4hosting
- VPS-urile și serverele dedicate vin cu acces root, deci firewall-ul se configurează în primele minute, înainte de orice aplicație.
- Serviciul Firewall & Network Isolation separă rețelele de aplicație, bază de date și administrare și documentează regulile pentru auditul clientului tău.
- Orele de DevOps incluse acoperă revizuirea regulilor și un scan extern periodic; cererea se face din panoul de client.
Întrebări conexe
Docker ocolește ufw? Ce fac?
Da: Docker scrie propriile reguli iptables pentru porturile publicate, înaintea celor din ufw. Publică porturile doar pe 127.0.0.1 (de exemplu -p 127.0.0.1:5432:5432) și pune un proxy în față, sau configurează lanțul DOCKER-USER pentru a filtra traficul înainte să ajungă la containere.
ufw sau nftables direct?
Pentru un VPS cu câteva servicii, ufw este suficient și greu de configurat greșit. nftables direct merită când ai reguli complexe, mai multe interfețe sau vrei un fișier de reguli versionat în git. Ambele fac același lucru în kernel.