Hvordan konfigurerer du Fail2Ban til WordPress (WP-Login, XMLRPC)
Kort sagt, i denne vejledning finder du kommandolinjerne til at installere og konfigurere Fail2Ban til WordPress. Sikkert WordPress-login og brute force-forespørgsler fra xmlrpc.php.
Blogs og websteder udviklet på WordPress-platformen er ofte mål for cyberangreb. De fleste angreb er brute force og retter sig mod godkendelsessessionen eller XML-RPC (Remote Procedure Call using XML) udnyttelse. Heldigvis er fail2ban en meget nyttig sikkerhedsløsning til disse situationer. Hvis du vil sikre et WordPress-websted med fail2ban, skal du følge opsætningstrinnene i denne vejledning.
Først og fremmest skal du sikre dig, at du har adgang til webserveren via SSH-forbindelse, og at fail2ban-applikationen er installeret.
Fail2ban -konfiguration til WordPress på Debian
1. Først og fremmest skal jeg sikre mig, at fail2ban-applikationen er installeret og kører på serveren. Kør kommandolinjen nedenfor:
systemctl status fail2ban
I outputtet skulle du se noget som:
● 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 installeret på serveren, skal du installere det. Kør kommandolinjen for at installere fail2ban på Debian / Ubuntu:
sudo apt install fail2ban
2. Næste trin er at oprette fail2ban-filteret til WordPress. Kør kommandolinjen i terminalen for at oprette og redigere filteret wordpress.conf.
sudo nano /etc/fail2ban/filter.d/wordpress.conf
I filen wordpress.conf Indstiller WordPress -godkendelsesfiltre og filgodkendelse xmlrpc.php, som følger:
[Definition]
failregex = ^<HOST> -.*"(GET|POST).*(/wp-login.php|/xmlrpc.php).*" 200
ignoreregex =
Det betyder, at ved enhver metode, GET eller POST, filen wp-login.php eller xmlrpc.php ville blive tilgået, kunne en fail2ban-regel oprettes. Betingelsen er, at disse filer eksisterer og kan tilgås af angriberen. Det vil sige at returnere koden 200 (ok) ved adgang.
Gemmer filen /etc/fail2ban/filter.d/wordpress.conf.
3. Det næste trin er at konfigurere “fængsel” til WordPress. Dette trin forvirrer de fleste brugere, fordi reglerne skal indstilles forskelligt afhængigt af hosting-administrationssystemet (hvis det findes) eller webserverkonfigurationen.
Hvis du bruger HestiaCP, VestaCP eller MyVesta, skal du oprette og redigere filen /etc/fail2ban/jail.local.
nano /etc/fail2ban/jail.local
Tilføj følgende linjer til denne fil:
[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 ovenstående parametre efter dine behov. I den konfiguration jeg gav, hvis der er 5 genforsøg fra den samme IP inden for 1800 minutter, vil den blive blokeret i 3600 minutter ved hjælp af HestiaCP-webhandlingen. (hestia[name=WEB]). Det er her du skal hjælpe afhængigt af det system du har på din server.
Det er også meget vigtigt og “logpath“. De data, som handlingen vil blive udført på, udtrækkes fra disse logfiler. Sørg for, at placeringen er korrekt.
În cazul în care nu aveți un sistem de management instalat, va fi nevoie ca acțiunea de blocare a IP-urilor cu fail2ban pentru WordPress să se facă direct prin iptables. Linia pentru acțiune va fi următoarea:
action = iptables-multiport[name=wordpress, port="80,443", protocol=tcp]
Ca o paranteză, în loc de /etc/fail2ban/jail.local puteți utiliza și un fișier separat pentru configurare, precum: /etc/fail2ban/jail.d/wordpress.conf.
După ce ați făcut ajustările, aplicați modificările.
sudo systemctl restart fail2ban
4. După restart, verificați dacă fail2ban pentru WordPress funcționează:
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:
După ce găsiți în această listă IP-uri blocate, asigurați-vă că acestea sunt blocate și în iptables. Jeg stødte på den situation, at på grund af en forkert konfiguration, i fail2ban ser jeg, at det er en blokeret IP, men i virkeligheden kunne den stadig få adgang til wp-login.php eller xmlrpc.php.
For at kontrollere, at alt fungerer, som det skal, skal du vælge en blokeret IP fra fail2ban-listen og slå den op i iptables.
Kør kommandolinjen:
iptables -L -v -n --line-numbers
Hvis IP-adressen, der vises blokeret af fail2ban, også er på denne liste, betyder det, at du har konfigureret fail2ban korrekt til WordPress.
Relateret: Sådan nulstiller du admin brugeradgangskode i WordPress. Ingen adgang til e-mail.
Samtidig anbefales det stærkt at tjekke loggen med fail2ban-handlinger:
sudo tail -f /var/log/fail2ban.log
Når det er sagt, hvis du har spørgsmål eller brug for hjælp, kan jeg hjælpe dig i kommentarerne.
Hvordan konfigurerer du Fail2Ban til WordPress (WP-Login, XMLRPC)
Hvad er nyt
Om Stealth
Passioneret omkring teknologi, skriver jeg med glæde på StealthSettings.com siden 2006. Jeg har stor erfaring med operativsystemer: macOS, Windows og Linux, samt med programmeringssprog og bloggingplatforme (WordPress) og til webshops (WooCommerce, Magento, PrestaShop).
Se alle indlæg af StealthDu kan også være interesseret i...