Stručne povedané, v tomto návode nájdete príkazové riadky, cez ktoré môžete nainštalovať a nakonfigurovať FAIL2Ban pre WordPress. Zabezpečte autentifikáciu WordPress a Xmlrpc.php hrubý zadok.
Blogy a stránky vyvinuté na platforme WordPress sú často cieľmi kybernetického útoku. Väčšina útokov je typu hrubej sily a zameriava sa na autentifikačnú reláciu alebo využívanie XML-RPC (volanie vzdialeného postupu pomocou XML). Našťastie je Fail2ban pre tieto situácie veľmi užitočným bezpečnostným riešením. Ak si chcete zabezpečiť stránku WordPress pomocou FAIL2Ban, postupujte podľa krokov konfigurácie v tomto návode.
Najprv sa uistite, že máte prístup k webovému serveru pomocou SSH Connection a že je nainštalovaná aplikácia Fail2ban.
Neúspech2ban konfigurácia pre WordPress na Debian
1. Vykonajte príkazový riadok nižšie:
systemctl status fail2ban
Na výstupe by ste mali vidieť niečo z tohto formulára:
● 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
Ak na serveri nie je nainštalovaný FAIL2Ban, musíte ho nainštalovať. Vykonajte objednávkovú linku pre inštaláciu zlyhania2ban na Debian / Ubuntu:
sudo apt install fail2ban
2. Ďalším krokom je vytvorenie filtra FAIL2Ban pre WordPress. Vykonajte v termináli príkazový riadok a vytvorte a upravte filter wordpress.conf
.
sudo nano /etc/fail2ban/filter.d/wordpress.conf
V súbore wordpress.conf
Nastavuje autentifikačné filtre WordPress a overenie súborov xmlrpc.php
, takto:
[Definition]
failregex = ^<HOST> -.*"(GET|POST).*(/wp-login.php|/xmlrpc.php).*" 200
ignoreregex =
To znamená, že akoukoľvek metódou, GET
alebo POST
, mali by byť prístupné súbory WP-login.php alebo XMLRPC.php, je možné vytvoriť pravidlo pre zlyhanie2ban. Podmienkou je, že tieto súbory existujú a útočník k nim pristupuje. To znamená vrátiť kód 200 (OK) na prístup.
Uloží súbor /etc/fail2ban/filter.d/wordpress.conf
.
3. Ďalším krokom je konfigurácia “väzenie” pre WordPress. V tomto kroku je väčšina používateľov zmätená, pretože pravidlá musia byť stanovené odlišne v závislosti od systému správy hostingu (ak existuje) alebo konfigurácie webového servera.
Ak používate Hestiacp, Vestacp alebo Myvesta, vytvorte a upravte súbor /etc/fail2ban/jail.local
.
nano /etc/fail2ban/jail.local
Pridajte do tohto súboru nižšie riadky:
[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.
Upravte vyššie uvedené parametre podľa svojich potrieb. V konfigurácii, ktorú som dal, ak do 1800 minút existuje 5 opakovaných pokusov z toho istého IP, bude blokovaná na 3600 minút pomocou webu Hestiacp. (hestia[name=WEB]
). Tu budete musieť pomôcť podľa systému, ktorý máte na serveri.
Je to tiež veľmi dôležité a “logpath
“. Z týchto protokolov sa extrahujú údaje na základe toho, ktoré akcie sa vykonajú. Uistite sa, že umiestnenie je správne.
Ak nemáte nainštalovaný systém riadenia, budete potrebovať činnosť blokovania IPS s Fail2ban pre WordPress, aby sa vykonal priamo do iptables
. Riadok pre akciu bude nasledovne:
action = iptables-multiport[name=wordpress, port="80,443", protocol=tcp]
Ako držiak namiesto /etc/fail2ban/jail.local
Môžete tiež použiť samostatný konfiguračný súbor, napríklad: /etc/fail2ban/jail.d/wordpress.conf
.
Po vykonaní úprav použite zmeny.
sudo systemctl restart fail2ban
4. Po reštarte skontrolujte, či zlyhá 2 pre WordPress funguje:
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:
Po nájdení v tomto zozname blokované IPS sa uistite, že sú zablokovaní a v iptables
. Stretol som situáciu, že v dôsledku nesprávnej konfigurácie, v Fail2ban, aby som zistil, že ide o blokovanú IP, ale v skutočnosti by mal stále prístup k stále prístupu wp-login.php
alebo xmlrpc.php
.
Ak chcete skontrolovať, či všetko funguje správne, vyberte IP zablokovanú zo zoznamu FAIL2Ban a vyhľadajte ho v iptables.
Vykonajte príkazový riadok:
iptables -L -v -n --line-numbers
Ak sa v tomto zozname nachádza aj IP, ktorý je zablokovaný spoločnosťou Fail2ban, znamená to, že ste nakonfigurovali správny Fail2ban pre WordPress.
Súvisiace: Ako resetovať heslo používateľa správcu v WordPress. Bez prístupu k e -mailu.
Zároveň je veľmi vhodné skontrolovať protokol s akciami zlyhania2ban:
sudo tail -f /var/log/fail2ban.log
Ako už bolo povedané, ak máte nejaké obavy alebo potrebujete pomoc, môžu vám pomôcť v komentároch.