// Blog

Cum configurezi și securizezi un VPS Linux cu iptables: ghid complet — CLIQHOST

10 noiembrie 2026 · by Alex M.

Cum configurezi și securizezi un VPS Linux cu iptables: ghid complet — CLIQHOST

În lumea administrării serverelor Linux, iptables rămâne unul dintre cele mai puternice și flexibile instrumente de firewall disponibile. Deși soluții mai moderne precum UFW sau firewalld oferă o interfață mai prietenoasă, înțelegerea iptables îți oferă control granular complet asupra traficului de rețea — lucru esențial pe orice VPS NVMe sau server dedicat expus pe internet.

În acest ghid vei învăța cum să instalezi, configurezi și gestionezi iptables pe un VPS cu Ubuntu sau Debian, pornind de la zero și ajungând la un set robust de reguli de securitate.


Ce este iptables și cum funcționează

iptables este un utilitar de spațiu utilizator care permite administratorilor să configureze regulile de filtrare a pachetelor IP în kernel-ul Linux (via modulul Netfilter). Funcționează pe baza unor tabele, lanțuri și reguli:

  • Tabele: filter (implicit), nat, mangle, raw
  • Lanțuri în tabela filter: INPUT (trafic spre server), OUTPUT (trafic de la server), FORWARD (trafic redirecționat)
  • Acțiuni (targets): ACCEPT, DROP, REJECT, LOG

Fiecare pachet de rețea parcurge regulile în ordine; prima regulă potrivită decide soarta pachetului.


Cerințe preliminare

Înainte de a începe, asigură-te că ai:

  • Un VPS SSD sau VPS NVMe cu Ubuntu 20.04/22.04 sau Debian 11/12
  • Acces root sau utilizator cu privilegii sudo
  • O conexiune SSH activă (nu închide sesiunea curentă până nu testezi regulile!)
  • Opțional: o a doua sesiune SSH deschisă ca măsură de siguranță

Pasul 1: Verificarea stării curente a iptables

Pe majoritatea distribuțiilor, iptables vine preinstalat. Verifică starea curentă:

sudo iptables -L -v -n

Dacă nu este instalat:

# Ubuntu/Debian
sudo apt update && sudo apt install iptables -y

Pentru a vizualiza și regulile pentru IPv6:

sudo ip6tables -L -v -n

Pasul 2: Strategia de bază — politici implicite

Înainte de a adăuga reguli, stabilești politicile implicite ale lanțurilor. Există două abordări:

  1. Permisivă (implicit ACCEPT) — blochezi explicit ce nu vrei
  2. Restrictivă (implicit DROP) — permiți explicit doar ce ai nevoie ✅ (recomandat pentru producție)

⚠️ Atenție critică: Nu seta politica INPUT pe DROP înainte de a adăuga regula care permite SSH-ul! Riști să te blochezi din server.

Ordinea corectă a comenzilor:

# 1. Permite traficul SSH ÎNAINTE de orice altceva
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 2. Permite loopback (esențial pentru funcționarea sistemului)
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT

# 3. Permite conexiunile deja stabilite
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 4. Acum poți seta politica DROP în siguranță
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT

Pasul 3: Reguli esențiale pentru un server web

Dacă rulezi un server web (Apache, Nginx) pe hosting cPanel sau pe VPS, adaugă:

# HTTP
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# HTTPS
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# DNS (dacă serverul face rezoluție DNS)
sudo iptables -A INPUT -p udp --dport 53 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 53 -j ACCEPT

# ICMP (ping) — util pentru monitoring
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

Pentru servere de email care au nevoie și de certificate SSL:

# SMTP, SMTPS, IMAP, IMAPS, POP3S
sudo iptables -A INPUT -p tcp -m multiport --dports 25,465,587,143,993,110,995 -j ACCEPT

Pasul 4: Protecție împotriva atacurilor comune

4.1 Protecție anti-DDoS de bază cu limitarea ratei

# Limitează conexiunile noi SSH la 5 pe minut per IP
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW \
  -m recent --set --name SSH
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW \
  -m recent --update --seconds 60 --hitcount 5 --name SSH -j DROP

# Limitează conexiunile HTTP noi (anti-DoS)
sudo iptables -A INPUT -p tcp --dport 80 -m limit \
  --limit 25/minute --limit-burst 100 -j ACCEPT

4.2 Blocarea pachetelor invalide (stealth scan protection)

# Blochează pachete cu stare INVALID
sudo iptables -A INPUT -m state --state INVALID -j DROP

# Protecție împotriva SYN flood
sudo iptables -A INPUT -p tcp --syn -m limit \
  --limit 1/s --limit-burst 4 -j ACCEPT

# Blochează scanarea porturilor cu Null scan
sudo iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP

# Blochează XMAS scan
sudo iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

4.3 Protecție împotriva IP spoofing

# Blochează adrese private venind din exterior (pe interfața eth0)
sudo iptables -A INPUT -i eth0 -s 10.0.0.0/8 -j DROP
sudo iptables -A INPUT -i eth0 -s 172.16.0.0/12 -j DROP
sudo iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j DROP
sudo iptables -A INPUT -i eth0 -s 127.0.0.0/8 -j DROP

Verifică numele interfeței tale de rețea cu ip addr show și înlocuiește eth0 dacă e necesar (ex. ens3, enp1s0).


Pasul 5: Blocarea IP-urilor specifice

Dacă observi atacuri de la anumite IP-uri (vizibile în log-uri sau cu netstat), le poți bloca direct:

# Blochează un IP specific
sudo iptables -A INPUT -s 203.0.113.100 -j DROP

# Blochează un întreg subnet
sudo iptables -A INPUT -s 203.0.113.0/24 -j DROP

# Deblochează un IP
sudo iptables -D INPUT -s 203.0.113.100 -j DROP

Pe un server dedicat managed, echipa de administrare poate configura liste de blocare automate și mai avansate.


Pasul 6: Logging-ul traficului blocat

Pentru a monitoriza ce trafic este blocat (util în depanare și audit de securitate):

# Adaugă o regulă de logging ÎNAINTE de DROP implicit
sudo iptables -A INPUT -j LOG --log-prefix "[IPTABLES DROP] " --log-level 4

Log-urile apar în /var/log/syslog sau /var/log/kern.log:

sudo tail -f /var/log/kern.log | grep "IPTABLES DROP"

⚠️ Logging-ul intensiv poate umple discul rapid. Folosește modulul limit pentru a restricționa numărul de log-uri:

sudo iptables -A INPUT -m limit --limit 5/min -j LOG \
  --log-prefix "[IPTABLES DROP] " --log-level 4

Pasul 7: Salvarea și restaurarea regulilor iptables

Regulile iptables sunt volatile — se șterg la restart. Pentru persistență:

Ubuntu/Debian cu iptables-persistent:

sudo apt install iptables-persistent -y

# Salvează regulile curente
sudo netfilter-persistent save

# Sau manual:
sudo iptables-save > /etc/iptables/rules.v4
sudo ip6tables-save > /etc/iptables/rules.v6

Restaurare manuală:

sudo iptables-restore < /etc/iptables/rules.v4

Verificarea că regulile se aplică la boot:

sudo systemctl enable netfilter-persistent
sudo systemctl status netfilter-persistent

Pasul 8: Gestionarea și vizualizarea regulilor

# Listează regulile cu numerotare (util pentru ștergere)
sudo iptables -L INPUT --line-numbers -v -n

# Șterge o regulă după număr (ex. regula 3 din INPUT)
sudo iptables -D INPUT 3

# Inserează o regulă pe o poziție specifică (ex. poziția 1)
sudo iptables -I INPUT 1 -p tcp --dport 8080 -j ACCEPT

# Golește toate regulile (ATENȚIE — te poate bloca!)
sudo iptables -F

# Resetează politicile la ACCEPT înainte de golire
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -F

Pasul 9: Script complet de configurare iptables

Iată un script complet și ordonat pe care îl poți rula pe un server nou:

#!/bin/bash
# firewall-setup.sh — Script iptables CLIQHOST

# Resetare
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X

# Politici implicite
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Loopback
iptables -A INPUT -i lo -j ACCEPT

# Conexiuni stabilite
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Pachete invalide
iptables -A INPUT -m state --state INVALID -j DROP

# SSH cu rate limiting
iptables -A INPUT -p tcp --dport 22 -m state --state NEW \
  -m recent --set --name SSH
iptables -A INPUT -p tcp --dport 22 -m state --state NEW \
  -m recent --update --seconds 60 --hitcount 5 --name SSH -j DROP
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# Web
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# ICMP
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

# Anti-spoofing
iptables -A INPUT -i eth0 -s 10.0.0.0/8 -j DROP
iptables -A INPUT -i eth0 -s 172.16.0.0/12 -j DROP
iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j DROP

# Logging
iptables -A INPUT -m limit --limit 5/min -j LOG \
  --log-prefix "[IPTABLES DROP] " --log-level 4

echo "Firewall configurat cu succes!"

Salvează scriptul și execută-l:

chmod +x firewall-setup.sh
sudo ./firewall-setup.sh
sudo netfilter-persistent save

Pasul 10: Testarea configurației

După aplicarea regulilor, testează din exterior:

# Testează conectivitatea SSH
ssh -v utilizator@IP_SERVER

# Verifică porturile deschise cu nmap (de pe o altă mașină)
nmap -sS -p 22,80,443 IP_SERVER

# Verifică regulile active
sudo iptables -L -v -n

Dacă ai configurat și administrare pentru servicii de management server, poți solicita o verificare a securității din exterior.


iptables vs. UFW vs. firewalld — când folosești ce?

Criteriu iptables UFW firewalld
Complexitate Ridicată Scăzută Medie
Control granular Maxim Limitat Mediu
Ubuntu/Debian ✅ ✅ Opțional
CentOS/RHEL ✅ Opțional ✅
Scripturi automate ✅ Parțial ✅

Pentru servere de producție complexe (de exemplu un server dedicat Intel cu mai multe servicii), iptables oferă cel mai mare control. UFW este mai potrivit pentru VPS-uri simple.


Erori frecvente și cum le eviți

  1. M-am blocat din server — Soluție: contactează suportul CLIQHOST pentru acces prin consolă VNC/IPMI sau folosește panoul de control VPS.
  2. Regulile nu persistă după reboot — Soluție: instalează iptables-persistent și rulează netfilter-persistent save.
  3. Am uitat să permit SSH înainte de DROP — Soluție: adaugă ÎNTOTDEAUNA regula SSH prima.
  4. Interfața de rețea greșită — Verifică cu ip addr și folosește numele corect (ens3, eth0 etc.).
  5. Regulile se aplică în ordine greșită — Folosește -I (insert) în loc de -A (append) pentru reguli prioritare.

Concluzie

iptables este un instrument indispensabil pentru orice administrator de server Linux serios. Deși are o curbă de învățare mai abruptă față de UFW, îți oferă controlul complet de care ai nevoie pentru a securiza un VPS Linux sau un server dedicat în fața amenințărilor moderne.

Comandă iptables cu metodă: stabilește politicile, permite explicit serviciile necesare, blochează scanările și atacurile cunoscute, și salvează regulile pentru persistență.

Dacă preferi să te concentrezi pe afacerea ta și să lași securitatea serverului pe mâini de profesioniști, echipa CLIQHOST oferă servicii complete de administrare server — de la configurarea firewall-ului până la monitorizare continuă. Contactează-ne pentru o consultație gratuită.

SHARE
// what clients say

What Our Clients Say

Real reviews from customers who trust CLIQHOST for performance, reliability and expert technical support.

★★★★★

"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."

AM
Andrei M.
eCommerce owner · Chișinău
★★★★★

"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."

EV
Elena V.
Web agency · Bălți
★★★★★

"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."

DC
Dmitri C.
SaaS founder · Chișinău