ModSecurity este un Web Application Firewall (WAF) open-source disponibil pe majoritatea serverelor cPanel, care inspectează…

Cum blocați IP-uri suspecte și țări din cPanel
Cum blocați IP-uri suspecte și țări din cPanel. Blocarea adreselor IP suspecte și a traficului din țări din care nu așteptați vizitatori este una dintre cele mai eficiente metode de reducere a atacurilor asupra site-ului WordPress.
Majoritatea atacurilor automatizate provin din anumite regiuni geografice. Blocarea selectivă a acestora reduce semnificativ volumul de trafic malițios fără a afecta vizitatorii legitimi.
Cum blocați IP-uri suspecte și țări din cPanel
cPanel oferă IP Blocker, un instrument simplu pentru blocarea adreselor IP individuale sau a range-urilor. Pentru blocarea la nivel de țară (geo-blocking), sunt necesare configurări suplimentare prin .htaccess sau instrumente externe.
Acest ghid acoperă toate metodele disponibile pentru controlul accesului bazat pe adresă IP și localizare geografică.
Identificarea adreselor IP suspecte
Înainte de a bloca adrese IP, trebuie să identificați care dintre ele reprezintă o amenințare. Analiza logurilor de acces vă oferă informațiile necesare.
# Top IP-uri care atacă wp-login.php
grep "POST /wp-login.php" ~/access-logs/wpsecurity.ro | awk '{print $1}' | sort | uniq -c | sort -rn | head -20
# IP-uri care accesează xmlrpc.php
grep "xmlrpc.php" ~/access-logs/wpsecurity.ro | awk '{print $1}' | sort | uniq -c | sort -rn | head -20
# IP-uri cu cele mai multe cereri (potențial DDoS sau scanare)
awk '{print $1}' ~/access-logs/wpsecurity.ro | sort | uniq -c | sort -rn | head -30
# IP-uri care primesc erori 403/404 frecvente (scanare)
awk '$9 ~ /^(403|404)/ {print $1}' ~/access-logs/wpsecurity.ro | sort | uniq -c | sort -rn | head -20
# Verificare informații despre un IP suspect
curl -s "https://ipapi.co/185.220.101.45/json/" | python3 -m json.tool- IP-urile cu sute de cereri POST către wp-login.php sunt atacuri brute force
- Cererile repetate către xmlrpc.php indică tentative de exploatare
- IP-urile cu multe erori 404 scanează structura site-ului pentru vulnerabilități
- Verificați fiecare IP suspect cu servicii WHOIS sau GeoIP înainte de blocare
- Nu blocați IP-uri ale motoarelor de căutare (Google, Bing) sau servicii CDN
Blocarea IP-urilor din cPanel IP Blocker
IP Blocker din cPanel permite blocarea rapidă a adreselor IP fără a edita fișiere de configurare manual.
Accesați cPanel > Security > IP Blocker pentru a gestiona lista de IP-uri blocate.
- Introduceți adresa IP individuală: 185.220.101.45
- Sau un range de IP-uri: 185.220.101.0-185.220.101.255
- Sau notație CIDR: 185.220.101.0/24 (blochează 256 adrese)
- Sau un domeniu: hacker-domain.com (blochează IP-ul asociat)
- Faceți clic pe „Add” pentru fiecare IP sau range
IP Blocker adaugă automat reguli deny în fișierul .htaccess:
# Reguli generate de IP Blocker în .htaccess
order allow,deny
deny from 185.220.101.0/24
deny from 45.155.205.0/24
deny from 194.26.29.0/24
allow from allBlocarea la nivel de țară (Geo-blocking)
Blocarea pe baza localizării geografice (geo-blocking) blochează tot traficul din anumite țări. Este eficientă dacă site-ul dumneavoastră se adresează unui public local și nu așteptați trafic din anumite regiuni.
Implementarea se face prin .htaccess folosind modulul mod_geoip sau prin liste de IP-uri per țară.
# Metoda 1: Cu mod_geoip (dacă este instalat pe server)
<IfModule mod_geoip.c>
GeoIPEnable On
# Blocare țări specifice
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE KP BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE IR BlockCountry
Order Allow,Deny
Allow from all
Deny from env=BlockCountry
</IfModule># Metoda 2: Fără mod_geoip - folosind liste de IP-uri per țară
# Descarcați listele de la: https://www.ipdeny.com/ipblocks/
# Exemplu: blocare China
wget -q https://www.ipdeny.com/ipblocks/data/countries/cn.zone -O /tmp/cn.zone
# Generare reguli .htaccess din lista de IP-uri
echo "# Blocare China" > /tmp/block_cn.txt
while read ip; do
echo "Deny from $ip" >> /tmp/block_cn.txt
done < /tmp/cn.zone- Blocați doar țările din care primiți trafic predominant malițios
- Nu blocați țări din care aveți vizitatori sau clienți legitimi
- Actualizați listele de IP-uri per țară lunar, deoarece alocările IP se modifică
- Testați blocarea din VPN-uri sau proxy-uri localizate în țările blocate
Blocare selectivă: doar wp-admin din anumite țări
O alternativă mai puțin restrictivă este blocarea accesului la wp-admin și wp-login.php din anumite țări, permițând în continuare vizitarea conținutului public.
# Blocare acces wp-login.php și wp-admin doar din IP-uri non-RO
# Metoda cu mod_geoip
<IfModule mod_geoip.c>
GeoIPEnable On
<Files wp-login.php>
SetEnvIf GEOIP_COUNTRY_CODE RO AllowLogin
Order Deny,Allow
Deny from all
Allow from env=AllowLogin
</Files>
</IfModule>
# Alternativ, restricționare wp-admin la IP-uri specifice
<Directory "/home/user/public_html/wp-admin">
Order Deny,Allow
Deny from all
Allow from YOUR_IP
Allow from OFFICE_IP
# Excepție admin-ajax.php
<Files admin-ajax.php>
Order Allow,Deny
Allow from all
</Files>
</Directory>- Restricționați accesul la wp-login.php la IP-urile sau țările dumneavoastră
- Mențineți admin-ajax.php accesibil pentru funcționalitatea normală WordPress
- Dacă aveți IP dinamic, actualizați regula la fiecare schimbare de IP
- Folosiți un VPN cu IP fix pentru acces consistent la panoul de administrare
Automatizarea blocării cu scripturi
Scripturile automate pot analiza logurile și bloca automat IP-urile care prezintă comportament malițios.
#!/bin/bash
# Script auto-blocare IP-uri suspecte
LOG="$HOME/access-logs/wpsecurity.ro"
HTACCESS="$HOME/public_html/.htaccess"
BLOCKLIST="$HOME/blocked_ips.txt"
THRESHOLD=50
# Inițializare fișier blocare dacă nu există
touch $BLOCKLIST
# Identificare IP-uri cu peste $THRESHOLD cereri wp-login.php azi
grep "$(date +%d/%b/%Y)" $LOG | grep "POST /wp-login.php" | awk '{print $1}' | sort | uniq -c | sort -rn | while read count ip; do
if [ $count -gt $THRESHOLD ]; then
# Verificare dacă IP-ul nu este deja blocat
if ! grep -q "$ip" $BLOCKLIST; then
echo "$ip" >> $BLOCKLIST
echo "Deny from $ip" >> $HTACCESS
echo "[$(date)] Blocat: $ip ($count cereri wp-login.php)" >> $HOME/security.log
fi
fi
done- Rulați scriptul la fiecare oră prin cron job
- Setați pragul la 50 de cereri pentru a evita blocarea accidentală
- Mențineți un log al tuturor IP-urilor blocate automat
- Revizuiți periodic lista și eliminați blocările care nu mai sunt necesare
Verificarea și gestionarea regulilor de blocare
Regulile de blocare pot acumula în timp sute de intrări care încetinesc procesarea .htaccess. Gestionarea periodică este necesară.
# Număr reguli de blocare în .htaccess
grep -c "Deny from" ~/public_html/.htaccess
# Verificare dacă un IP specific este blocat
grep "185.220.101.45" ~/public_html/.htaccess
# Deblocare IP (eliminare din .htaccess)
sed -i "/Deny from 185.220.101.45/d" ~/public_html/.htaccess
# Curățare IP-uri duplicate
sort -u ~/blocked_ips.txt -o ~/blocked_ips.txt- Dacă lista depășește 500 de reguli, migrați blocarea la nivel de firewall server
- Fișierele .htaccess mari încetinesc procesarea cererilor Apache
- Considerați utilizarea Cloudflare sau a unui WAF extern pentru blocare geo la scară mare
- Documentați motivul blocării fiecărui IP sau range pentru referință viitoare
Blocarea IP-urilor suspecte și a țărilor cu trafic malițios reduce semnificativ suprafața de atac a site-ului WordPress. Consultați secțiunea de securitate cibernetică pentru strategii avansate de protecție sau vizitați blogul nostru. Pentru implementare profesională, contactați-ne sau explorați serviciile noastre speciale.
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.