Lühidalt, sellest õpetusest leiate käsuread Fail2Bani installimiseks ja konfigureerimiseks WordPressi jaoks. Turvaline WordPressi sisselogimine ja xmlrpc.php brute force päringud.
WordPressi platvormil arendatud ajaveebid ja veebisaidid on sageli küberrünnakute sihtmärgid. Enamik rünnakuid on toore jõuga ja on suunatud autentimisseansi või XML-RPC (XML-i kasutava kaugprotseduurikõne) ärakasutamisele. Õnneks on fail2ban sellistes olukordades väga kasulik turvalahendus. Kui soovite fail2baniga WordPressi saiti turvata, järgige selle õpetuse seadistussamme.
Kõigepealt veenduge, et teil on SSH-ühenduse kaudu juurdepääs veebiserverile ja fail2ban-rakendus on installitud.
WordPressi konfiguratsioon Debianil
1. Kõigepealt pean veenduma, et fail2ban rakendus on installitud ja serveris töötab. Käivitage allolev käsurida:
systemctl status fail2ban
Väljundis peaksite nägema midagi sellist:
● 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
Kui fail2ban pole serverisse installitud, peate selle installima. Käivitage käsurida fail2bani installimiseks Debianile / Ubuntule:
sudo apt install fail2ban
2. Järgmise sammuna tuleb luua WordPressi fail2ban filter. Filtri loomiseks ja redigeerimiseks käivitage terminalis käsurida wordpress.conf.
sudo nano /etc/fail2ban/filter.d/wordpress.conf
Failis wordpress.conf Määrab WordPressi autentimisfiltrid ja faili autentimine xmlrpc.php, järgmiselt:
[Definition]
failregex = ^<HOST> -.*"(GET|POST).*(/wp-login.php|/xmlrpc.php).*" 200
ignoreregex =
See tähendab, et mis tahes meetodil GET või POST, pääseks juurde failidele wp-login.php või xmlrpc.php, saaks luua fail2ban reegli. Tingimuseks on, et need failid on olemas ja ründajal on neile juurdepääs. See tähendab juurdepääsul koodi 200 (ok) tagastamist.
Salvestab faili /etc/fail2ban/filter.d/wordpress.conf.
3. Järgmine samm on konfigureerimine “vangla” WordPressi jaoks. See samm ajab enamiku kasutajate segadusse, sest reeglid tuleb seadistada erinevalt, olenevalt hostimise haldussüsteemist (kui see on olemas) või veebiserveri konfiguratsioonist.
Kui kasutate HestiaCP, VestaCP või MyVesta, looge ja redigeerige fail /etc/fail2ban/jail.local.
nano /etc/fail2ban/jail.local
Lisage sellele failile järgmised read:
[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.
Reguleerige ülaltoodud parameetreid vastavalt oma vajadustele. Minu antud konfiguratsioonis, kui 1800 minuti jooksul tehakse 5 korduskatset samast IP-st, blokeeritakse see HestiaCP veebitoimingu abil 3600 minutiks. (hestia[name=WEB]). Siin on teil vaja abi olenevalt teie serveris olevast süsteemist.
Samuti on väga oluline ja “logpath“. Nendest logidest eraldatakse andmed, mille alusel toiming teostatakse. Veenduge, et asukoht on õige.
Kui teil pole installitud haldussüsteemi, tuleb WordPressi jaoks faili fail2baniga IP-blokeerimise toiming teha otse iptables. Tegevussuund on järgmine:
action = iptables-multiport[name=wordpress, port="80,443", protocol=tcp]
Sulguna, selle asemel /etc/fail2ban/jail.local konfigureerimiseks võite kasutada ka eraldi faili, näiteks: /etc/fail2ban/jail.d/wordpress.conf.
Pärast muudatuste tegemist rakendage muudatused.
sudo systemctl restart fail2ban
4. Pärast taaskäivitamist kontrollige, kas fail2ban for WordPress töötab:
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:
Kui leiate sellest loendist blokeeritud IP-d, veenduge, et ka need on blokeeritud iptables. Mul tekkis olukord, et vale konfiguratsiooni tõttu fail2banis näen, et tegemist on blokeeritud IP-ga, kuid tegelikult pääseb siiski ligi wp-login.php või xmlrpc.php.
Kontrollimaks, kas kõik töötab nii nagu peab, valige fail2bani loendist blokeeritud IP ja otsige see iptablesist üles.
Käivitage käsurida:
iptables -L -v -n --line-numbers
Kui selles loendis on ka fail2bani blokeeritud IP, tähendab see, et olete fail2bani WordPressi jaoks õigesti seadistanud.
Seotud: Kuidas WordPressis administraatori kasutaja parooli lähtestada. Juurdepääs meilile puudub.
Samal ajal on tungivalt soovitatav logi kontrollida fail2ban-toimingutega:
sudo tail -f /var/log/fail2ban.log
Nagu öeldud, kui teil on küsimusi või vajate abi, saan teid kommentaarides aidata.