ModSecurity pe nginx funcționează ca un Web Application Firewall la nivel de server web, inspectând…

Securizarea unui server Linux pentru WordPress, pași esențiali
Securizarea unui server Linux pentru WordPress, pași esențiali. Un server Linux configurat corect formează fundația pe care se construiește securitatea oricărui site WordPress, iar neglijarea securității la nivel de server face inutile toate celelalte măsuri de protecție.
Majoritatea atacurilor reușite asupra site-urilor WordPress exploatează vulnerabilități la nivel de server, nu ale aplicației WordPress în sine. Securizarea serverului este primul pas obligatoriu.
Securizarea unui server Linux pentru WordPress, pași esențiali
Securizarea unui server Linux implică mai multe straturi de protecție: de la configurarea accesului SSH, actualizarea sistemului de operare, configurarea firewall-ului, până la monitorizarea continuă a logurilor și activității.
Acest ghid acoperă pașii practici pe care trebuie să îi urmați imediat după instalarea unui server Linux destinat găzduirii WordPress.
Actualizarea sistemului de operare
Primul lucru pe care trebuie să îl faceți pe un server Linux nou sau existent este actualizarea completă a tuturor pachetelor. Vulnerabilitățile din software-ul de sistem sunt exploatate activ de atacatori.
Configurați actualizările automate de securitate pentru a vă asigura că sistemul rămâne protejat.
# Ubuntu/Debian - actualizare completă
sudo apt update && sudo apt upgrade -y && sudo apt dist-upgrade -y
sudo apt autoremove -y
# CentOS/AlmaLinux/Rocky - actualizare completă
sudo dnf update -y
sudo dnf autoremove -y
# Configurare actualizări automate de securitate pe Ubuntu
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure -plow unattended-upgrades- Actualizați sistemul de operare imediat după provizionarea serverului
- Activați actualizările automate de securitate pentru pachete critice
- Planificați un restart lunar al serverului pentru a aplica actualizările de kernel
- Verificați săptămânal dacă există actualizări disponibile care necesită intervenție manuală
Configurarea SSH securizat
SSH este metoda principală de acces la server. O configurare SSH slabă permite atacatorilor să obțină acces complet la sistem prin atacuri brute force sau exploituri.
Modificați configurarea implicită SSH pentru a reduce suprafața de atac.
# Editare configurare SSH
sudo nano /etc/ssh/sshd_config
# Modificări recomandate:
Port 2222 # Schimbare port implicit
PermitRootLogin no # Dezactivare autentificare root
PasswordAuthentication no # Doar autentificare cu cheie SSH
MaxAuthTries 3 # Maximum 3 încercări de autentificare
LoginGraceTime 30 # 30 secunde timp de autentificare
AllowUsers wordpress_admin # Doar utilizatori specificați
Protocol 2 # Doar protocolul SSH 2
X11Forwarding no # Dezactivare forwarding X11
AllowTcpForwarding no # Dezactivare port forwarding- Generați o pereche de chei SSH cu minimum 4096 biți pentru autentificare
- Dezactivați complet autentificarea cu parolă după configurarea cheilor SSH
- Schimbați portul SSH implicit 22 cu un port nestandard
- Restricționați accesul SSH doar la utilizatorii care au nevoie de el
- Configurați timeout-ul sesiunilor SSH inactive la 5 minute
Generarea unei perechi de chei SSH:
# Pe computerul local
ssh-keygen -t ed25519 -C "admin@wpsecurity.ro"
ssh-copy-id -p 2222 wordpress_admin@server_ip
# Testare conexiune cu noua configurare
ssh -p 2222 wordpress_admin@server_ip
# Restart serviciu SSH după modificări
sudo systemctl restart sshdConfigurarea firewall-ului cu UFW sau firewalld
Un firewall la nivel de sistem controlează ce trafic de rețea este permis și ce este blocat. Configurarea corectă permite doar traficul necesar pentru funcționarea site-ului.
UFW (Uncomplicated Firewall) este soluția recomandată pentru Ubuntu, iar firewalld pentru CentOS.
# Ubuntu - Configurare UFW
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp comment "SSH custom port"
sudo ufw allow 80/tcp comment "HTTP"
sudo ufw allow 443/tcp comment "HTTPS"
sudo ufw enable
sudo ufw status verbose
# CentOS - Configurare firewalld
sudo firewall-cmd --set-default-zone=drop
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo firewall-cmd --list-all- Aplicați politica implicit deny: blocați tot traficul și permiteți doar ce este necesar
- Deschideți doar porturile 80 (HTTP), 443 (HTTPS) și portul SSH personalizat
- Nu deschideți portul MySQL (3306) către exterior dacă baza de date este locală
- Folosiți rate limiting pe portul SSH pentru a preveni atacurile brute force
# Rate limiting SSH cu UFW
sudo ufw limit 2222/tcpCrearea utilizatorilor și permisiunilor corecte
Niciodată nu rulați WordPress sau servicii web ca utilizatorul root. Creați utilizatori dedicați cu permisiuni minime necesare.
Principiul privilegiului minim reduce impactul unei eventuale compromitere.
# Creare utilizator dedicat pentru WordPress
sudo adduser wordpress_user
sudo usermod -aG www-data wordpress_user
# Setare permisiuni corecte pentru WordPress
sudo chown -R wordpress_user:www-data /var/www/wpsecurity.ro/
sudo find /var/www/wpsecurity.ro/ -type d -exec chmod 755 {} ;
sudo find /var/www/wpsecurity.ro/ -type f -exec chmod 644 {} ;
sudo chmod 440 /var/www/wpsecurity.ro/wp-config.php- Creați un utilizator separat pentru administrarea WordPress, nu folosiți root
- Directoarele trebuie să aibă permisiuni 755, fișierele 644
- Fișierul wp-config.php trebuie să aibă permisiuni restrictive (440 sau 400)
- Dezactivați autentificarea root prin SSH complet
- Folosiți sudo cu logare pentru comenzile care necesită privilegii elevate
Dezactivarea serviciilor inutile
Un server Linux instalat cu opțiunile implicite rulează servicii pe care nu le necesitați pentru WordPress. Fiecare serviciu activ reprezintă o potențială vulnerabilitate.
Identificați și dezactivați serviciile care nu sunt necesare.
# Listare servicii active
sudo systemctl list-units --type=service --state=active
# Dezactivare servicii inutile (exemple)
sudo systemctl disable --now cups # Serviciu imprimare
sudo systemctl disable --now avahi-daemon # Descoperire rețea
sudo systemctl disable --now bluetooth # Bluetooth (pe server)
sudo systemctl disable --now postfix # Dacă nu trimiteți email de pe server
# Verificare porturi deschise
sudo ss -tlnp- Dezactivați serviciile de imprimare, Bluetooth și descoperire rețea pe servere
- Verificați porturile deschise și identificați ce serviciu le folosește
- Dezinstalați software-ul care nu este necesar pentru funcționarea WordPress
- Documentați fiecare serviciu activ și motivul pentru care este necesar
Configurarea fail2ban pentru protecție automată
Fail2ban monitorizează logurile sistemului și blochează automat adresele IP care prezintă comportament malițios. Este esențial pentru protecția SSH și a serviciilor web.
# Instalare fail2ban
sudo apt install fail2ban -y
# Configurare principală
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
# Setări recomandate în [DEFAULT]
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 3
banaction = ufw
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 86400- Configurați fail2ban pentru SSH, Apache/Nginx și WordPress
- Setați ban progresiv: prima blocare 1 oră, a doua 24 ore, a treia permanentă
- Adăugați adresa dumneavoastră IP în lista de excepții (ignoreip)
- Monitorizați logurile fail2ban pentru a verifica eficacitatea regulilor
Securizarea unui server Linux pentru WordPress necesită atenție la fiecare strat de protecție, de la acces SSH la firewall și permisiuni. Consultați secțiunea de securitate cibernetică pentru ghiduri suplimentare sau vizitați blogul nostru. Dacă aveți nevoie de asistență profesională, contactați-ne sau explorați serviciile noastre speciale de hardening server.
Despre autor
Dorel Tănase este specialist în optimizarea site-urilor pentru motoarele de căutare. Lucrează în online din 1997 și în SEO din 2007, iar activitatea se desfășoară prin GO SEO MARKETING S.R.L. din Alba Iulia. Se ocupă de audit tehnic, arhitectura site-urilor, conținut și construirea legăturilor.