// SSD VPS

Cum instalezi și configurezi Fail2Ban pe un VPS Linux: ghid complet pentru securitate — CLIQHOST

06 octombrie 2026 · by Alex M.

Cum instalezi și configurezi Fail2Ban pe un VPS Linux: ghid complet pentru securitate — CLIQHOST

Dacă ai un VPS SSD sau un VPS NVMe expus pe internet, una dintre primele amenințări cu care te vei confrunta sunt atacurile de tip brute-force: roboți care încearcă mii de combinații user/parolă pe SSH, panouri de administrare sau formulare web. Fail2Ban este soluția clasică, lightweight și extrem de eficientă care monitorizează fișierele de log și blochează automat IP-urile suspecte la nivel de firewall.

În acest ghid vei afla exact cum să instalezi, configurezi și personalizezi Fail2Ban pe Ubuntu 22.04 / Debian 12, cu exemple practice pentru SSH, Nginx și alte servicii.


Ce este Fail2Ban și cum funcționează?

Fail2Ban este un daemon scris în Python care scanează fișierele de log ale serviciilor (SSH, Apache, Nginx, FTP, email etc.) și detectează tipare de autentificare eșuată. Când numărul de erori depășește un prag configurabil într-un interval de timp definit, Fail2Ban adaugă automat o regulă în iptables (sau nftables/ufw) care blochează IP-ul atacatorului pentru o perioadă setată.

Avantaje cheie:

  • Rulează în background, fără intervenție manuală
  • Configurabil per serviciu (SSH, FTP, HTTP, mail etc.)
  • Suportă acțiuni personalizate (ban, email de alertă, webhook)
  • Consum minim de resurse — ideal pentru un VPS 1 vCPU

Cerințe preliminare

Înainte să începi, asigură-te că ai:

  • Un VPS cu Ubuntu 22.04 sau Debian 12 (ghidul se aplică pe ambele)
  • Acces root sau utilizator cu privilegii sudo
  • iptables sau ufw instalat
  • Conexiune SSH activă

Dacă nu ai deja un server configurat, verifică ofertele de VPS NVMe de la CLIQHOST — ideal pentru proiecte care necesită securitate și viteză.


Pasul 1: Actualizează sistemul și instalează Fail2Ban

Întotdeauna începe cu un update al pachetelor:

sudo apt update && sudo apt upgrade -y

Installează Fail2Ban:

sudo apt install fail2ban -y

Verifică că serviciul rulează:

sudo systemctl status fail2ban

Dacă serviciul nu pornește automat:

sudo systemctl enable --now fail2ban

Pasul 2: Structura fișierelor de configurare

Fail2Ban are o arhitectură de configurare flexibilă:

  • /etc/fail2ban/fail2ban.conf — configurare globală a daemon-ului
  • /etc/fail2ban/jail.conf — regulile implicite pentru toate „jail"-urile
  • /etc/fail2ban/jail.local — fișierul TĂU de suprascrie; NICIODATĂ nu modifica direct jail.conf!
  • /etc/fail2ban/filter.d/ — filtre predefinite (regex pentru log-uri)
  • /etc/fail2ban/action.d/ — acțiuni predefinite (iptables, email etc.)

Regula de aur: fă toate modificările în fișiere .local — la update-urile pachetului, fișierele .conf pot fi suprascrise.

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Pasul 3: Configurarea de bază în jail.local

Deschide fișierul:

sudo nano /etc/fail2ban/jail.local

Localizează secțiunea [DEFAULT] și ajustează valorile:

[DEFAULT]
# IP-uri sau rețele care nu vor fi niciodată blocate
ignoreip = 127.0.0.1/8 ::1 YOUR_HOME_IP

# Durata ban-ului (secunde). 3600 = 1 oră
bantime  = 3600

# Fereastra de timp în care se numără tentativele (secunde)
findtime = 600

# Numărul maxim de tentative eșuate înainte de ban
maxretry = 5

# Backend pentru citirea log-urilor
backend = auto

# Acțiunea implicită: ban cu iptables
banaction = iptables-multiport

Important: Adaugă IP-ul tău de acasă sau de birou în ignoreip pentru a nu te bloca accidental!


Pasul 4: Activarea jail-ului SSH

SSH este prima țintă a oricărui bot. Activează protecția:

[sshd]
enabled  = true
port     = ssh
logpath  = %(sshd_log)s
backend  = %(sshd_backend)s
maxretry = 3
bantime  = 86400

Aici am setat bantime = 86400 (24 de ore) și maxretry = 3 — mai strict decât valorile globale. Adaptează în funcție de nevoile tale.

Dacă ai schimbat portul SSH (recomandare de securitate):

[sshd]
enabled = true
port    = 2222
logpath = %(sshd_log)s
maxretry = 3
bantime  = 86400

Aplicată configurarea:

sudo systemctl reload fail2ban

Pasul 5: Protejarea Nginx cu Fail2Ban

Dacă rulezi Nginx pe VPS-ul tău, poți proteja atât autentificările HTTP cât și cererile rău-intenționate.

5.1 Blocare tentative de autentificare HTTP Basic

[nginx-http-auth]
enabled  = true
port     = http,https
logpath  = /var/log/nginx/error.log
maxretry = 5
bantime  = 3600

5.2 Blocare scanare agresivă (bad bots / scanners)

Creează un filtru personalizat:

sudo nano /etc/fail2ban/filter.d/nginx-badbots.conf
[Definition]
failregex = ^<HOST> -.*"(GET|POST|HEAD).*HTTP.*" (400|444|403|408) .*$
ignoreregex =

Adaugă jail-ul în jail.local:

[nginx-badbots]
enabled  = true
port     = http,https
filter   = nginx-badbots
logpath  = /var/log/nginx/access.log
maxretry = 10
bantime  = 7200
findtime = 300

Pasul 6: Protejarea Postfix / serviciilor de email

Servere de email sunt frecvent atacate. Activează jail-urile pentru Postfix și Dovecot:

[postfix]
enabled  = true
port     = smtp,465,submission
logpath  = %(postfix_log)s
maxretry = 5

[dovecot]
enabled  = true
port     = pop3,pop3s,imap,imaps,submission,465,sieve
logpath  = %(dovecot_log)s
maxretry = 5
bantime  = 3600

Pentru configurări avansate de email sau dacă preferi o soluție gestionată, explorează serviciile de administrare servere CLIQHOST.


Pasul 7: Comenzi utile pentru administrarea Fail2Ban

Odată configurat, vei folosi des aceste comenzi:

Verifică starea tuturor jail-urilor

sudo fail2ban-client status

Verifică starea unui jail specific

sudo fail2ban-client status sshd

Output tipic:

Status for the jail: sshd
|- Filter
|  |- Currently failed: 2
|  |- Total failed: 47
|  `- Journal matches: ...
`- Actions
   |- Currently banned: 1
   |- Total banned: 8
   `- Banned IP list: 198.51.100.42

Deblochează manual un IP

sudo fail2ban-client set sshd unbanip 198.51.100.42

Blochează manual un IP

sudo fail2ban-client set sshd banip 203.0.113.15

Testează un filtru înainte de a-l activa

sudo fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf

Pasul 8: Configurarea notificărilor prin email

Fail2Ban poate trimite email la fiecare ban — util pentru monitorizare:

[DEFAULT]
destemail = [email protected]
sender    = [email protected]
mta       = sendmail
action    = %(action_mwl)s

action_mwl = ban + email cu log-urile relevante (whois + log).

Asigură-te că sendmail sau un alt MTA este instalat pe server. Alternativ, poți folosi un SMTP extern.


Pasul 9: Fail2Ban cu UFW în loc de iptables

Dacă folosești UFW ca firewall (comun pe Ubuntu), configurează Fail2Ban să-l folosească:

[DEFAULT]
banaction = ufw

Asigură-te că UFW este activ:

sudo ufw enable
sudo ufw status

Fail2Ban va folosi comanda ufw pentru a adăuga și elimina regulile de ban.


Pasul 10: Bantime progresiv (Recidive)

O funcție avansată — IP-urile care sunt banate de mai multe ori primesc ban-uri din ce în ce mai lungi:

[recidive]
enabled  = true
logpath  = /var/log/fail2ban.log
maxretry = 3
findtime = 86400
bantime  = 604800

Acest jail monitorizează log-ul Fail2Ban însuși: dacă un IP este banat de 3 ori în 24 de ore, primește un ban de 7 zile.


Verificarea log-ului Fail2Ban

Monitorizează activitatea în timp real:

sudo tail -f /var/log/fail2ban.log

Output tipic:

2025-07-01 03:14:22,105 fail2ban.actions [1234]: NOTICE  [sshd] Ban 198.51.100.42
2025-07-01 03:16:01,002 fail2ban.actions [1234]: NOTICE  [sshd] Ban 203.0.113.7

Bune practici suplimentare de securitate pentru VPS

Fail2Ban este o piesă importantă, dar nu singura. Combină-l cu:

  1. Autentificare prin chei SSH — dezactivează autentificarea cu parolă complet
  2. Schimbarea portului SSH — reduce zgomotul de scanare
  3. Firewall strict — permite doar porturile necesare
  4. Actualizări regulate — menține sistemul la zi
  5. Certificate SSL pentru toate serviciile web — vezi certificatele SSL de la CLIQHOST

Pentru proiecte enterprise sau dacă vrei să delegi administrarea serverului, serverele dedicate managed CLIQHOST includ monitorizare și securizare proactivă.


Depanare frecventă

Fail2Ban nu pornește

sudo journalctl -xe -u fail2ban

Verifică erorile de sintaxă în jail.local.

Filtrul nu detectează atacurile

Testează manual:

sudo fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf --print-all-matched

M-am blocat eu însumi

Accesează serverul din consola VNC/KVM (disponibilă în panoul de control CLIQHOST) și rulează:

sudo fail2ban-client set sshd unbanip IP_TAU

Concluzie

Fail2Ban este un instrument esențial pentru orice administrator de server Linux. Cu câteva zeci de minute de configurare, reduci dramatic suprafața de atac a VPS-ului tău — fără costuri suplimentare și fără consum semnificativ de resurse.

Resumând pașii cheie:

  • Instalare rapidă cu apt
  • Configurare în jail.local (nu în .conf!)
  • Protecție imediată pentru SSH, Nginx, servicii de email
  • Comenzi simple pentru monitorizare și deblocare manuală
  • Funcții avansate: recidive, notificări email, filtre personalizate

Dacă ești în căutarea unui VPS Linux performant și sigur pe care să aplici acest ghid, explorează opțiunile de VPS SSD sau VPS NVMe de la CLIQHOST — infrastructură în Moldova, suport tehnic real și prețuri transparente. Pentru întrebări sau configurări complexe, echipa noastră este disponibilă.

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