Stručně řečeno, v tomto tutoriálu najdete příkazové řádky, pomocí kterých můžete nainstalovat a nakonfigurovat Fail2Ban WordStiskněte. Zabezpečuje autentizaci WordPress a hrubou silou dotazy xmlrpc.php.
Blogy a webové stránky vyvinuté na platformě WordPress jsou často terčem kybernetických útoků. Většina útoků je hrubá síla a zaměřuje se na autentizační relaci nebo na zneužití XML-RPC (vzdálené volání procedur pomocí XML). Naštěstí je fail2ban pro tyto situace velmi užitečné bezpečnostní řešení. Pokud chcete zabezpečit web WordPress s fail2ban postupujte podle kroků konfigurace v tomto tutoriálu.
Nejprve se ujistěte, že máte přístup k webovému serveru přes SSH připojení a že je nainstalována aplikace fail2ban.
Konfigurace Fail2Ban pro WordPress na Debianu
1. Nejprve se musíte ujistit, že je na serveru nainstalována a spuštěna aplikace fail2ban. Spusťte níže uvedený příkazový řádek:
systemctl status fail2ban
Ve výstupu byste měli vidět něco takového:
● 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
Pokud na vašem serveru není nainstalovaný fail2ban, budete jej muset nainstalovat. Spusťte příkazový řádek a nainstalujte fail2ban na Debian/Ubuntu:
sudo apt install fail2ban
2. Dalším krokem je vytvoření filtru fail2ban pro WordStiskněte. Spuštěním příkazového řádku v terminálu vytvořte a upravte filtr wordpress.conf
.
sudo nano /etc/fail2ban/filter.d/wordpress.conf
V souboru wordpress.conf
nastavuje filtry pro ověřování WordPress a pro soubor xmlrpc.php
, jak následuje:
[Definition]
failregex = ^<HOST> -.*"(GET|POST).*(/wp-login.php|/xmlrpc.php).*" 200
ignoreregex =
To znamená, že jakýmkoliv způsobem GET
nebo POST
, pokud se přistupuje k souborům wp-login.php nebo xmlrpc.php, lze vytvořit pravidlo pro fail2ban. Podmínkou je, že tyto soubory existují a útočník k nim má přístup. To znamená, že při přístupu by měl vrátit kód 200 (ok).
Uložte soubor /etc/fail2ban/filter.d/wordpress.conf
.
3. Dalším krokem je konfigurace „vězení“. WordStiskněte. Zde je většina uživatelů zmatena, protože pravidla musí být nastavena odlišně v závislosti na systému správy hostingu (pokud existuje) nebo konfiguraci webového serveru.
Pokud používáte HestiaCP, VestaCP nebo MyVesta, vytvořte a upravte soubor /etc/fail2ban/jail.local
.
nano /etc/fail2ban/jail.local
Přidejte do tohoto souboru řádky níže:
[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 výše uvedené parametry podle svých potřeb. V konfiguraci, kterou jsem dal, pokud v intervalu 1800 minut dojde k 5 opakovaným pokusům ze stejné IP, zablokuje se na 3600 minut pomocí akce HestiaCP pro web. (hestia[name=WEB]
). Zde budete potřebovat pomoc v závislosti na systému, který máte na serveru.
Je také velmi důležité „logpath
". Z těchto protokolů se extrahují údaje o tom, která akce bude provedena. Ujistěte se, že umístění je správné.
Pokud nemáte nainstalovaný systém správy, budete muset blokovat IP adresy pomocí fail2ban for WordPress provést přímo prostřednictvím iptables
. Řádek pro akci bude následující:
action = iptables-multiport[name=wordpress, port="80,443", protocol=tcp]
Jako závorka místo /etc/fail2ban/jail.local
můžete také použít samostatný soubor pro konfiguraci, například: /etc/fail2ban/jail.d/wordpress.conf
.
Po provedení úprav použijte změny.
sudo systemctl restart fail2ban
4. Po restartování zkontrolujte, zda fail2ban for 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:
Jakmile v tomto seznamu najdete blokované adresy IP, ujistěte se, že jsou také blokovány iptables
. Setkal jsem se se situací, kdy jsem kvůli špatné konfiguraci v fail2ban viděl, že IP byla blokována, ale ve skutečnosti mohla stále přistupovat wp-login.php
nebo xmlrpc.php
.
Chcete-li zkontrolovat, zda vše funguje správně, vyberte blokovanou IP ze seznamu fail2ban a vyhledejte ji v iptables.
Spusťte příkazový řádek:
iptables -L -v -n --line-numbers
Pokud je IP adresa, která se zdá být blokována fail2ban, také v tomto seznamu, znamená to, že jste pro ni správně nakonfigurovali fail2ban. WordLis.
Související: Jak obnovit uživatelské heslo správce v WordStiskněte. Žádný přístup k e-mailu.
Zároveň se důrazně doporučuje zkontrolovat protokol s akcemi fail2ban:
sudo tail -f /var/log/fail2ban.log
To znamená, že pokud máte nějaké dotazy nebo potřebujete pomoc, mohu vám pomoci v komentářích.