Jak nakonfigurovat Fail2Ban pro WordPress (wp-login, xmlrpc)

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.

Věnovaný technologiím, s radostí píši na StealthSettings.com od roku 2006. Mám bohaté zkušenosti s operačními systémy: macOS, Windows a Linux, stejně jako s programovacími jazyky a platformami pro blogování (WordPress) a pro online obchody (WooCommerce, Magento, PrestaShop).

Home » Váš zdroj IT tutoriálů, užitečných tipů a novinek. » Jak nakonfigurovat Fail2Ban pro WordPress (wp-login, xmlrpc)
Zanechat komentář