Răspuns scurt
- Configurezi firewall-ul pe un VPS cu politica implicită de refuz pentru intrare și de permitere pentru ieșire, apoi deschizi explicit doar ce e necesar.
- Spre internet lași deschise doar porturile 22 pentru SSH, 80 și 443 pentru web; orice altceva se deschide punctual, cu sursă restrânsă.
- Baza de date, Redis și panourile de administrare ascultă doar pe localhost sau pe rețeaua privată, niciodată cu allow global.
- Pui rate limiting pe SSH cu ufw limit 22/tcp și verifici cu ss -tulpn ce ascultă efectiv pe server.
- Politica implicită
- deny incoming, allow outgoing
- Porturi deschise spre internet
- 22/tcp, 80/tcp, 443/tcp
- Baza de date
- bind pe 127.0.0.1 sau rețea privată, acces remote prin tunel SSH
De ce începi cu refuz implicit
Când politica e „permite tot, blochează ce știu”, fiecare serviciu nou instalat devine automat public: un Redis fără parolă, un MongoDB cu autentificare oprită, un panou pe 8080. Scanerele le găsesc în minute. Cu „refuză tot, permite ce știu” greșeala se inversează: un serviciu uitat rămâne invizibil până când îl deschizi conștient. UFW face asta cu două comenzi și ține regulile lizibile; sub el rulează nftables sau iptables.
Ce faci cu baza de date și cu serviciile interne
MySQL pe 3306 și PostgreSQL pe 5432 nu au ce căuta expuse pe internet, nici cu parolă. Le configurezi să asculte pe 127.0.0.1 sau pe adresa din rețeaua privată, iar accesul de la distanță îl faci prin tunel SSH sau VPN. Dacă aplicația rulează pe alt server, deschizi portul doar pentru IP-ul acelui server. Docker merită atenție: publicarea unui port cu -p ocolește regulile UFW, deci legi porturile la 127.0.0.1 sau la interfața privată.
Ce spune legislația din România
O bază de date cu date personale accesibilă de pe internet e exact situația pe care art. 32 GDPR o consideră lipsă de măsuri tehnice adecvate, iar ANSPDCP a sancționat astfel de cazuri în România. Pentru entitățile înregistrate la DNSC sub OUG 155/2024, segmentarea rețelei și controlul accesului intră în măsurile de gestionare a riscului prevăzute de art. 11 din OUG 155/2024. Un firewall documentat, cu reguli explicabile, e o probă simplă în orice audit.
Porturi frecvente pe un VPS și expunerea recomandată| Port / serviciu | Expunere spre internet | Cum îl accesezi | Regulă UFW |
|---|
| 22 SSH | Da, cu rate limiting și sursă restrânsă | Chei SSH, VPN | ufw limit 22/tcp |
|---|
| 80 HTTP | Da, pentru redirect și validare ACME | Public | ufw allow 80/tcp |
|---|
| 443 HTTPS | Da | Public | ufw allow 443/tcp |
|---|
| 3306 MySQL / 5432 PostgreSQL | Nu | localhost, tunel SSH, rețea privată | ufw allow from 10.0.0.5 to any port 5432 |
|---|
| 6379 Redis | Nu | localhost, rețea privată | fără regulă publică |
|---|
Comenzi și configurări
UFW: politică implicită și porturile esențialesudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw limit 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose
Baza de date doar pentru serverul de aplicațiesudo ufw allow from 10.0.0.5 to any port 5432 proto tcp
Verifici ce ascultă efectivss -tulpn | grep LISTEN
Exemple practice
SaaS din Iași cu PostgreSQL pe același VPS
Un coleg schimbase listen_addresses pe '*' pentru a se conecta de acasă și uitase să revină. Baza era accesibilă de oriunde, protejată doar de parolă. Firewall-ul cu refuz implicit a acoperit greșeala, iar accesul de la distanță s-a mutat pe tunel SSH.
Magazin online din Cluj cu Redis pentru sesiuni
Redis publicat prin Docker cu -p 6379:6379 a ocolit UFW și a ajuns pe internet fără parolă. A fost găsit de un scaner în aceeași zi, cu sesiunile clienților citibile. Legarea pe 127.0.0.1 și o parolă au închis expunerea.
Greșeli frecvente
- Instalezi UFW dar nu îl activezi, sau îl activezi cu politica implicită allow incoming.
- Deschizi 3306 sau 5432 „pentru orice sursă” ca să te conectezi cu un client desktop.
- Publici porturi de Docker cu -p fără adresă și crezi că UFW le acoperă.
- Deschizi porturi pentru depanare și nu le mai închizi niciodată.
Cum te ajută 4hosting
- Serviciul Firewall & Network Isolation proiectează regulile și segmentarea rețelei, în orele incluse: 1–8 lunar la VPS, 10 la dedicate și GPU, cerute din panoul de client, secțiunea „Servicii DevOps”.
- Serviciul VPN WireGuard mută panourile interne și bazele de date în afara internetului public.
- Protecția DDoS L3/L4 e inclusă la nivel de rețea; firewall-ul tău decide doar ce servicii sunt vizibile.
Întrebări conexe
UFW, nftables sau iptables?
UFW e o interfață peste nftables sau iptables, suficientă pentru un VPS cu câteva servicii, și ține regulile lizibile. Treci la nftables direct când ai nevoie de seturi mari de adrese, reguli pe interfețe multiple sau performanță la trafic mare. Nu le amesteci pe aceeași mașină.
Pot deschide portul bazei de date pentru IP-ul meu de acasă?
Poți, cu ufw allow from adresa ta, dar IP-ul de acasă se schimbă și regula rămâne. Mai sigur e tunelul SSH sau VPN-ul: baza de date rămâne pe localhost, iar tu te conectezi prin canalul criptat, cu aceeași cheie pe care o folosești deja pentru SSH.
Am firewall la furnizor, mai am nevoie de unul pe server?
Da. Firewall-ul din panoul furnizorului filtrează înainte de mașină și e util ca prim strat. Cel de pe server știe ce ascultă efectiv, protejează și traficul din rețeaua privată și rămâne cu tine dacă muți serverul. Le configurezi coerent, cu aceeași listă de porturi.