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

podle

0

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

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

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

Stručně řečeno, v tomto tutoriálu najdete příkazové řádky pro instalaci a konfiguraci Fail2Ban pro WordPress. Bezpečné přihlášení k WordPressu a dotazy hrubou silou xmlrpc.php.

Blogy a weby 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 pomocí fail2ban, postupujte podle kroků nastavení v tomto návodu.

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 selhání 2ban pro WordPress na Debian

1. Nejprve se musím 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 jako:

● 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 fail2ban není na serveru nainstalován, 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 WordPress. 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 ověřování WordPress a ověřování souborů xmlrpc.php, takto:

[Definition]
failregex = ^<HOST> -.*"(GET|POST).*(/wp-login.php|/xmlrpc.php).*" 200
ignoreregex =

To znamená, že jakýmkoliv způsobem GET nebo POST, byly by zpřístupněny soubory wp-login.php nebo xmlrpc.php, mohlo by být vytvořeno pravidlo fail2ban. Podmínkou je, že tyto soubory existují a útočník k nim má přístup. To znamená vrátit kód 200 (ok) při přístupu.

Uloží soubor /etc/fail2ban/filter.d/wordpress.conf.

3. Dalším krokem je konfigurace “vězení” pro WordPress. Tento krok většinu uživatelů zmate, 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 následující řádky:

[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 dojde k 5 pokusům ze stejné IP během 1800 minut, bude blokována na 3600 minut pomocí webové akce HestiaCP. (hestia[name=WEB]). Zde budete muset pomoci v závislosti na systému, který máte na serveru.

Je také velmi důležité a “logpath“. Z těchto protokolů jsou extrahována data, na kterých bude akce provedena. Ujistěte se, že umístění je správné.

Pokud nemáte nainstalovaný systém správy, akci blokování IP pomocí fail2ban pro WordPress bude nutné provést přímo přes 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 aplikujte změny.

sudo systemctl restart fail2ban

4. Po restartu zkontrolujte, zda fail2ban pro 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í, že kvůli špatné konfiguraci v fail2ban vidím, že je to blokovaná IP, ale ve skutečnosti mohl stále přistupovat wp-login.php nebo xmlrpc.php.

Chcete-li zkontrolovat, zda vše funguje, jak má, 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 správně nakonfigurovali fail2ban pro WordPress.

Související: Jak obnovit uživatelské heslo správce ve WordPress. Žá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

Jak již bylo řečeno, pokud máte nějaké dotazy nebo potřebujete pomoc, mohu vám pomoci v komentářích.

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

Mohlo by vás také zajímat...

Zanechat odpověď

Vaše emailová adresa nebude zveřejněna. Požadovaná pole jsou označena *