Kort sagt, i denne opplæringen finner du kommandolinjene som du kan installere og konfigurere fail2ban for WordPress. Sikre WordPress -autentisering og XMLRPC.PHP GROSS ASS.
Blogger og nettsteder utviklet på WordPress -plattformen er ofte nettangrepsmål. De fleste angrep er av grov krafttype og er rettet mot godkjenningsøkten eller utnyttelsen av XML-RPC (ekstern prosedyreanrop ved bruk av XML). Heldigvis er Fail2Ban en veldig nyttig sikkerhetsløsning for disse situasjonene. Hvis du vil sikre et WordPress -nettsted med Fail2BAN, følg konfigurasjonstrinnene i denne opplæringen.
Først av alt, sørg for at du har tilgang til webserveren ved 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 at den kjører på serveren. Utfør kommandolinjen nedenfor:
systemctl status fail2ban
I output bør du se noe av skjemaet:
● 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, må du installere den. Utfør ordrelinjen for installasjon Fail2Ban på Debian / Ubuntu:
sudo apt install fail2ban
2. Neste trinn er å lage Fail2Ban -filteret for WordPress. Utfør i terminalen kommandolinjen for å opprette og redigere filteret wordpress.conf
.
sudo nano /etc/fail2ban/filter.d/wordpress.conf
I filen wordpress.conf
Angir WordPress -autentiseringsfilter og filgodkjenning xmlrpc.php
, som følger:
[Definition]
failregex = ^<HOST> -.*"(GET|POST).*(/wp-login.php|/xmlrpc.php).*" 200
ignoreregex =
Dette betyr at ved enhver metode, GET
eller POST
, vil få tilgang til wp-login.php eller xmlrpc.php-filene, kan det opprettes en regel for fail2ban. Tilstanden er at disse filene eksisterer og kan nås av angriperen. Det er for å returnere Code 200 (OK) for å få tilgang til.
Lagrer filen /etc/fail2ban/filter.d/wordpress.conf
.
3. Neste trinn er å konfigurere “fengsel” for WordPress. På dette trinnet er de fleste brukere forvirrede, fordi reglene må etableres annerledes avhengig av vertsstyringssystemet (hvis det eksisterer) eller webserverkonfigurasjonen.
Hvis du bruker HestiaCP, Vestacp eller MyVesta, oppretter og redigerer filen /etc/fail2ban/jail.local
.
nano /etc/fail2ban/jail.local
Legg til denne filen linjene nedenfor:
[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 gitt av meg, hvis det innen 1800 minutter er 5 gjentatte forsøk fra samme IP, vil den bli blokkert i 3600 minutter ved hjelp av nettet HestiaCP. (hestia[name=WEB]
). Her må du hjelpe i henhold til systemet du har på serveren.
Det er også veldig viktig og “logpath
“. Fra disse loggene blir trukket ut dataene på grunnlag av hvilken handling som skal utføres. Forsikre deg om at stedet er riktig.
Hvis du ikke har et installert styringssystem, trenger du handlingen med å blokkere IPS med Fail2Ban for WordPress som skal gjøres direkte av iptables
. Linjen for handling vil være som følger:
action = iptables-multiport[name=wordpress, port="80,443", protocol=tcp]
Som en brakett, i stedet for /etc/fail2ban/jail.local
Du kan også bruke en egen konfigurasjonsfil, for eksempel: /etc/fail2ban/jail.d/wordpress.conf
.
Etter at du har gjort justeringene, bruker du endringene.
sudo systemctl restart fail2ban
4. Etter omstart, sjekk at 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:
Etter å ha funnet i denne listen blokkerte IP -er, må du sørge for at de er blokkert og i iptables
. Jeg møtte situasjonen som på grunn av feil konfigurasjon, i Fail2Ban for å se at det er en blokkert IP, men i virkeligheten kan den fortsatt få tilgang til wp-login.php
eller xmlrpc.php
.
For å sjekke om alt fungerer ordentlig, velg en IP -blokkert fra Fail2BAN -listen og se etter den i iptables.
Utfør kommandolinjen:
iptables -L -v -n --line-numbers
Hvis IP -en som vises blokkert av Fail2Ban også finnes i denne listen, betyr det at du har konfigurert riktig fail2ban for WordPress.
Relatert: Hvordan tilbakestille administratorbrukerpassordet i WordPress. Uten tilgang til e -post.
Samtidig er det veldig tilrådelig å sjekke loggen med Fail2BAN -handlingene:
sudo tail -f /var/log/fail2ban.log
Når det er sagt, hvis du har noen bekymringer eller trenger hjelp, kan de hjelpe deg i kommentarene.