Hvordan konfigurere Fail2Ban for WordPress (wp-login, xmlrpc)

Kort sagt, i denne opplæringen finner du kommandolinjene som du kan installere og konfigurere Fail2Ban for WordPressen. Sikrer autentisering WordPress og brute force-spørringer av xmlrpc.php.

Blogger og nettsteder utviklet på plattformen WordPress er ofte mål for nettangrep. De fleste angrep er brute force og retter seg mot autentiseringsøkten eller utnytter XML-RPC (Remote Procedure Call using XML). Heldigvis er fail2ban en svært nyttig sikkerhetsløsning for disse situasjonene. Hvis du ønsker å sikre en nettside WordPress med fail2ban, følg konfigurasjonstrinnene i denne opplæringen.

Først av alt, sørg for at du har tilgang til webserveren via SSH-tilkobling og at fail2ban-applikasjonen er installert.

Fail2Ban-konfigurasjon for WordPress på Debian

1. Først av alt må du sørge for at fail2ban-applikasjonen er installert og kjører på serveren. Kjør kommandolinjen nedenfor:

systemctl status fail2ban

I utgangen bør du se noe slikt:

● 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

Hvis fail2ban ikke er installert på serveren din, må du installere den. Kjør kommandolinjen for å installere fail2ban på Debian/Ubuntu:

sudo apt install fail2ban

2. Neste trinn er å lage fail2ban-filteret for WordPressen. Kjør kommandolinjen i terminalen for å opprette og redigere filteret wordpress.conf.

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

I filen wordpress.conf setter filtrene for autentisering WordPress og for filen xmlrpc.php, følgende:

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

Dette betyr at uansett metode, GET eller POST, hvis filene wp-login.php eller xmlrpc.php åpnes, kan en regel for fail2ban opprettes. Betingelsen er at disse filene eksisterer og kan nås av angriperen. Det vil si at den skal returnere koden 200 (ok) når den åpnes.

Lagre filen /etc/fail2ban/filter.d/wordpress.conf.

3. Neste trinn er å konfigurere "fengselet" for WordPressen. Det er her de fleste brukere blir forvirret, fordi reglene må settes annerledes avhengig av hosting-administrasjonssystemet (hvis noen) eller webserverkonfigurasjonen.

Hvis du bruker HestiaCP, VestaCP eller MyVesta, opprett og rediger filen /etc/fail2ban/jail.local.

nano /etc/fail2ban/jail.local

Legg til linjene nedenfor i denne filen:

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

Juster parametrene ovenfor i henhold til dine behov. I konfigurasjonen jeg ga, hvis det innen et intervall på 1800 minutter er 5 gjentatte forsøk fra samme IP, vil den bli blokkert i 3600 minutter ved å bruke HestiaCP-handlingen for nettet. (hestia[name=WEB]). Her trenger du hjelp avhengig av systemet du har på serveren.

Det er også veldig viktig å "logpath". Fra disse loggene hentes dataene som vil bli iverksatt ut. Kontroller at plasseringen er riktig.

Hvis du ikke har installert et administrasjonssystem, må du blokkere IP-er med fail2ban for WordPress skal gjøres direkte gjennom iptables. Handlingslinjen vil være som følger:

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

Som en parentes, i stedet for /etc/fail2ban/jail.local du kan også bruke en egen fil for konfigurasjon, som: /etc/fail2ban/jail.d/wordpress.conf.

Etter at du har gjort justeringene, bruk endringene.

sudo systemctl restart fail2ban

4. Etter omstart, sjekk om fail2ban for WordPress fungerer:

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:

Når du finner blokkerte IP-er i denne listen, sørg for at de også er blokkert iptables. Jeg møtte situasjonen der jeg på grunn av en feilkonfigurasjon i fail2ban så at en IP ble blokkert, men i virkeligheten kunne den fortsatt få tilgang wp-login.php eller xmlrpc.php.

For å sjekke om alt fungerer som det skal, velg en blokkert IP fra fail2ban-listen og slå den opp i iptables.

Kjør kommandolinjen:

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

Hvis IP-en som vises blokkert av fail2ban også er på denne listen, betyr det at du har konfigurert fail2ban riktig for den. WordTrykk.

Relatert: Slik tilbakestiller du administratorpassordet WordPressen. Ingen tilgang til e-post.

Samtidig anbefales det sterkt å sjekke loggen med fail2ban-handlinger:

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

Når det er sagt, hvis du har spørsmål eller trenger hjelp, kan jeg hjelpe deg i kommentarene.

Teknologiinteressert, jeg skriver med glede på StealthSettings.com siden 2006. Jeg har bred erfaring med operativsystemer: macOS, Windows og Linux, samt programmeringsspråk og bloggplattformer (WordPress) og for nettbutikker (WooCommerce, Magento, PrestaShop).

Hjem » Din kilde for IT-veiledninger, nyttige tips og nyheter. » Hvordan konfigurere Fail2Ban for WordPress (wp-login, xmlrpc)
Legg igjen en kommentar