Skratka, v tej vadnici boste našli ukazne vrstice, prek katerih lahko namestite in konfigurirate Fail2Ban za WordPritisnite. Zavaruje avtentikacijo WordPress in poizvedbe s surovo silo xmlrpc.php.
Blogi in spletne strani, razvite na platformi WordPress so pogosto tarče kibernetskih napadov. Večina napadov je nasilna in ciljajo na sejo preverjanja pristnosti ali izkoriščajo XML-RPC (oddaljeni klic postopka z uporabo XML). Na srečo je fail2ban zelo uporabna varnostna rešitev za te situacije. Če želite zaščititi spletno stran WordPress s fail2ban sledite konfiguracijskim korakom v tej vadnici.
Najprej se prepričajte, da imate dostop do spletnega strežnika preko SSH povezave in da je nameščena aplikacija fail2ban.
Konfiguracija Fail2Ban za WordPress na Debianu
1. Najprej se morate prepričati, da je aplikacija fail2ban nameščena in deluje na strežniku. Zaženite spodnjo ukazno vrstico:
systemctl status fail2ban
V izhodu bi morali videti nekaj takega:
● fail2ban.service - Fail2Ban Service
Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; preset: enabled)
Active: active (running) since Tue 2025-03-11 00:39:32 EET; 6 days ago
Docs: man:fail2ban(1)
Main PID: 917 (fail2ban-server)
Tasks: 17 (limit: 76843)
Memory: 33.2M
CPU: 17min 1.752s
CGroup: /system.slice/fail2ban.service
└─917 /usr/bin/python3 /usr/bin/fail2ban-server -xf start
Če fail2ban ni nameščen na vašem strežniku, ga boste morali namestiti. Zaženite ukazno vrstico za namestitev fail2ban na Debian/Ubuntu:
sudo apt install fail2ban
2. Naslednji korak je ustvariti filter fail2ban za WordPritisnite. Zaženite ukazno vrstico v terminalu, da ustvarite in uredite filter wordpress.conf
.
sudo nano /etc/fail2ban/filter.d/wordpress.conf
V datoteki wordpress.conf
nastavi filtre za preverjanje pristnosti WordPress in za datoteko xmlrpc.php
, kot sledi:
[Definition]
failregex = ^<HOST> -.*"(GET|POST).*(/wp-login.php|/xmlrpc.php).*" 200
ignoreregex =
To pomeni, da s katero koli metodo, GET
ali POST
, če se dostopa do datotek wp-login.php ali xmlrpc.php, je mogoče ustvariti pravilo za fail2ban. Pogoj je, da te datoteke obstajajo in napadalec do njih lahko dostopa. To pomeni, da mora ob dostopu vrniti kodo 200 (ok).
Shranite datoteko /etc/fail2ban/filter.d/wordpress.conf
.
3. Naslednji korak je konfiguracija »zapora« za WordPritisnite. Tu se večina uporabnikov zmede, saj je treba pravila nastaviti drugače glede na sistem upravljanja gostovanja (če obstaja) ali konfiguracijo spletnega strežnika.
Če uporabljate HestiaCP, VestaCP ali MyVesta, ustvarite in uredite datoteko /etc/fail2ban/jail.local
.
nano /etc/fail2ban/jail.local
V to datoteko dodajte spodnje vrstice:
[wordpress]
enabled = true
port = http,https
filter = wordpress
logpath = /var/log/nginx/domains/*.log #or apache2.
maxretry = 5
findtime = 1800
bantime = 3600
action = hestia[name=WEB] #hestacp action.
Zgornje parametre prilagodite svojim potrebam. V konfiguraciji, ki sem jo dal, bo v intervalu 1800 minut 5 ponovljenih poskusov z istega IP-ja blokiran za 3600 minut z uporabo akcije HestiaCP za splet. (hestia[name=WEB]
). Tukaj boste potrebovali pomoč glede na sistem, ki ga imate na strežniku.
Zelo pomembno je tudi "logpath
". Iz teh dnevnikov se izvlečejo podatki o tem, kateri ukrep bo izveden. Preverite, ali je lokacija pravilna.
Če nimate nameščenega sistema za upravljanje, boste morali blokirati IP-je s funkcijo fail2ban for WordPress narediti neposredno skozi iptables
. Vrstica za ukrepanje bo naslednja:
action = iptables-multiport[name=wordpress, port="80,443", protocol=tcp]
Kot oklepaj, namesto /etc/fail2ban/jail.local
za konfiguracijo lahko uporabite tudi ločeno datoteko, na primer: /etc/fail2ban/jail.d/wordpress.conf
.
Ko opravite prilagoditve, uporabite spremembe.
sudo systemctl restart fail2ban
4. Po ponovnem zagonu preverite, ali je fail2ban for WordPress dela:
fail2ban-client status wordpress
Status for the jail: wordpress
|- Filter
| |- Currently failed: 355
| |- Total failed: 33873
| `- File list: (log files per domain)
- Actions
|- Currently banned: 127
|- Total banned: 680
`- Banned IP list:
Ko na tem seznamu najdete blokirane IP-je, se prepričajte, da so tudi blokirani iptables
. Naletel sem na situacijo, ko sem zaradi napačne konfiguracije v fail2ban videl, da je bil IP blokiran, vendar je v resnici še vedno lahko dostopal wp-login.php
ali xmlrpc.php
.
Če želite preveriti, ali vse deluje pravilno, izberite blokirani IP s seznama fail2ban in ga poiščite v iptables.
Zaženite ukazno vrstico:
iptables -L -v -n --line-numbers
Če je na tem seznamu tudi IP, za katerega se zdi, da ga fail2ban blokira, pomeni, da ste zanj pravilno konfigurirali fail2ban. WordPritisnite.
Povezano: Kako ponastaviti skrbniško uporabniško geslo v WordPritisnite. Ni dostopa do e-pošte.
Hkrati je zelo priporočljivo, da preverite dnevnik z dejanji fail2ban:
sudo tail -f /var/log/fail2ban.log
Kljub temu, če imate kakršna koli vprašanja ali potrebujete pomoč, vam lahko pomagam v komentarjih.