// Vulnerabilități active

Cum protejezi un VPS Linux împotriva atacurilor Brute Force și XML-RPC: ghid complet — CLIQHOST

22 octombrie 2026 · by Alex M.

Cum protejezi un VPS Linux împotriva atacurilor Brute Force și XML-RPC: ghid complet — CLIQHOST

Atacurile Brute Force și exploatarea endpoint-ului XML-RPC din WordPress reprezintă două dintre cele mai frecvente vulnerabilități active cu care se confruntă administratorii de servere în 2024. Dacă ai un VPS NVMe sau un server dedicat, cunoașterea metodelor concrete de blocare a acestor atacuri este esențială pentru a menține securitatea aplicațiilor web.

În acest ghid vom parcurge pas cu pas metodele testate pentru a bloca atacurile Brute Force (SSH, panou admin, formulare de login) și XML-RPC, folosind instrumente open-source deja disponibile pe orice distribuție Linux.


Ce sunt atacurile Brute Force și de ce sunt periculoase?

Un atac Brute Force presupune încercarea automată a mii sau milioane de combinații de utilizator + parolă până la găsirea celei corecte. Atacatorii folosesc rețele de boți distribuiți geografic, ceea ce îngreunează blocarea prin IP simplu.

Principalele ținte:

  • SSH (portul 22) — acces direct la server
  • wp-login.php — panoul de administrare WordPress
  • phpMyAdmin, cPanel, Plesk — interfețe de administrare baze de date/hosting
  • Formulare de autentificare ale oricărei aplicații web

Un atac reușit poate duce la:

  • Preluarea completă a serverului
  • Infectarea cu malware sau ransomware
  • Includerea serverului într-o rețea botnet
  • Pierderea datelor clienților

Ce este XML-RPC și de ce este vulnerabil?

XML-RPC este un protocol de comunicare remote pentru WordPress, activat implicit, disponibil la /xmlrpc.php. Deși a fost util pentru aplicații mobile și integrări externe, astăzi este exploatat masiv pentru:

  1. Amplificarea Brute Force — un singur request XML-RPC poate testa sute de parole simultan prin metoda system.multicall
  2. DDoS — flooding cu requesturi /xmlrpc.php
  3. Pingback attacks — utilizarea WordPress-ului tău ca reflector în atacuri DDoS

⚠️ Dacă nu folosești funcționalități care necesită XML-RPC (Jetpack, aplicații mobile WordPress), dezactivează-l imediat.


Pasul 1: Protecția SSH împotriva Brute Force

1.1 Schimbă portul SSH implicit

Editează configurația SSH:

nano /etc/ssh/sshd_config

Modifică linia:

Port 2222

Apoi repornește serviciul:

systemctl restart sshd

Nu uita să adaugi regula în firewall înainte de a reporni!

1.2 Dezactivează autentificarea cu parolă (folosește chei SSH)

În același fișier /etc/ssh/sshd_config:

PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes

Această metodă singură elimină practic 99% din atacurile Brute Force SSH. Dacă nu ai configurat încă autentificarea prin chei, consultă ghidurile noastre de securitate pe blogul CLIQHOST.

1.3 Limitează accesul SSH prin AllowUsers

AllowUsers adminuser

Asigură-te că utilizatorul adminuser există și are o parolă puternică (sau cheie SSH).


Pasul 2: Configurează Fail2Ban pentru SSH, Nginx și Apache

Fail2Ban monitorizează log-urile și blochează automat IP-urile cu activitate suspectă. Dacă nu l-ai instalat, pe Ubuntu/Debian:

apt update && apt install fail2ban -y

2.1 Configurare jail pentru SSH

Creează fișierul /etc/fail2ban/jail.local:

[DEFAULT]
bantime  = 3600
findtime = 600
maxretry = 5

[sshd]
enabled  = true
port     = 2222
logpath  = /var/log/auth.log
maxretry = 3

2.2 Jail pentru WordPress wp-login.php (Nginx)

Adaugă în /etc/fail2ban/jail.local:

[nginx-wp-login]
enabled  = true
port     = http,https
filter   = nginx-wp-login
logpath  = /var/log/nginx/access.log
maxretry = 5
bantime  = 86400

Creează filtrul /etc/fail2ban/filter.d/nginx-wp-login.conf:

[Definition]
failregex = ^<HOST> .* "POST /wp-login.php
ignoreregex =

2.3 Jail pentru xmlrpc.php

[nginx-xmlrpc]
enabled  = true
port     = http,https
filter   = nginx-xmlrpc
logpath  = /var/log/nginx/access.log
maxretry = 2
bantime  = 86400

Filtrul /etc/fail2ban/filter.d/nginx-xmlrpc.conf:

[Definition]
failregex = ^<HOST> .* "POST /xmlrpc.php
ignoreregex =

Repornește Fail2Ban:

systemctl restart fail2ban
fail2ban-client status

Pentru un VPS SSD sau server dedicat, aceste configurații sunt suficient de eficiente pentru trafic moderat-ridicat.


Pasul 3: Blochează XML-RPC la nivel de web server

3.1 Blocare în Nginx

Adaugă în blocul server {} al site-ului WordPress:

location = /xmlrpc.php {
    deny all;
    access_log off;
    log_not_found off;
    return 444;
}

Codul 444 instruiește Nginx să închidă conexiunea fără a trimite niciun răspuns — ideal pentru a nu consuma resurse.

nginx -t && systemctl reload nginx

3.2 Blocare în Apache

Adaugă în .htaccess sau în VirtualHost:

<Files xmlrpc.php>
    Require all denied
</Files>

Sau mai agresiv, cu mod_rewrite:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^xmlrpc\.php$ - [F,L]
</IfModule>

Pasul 4: Protecția wp-login.php cu restricții IP sau autentificare HTTP

4.1 Restricție prin IP (Nginx)

Dacă accesezi panoul de administrare dintr-un IP fix:

location = /wp-login.php {
    allow 193.168.1.100;  # IP-ul tău
    deny all;
}

4.2 Autentificare HTTP Basic (Nginx)

Creează fișierul de parole:

apt install apache2-utils -y
htpasswd -c /etc/nginx/.htpasswd adminuser

Adaugă în blocul server {}:

location = /wp-login.php {
    auth_basic           "Acces restricționat";
    auth_basic_user_file /etc/nginx/.htpasswd;
    include fastcgi_params;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

4.3 Autentificare HTTP Basic (Apache)

<Files wp-login.php>
    AuthType Basic
    AuthName "Acces restricționat"
    AuthUserFile /etc/apache2/.htpasswd
    Require valid-user
</Files>

Pasul 5: Dezactivează XML-RPC din WordPress (plugin sau cod)

5.1 Prin functions.php sau plugin

Adaugă în functions.php al temei active:

// Dezactivează XML-RPC complet
add_filter('xmlrpc_enabled', '__return_false');

// Elimină header-ul X-Pingback
add_filter('wp_headers', function($headers) {
    unset($headers['X-Pingback']);
    return $headers;
});

// Dezactivează pingback-urile
add_action('pre_ping', function(&$links) {
    $links = [];
});

5.2 Prin plugin dedicat

Pluginul Disable XML-RPC (disponibil gratuit în WordPress.org) face exact asta cu un singur click — recomandat pentru utilizatorii fără acces la cod.


Pasul 6: Rate Limiting cu Nginx pentru a limita atacurile masive

Rate limiting previne flooding-ul de requesturi chiar dacă atacatorul schimbă IP-urile:

http {
    limit_req_zone $binary_remote_addr zone=wplogin:10m rate=5r/m;
    limit_req_zone $binary_remote_addr zone=xmlrpc:10m rate=1r/m;
}

server {
    location = /wp-login.php {
        limit_req zone=wplogin burst=3 nodelay;
        # ... restul configurației
    }

    location = /xmlrpc.php {
        limit_req zone=xmlrpc burst=1 nodelay;
        deny all;
    }
}

Pasul 7: Configurează UFW Firewall pentru protecție suplimentară

ufw default deny incoming
ufw default allow outgoing
ufw allow 2222/tcp   # SSH pe noul port
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

Pentru servere dedicate managed, echipa noastră poate prelua configurarea completă a firewall-ului și securizarea serverului.


Pasul 8: Monitorizare și alerte

Verifică log-urile de autentificare SSH

journalctl -u ssh --since "1 hour ago" | grep "Failed"

Verifică ban-urile active Fail2Ban

fail2ban-client status sshd
fail2ban-client status nginx-xmlrpc

Instalează logwatch pentru rapoarte zilnice

apt install logwatch -y
logwatch --output mail --mailto [email protected] --detail high

Checklist final de securitate

Măsură Status
Port SSH schimbat ✅
Autentificare SSH prin chei ✅
Fail2Ban activ (SSH + WP) ✅
XML-RPC blocat în Nginx/Apache ✅
XML-RPC dezactivat în WordPress ✅
Rate limiting activat ✅
wp-login.php protejat cu HTTP Basic ✅
UFW Firewall activ ✅

Concluzie

Atacurile Brute Force și exploatarea XML-RPC nu sunt amenințări teoretice — ele se produc zilnic, pe mii de servere din întreaga lume, inclusiv pe servere din Moldova. Implementând măsurile din acest ghid — de la Fail2Ban și blocare Nginx, până la dezactivarea completă a XML-RPC — reduci dramatic suprafața de atac.

Dacă preferi o soluție gestionată, echipa CLIQHOST oferă servicii complete de administrare servere, inclusiv audit de securitate și configurare proactivă. Explorează și opțiunile noastre de VPS NVMe sau hosting WordPress optimizat — fiecare plan vine cu suport tehnic dedicat.

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