Kako konfigurirate Fail2ban za WordPress (WP-Login, XMLRPC)

Skratka, v tej vadnici boste našli ukazne vrstice, prek katerih lahko namestite in konfigurirate Fail2ban za WordPress. Varno pristnosti WordPress in bruto rit XMLRPC.php.

Blogi in spletna mesta, razvita na platformi WordPress, so pogosto cilji kibernetskega napada. Večina napadov je bruto sile in cilja na sejo overjanja ali izkoriščanje XML-RPC (klic na daljavo z uporabo XML). Na srečo je Fail2ban zelo uporabna varnostna rešitev za te situacije. Če želite zavariti spletno mesto WordPress z Fail2Ban, sledite korakom konfiguracije v tej vadnici.

Najprej se prepričajte, da imate dostop do spletnega strežnika s pomočjo SSH Connection in da je nameščena aplikacija FAIL2BAN.

Fail2ban konfiguracija za WordPress na Debian

1. Najprej se morate prepričati, ali je aplikacija FAIL2BAN nameščena in da deluje na strežniku. Izvedite spodnjo ukazno vrstico:

systemctl status fail2ban

V izhodu bi morali videti nekaj obrazca:

● 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

Če Fail2ban ni nameščen na strežniku, ga boste morali namestiti. Izvedite vrstico naročila za namestitev Fail2ban na Debian / Ubuntu:

sudo apt install fail2ban

2. Naslednji korak je ustvariti filter FAIL2BAN za WordPress. Izvedite v terminalu ukazno vrstico, da ustvarite in uredite filter wordpress.conf.

sudo nano /etc/fail2ban/filter.d/wordpress.conf

V datoteki wordpress.conf Nastavi filtre za preverjanje pristnosti WordPress in preverjanje pristnosti datotek xmlrpc.php, kot sledi:

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

To pomeni, da po kateri koli metodi GET ali POST, bi bili dostopni datoteke wp-login.php ali xmlrpc.php, lahko ustvarite pravilo za Fail2ban. Pogoj je, da te datoteke obstajajo in do njih lahko dostopa napadalec. To je vrniti kodo 200 (OK) za dostop.

Shrani datoteko /etc/fail2ban/filter.d/wordpress.conf.

3. Naslednji korak je konfiguriranje “zapor” za WordPress. Na tem koraku je večina uporabnikov zmedena, ker je treba pravila vzpostaviti drugače, odvisno od sistema upravljanja gostovanja (če obstaja) ali konfiguracije spletnega strežnika.

Če uporabljate Hestiacp, Vestacp ali Myvesta, ustvarite in uredite datoteko /etc/fail2ban/jail.local.

nano /etc/fail2ban/jail.local

V to datoteko dodajte spodnje vrstice:

[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.

Prilagodite zgornje parametre glede na vaše potrebe. V konfiguraciji, ki jo je dal jaz, če je v 1800 minutah 5 večkratnih poskusov iz istega IP -ja, bo s pomočjo spletnega Hestiacp blokiran 3600 minut. (hestia[name=WEB]). Tu boste morali pomagati v skladu s sistemom, ki ga imate na strežniku.

Je tudi zelo pomembno in “logpath“. Iz teh dnevnikov se izvlečejo podatki na podlagi katerih bodo izvedeni ukrepi. Prepričajte se, da je lokacija pravilna.

Če nimate nameščenega sistema za upravljanje, boste potrebovali dejanje blokiranja IPS z Fail2Ban, da WordPress neposredno opravi iptables. Vrstica za dejanje bo naslednja:

action   = iptables-multiport[name=wordpress, port="80,443", protocol=tcp]

Kot nosilec namesto /etc/fail2ban/jail.local Uporabite lahko tudi ločeno konfiguracijsko datoteko, na primer: /etc/fail2ban/jail.d/wordpress.conf.

Ko naredite prilagoditve, uporabite spremembe.

sudo systemctl restart fail2ban

4. Po ponovnem zagonu preverite, ali ni Fail2ban za WordPress:

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:

Ko na tem seznamu ugotovimo, da so blokirali IPS, se prepričajte, da so blokirani in noter iptables. Spoznal sem situacijo, da je zaradi napačne konfiguracije v Fail2banu videl, da gre za blokiran IP, v resnici pa bi lahko še naprej dostopal wp-login.php ali xmlrpc.php.

Če želite preveriti, ali vse deluje pravilno, izberite IP, blokiran s seznama FAIL2BAN, in ga poiščite v iptables.

Izvedite ukazno vrstico:

iptables -L -v -n --line-numbers

Če je na tem seznamu tudi IP, ki se pojavi blokiran z Fail2Ban, to pomeni, da ste za WordPress konfigurirali pravilen fail2ban.

Sorazmerno: Kako ponastaviti uporabniško geslo skrbnika v WordPress. Brez dostopa do e -pošte.

Hkrati je zelo priporočljivo preveriti dnevnik z dejanji FAIL2BAN:

sudo tail -f /var/log/fail2ban.log

Če imate pomisleke ali potrebujete pomoč, vam lahko pomagajo pri komentarjih.

Strastno do tehnologije, pišem z užitkom na StealthSetts.com, ki se začne z letom 2006. Imam bogato izkušnjo v operacijskih sistemih: MacOS, Windows in Linux, pa tudi v programskih jezikih in platformah za bloganje (WordPress) in za spletne trgovine (WooCommerce, Magento, Presishop).

Doma Vaš vir IT vaj, koristni nasveti in novice. Kako konfigurirate Fail2ban za WordPress (WP-Login, XMLRPC)
Pustite komentar