Kort sagt, i denna handledning hittar du kommandoraderna genom vilka du kan installera och konfigurera Fail2Ban för WordTrycka. Säkrar autentisering WordPress och brute force-frågor av xmlrpc.php.
Bloggar och webbplatser utvecklade på plattformen WordPress är ofta mål för cyberattacker. De flesta attacker är brute force och riktar sig mot autentiseringssessionen eller utnyttjar XML-RPC (Remote Procedure Call using XML). Lyckligtvis är fail2ban en mycket användbar säkerhetslösning för dessa situationer. Om du vill säkra en webbplats WordPress med fail2ban, följ konfigurationsstegen i denna handledning.
Först och främst, se till att du har tillgång till webbservern via SSH-anslutning och att fail2ban-applikationen är installerad.
Fail2Ban-konfiguration för WordPress på Debian
1. Först och främst måste du se till att fail2ban-applikationen är installerad och körs på servern. Kör kommandoraden nedan:
systemctl status fail2ban
I utgången bör du se något sånt här:
● 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
Om fail2ban inte är installerat på din server måste du installera det. Kör kommandoraden för att installera fail2ban på Debian/Ubuntu:
sudo apt install fail2ban
2. Nästa steg är att skapa fail2ban-filtret för WordTrycka. Kör kommandoraden i terminalen för att skapa och redigera filtret wordpress.conf
.
sudo nano /etc/fail2ban/filter.d/wordpress.conf
I filen wordpress.conf
ställer in filtren för autentisering WordPress och för filen xmlrpc.php
, som följer:
[Definition]
failregex = ^<HOST> -.*"(GET|POST).*(/wp-login.php|/xmlrpc.php).*" 200
ignoreregex =
Detta betyder att oavsett metod, GET
eller POST
, om filerna wp-login.php eller xmlrpc.php nås, kan en regel för fail2ban skapas. Villkoret är att dessa filer finns och kan nås av angriparen. Det vill säga att den ska returnera koden 200 (ok) när den öppnas.
Spara filen /etc/fail2ban/filter.d/wordpress.conf
.
3. Nästa steg är att konfigurera "fängelset" för WordTrycka. Det är här de flesta användare blir förvirrade, eftersom reglerna måste ställas in på olika sätt beroende på värdhanteringssystemet (om det finns) eller webbserverns konfiguration.
Om du använder HestiaCP, VestaCP eller MyVesta, skapa och redigera filen /etc/fail2ban/jail.local
.
nano /etc/fail2ban/jail.local
Lägg till raderna nedan i den här 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.
Justera ovanstående parametrar efter dina behov. I konfigurationen jag gav, om det inom ett intervall på 1800 minuter finns 5 upprepade försök från samma IP, kommer det att blockeras i 3600 minuter med hjälp av HestiaCP-åtgärden för webben. (hestia[name=WEB]
). Här behöver du hjälp beroende på vilket system du har på servern.
Det är också mycket viktigt att "logpath
". Från dessa loggar extraheras uppgifterna om vilka åtgärder kommer att vidtas. Se till att platsen är korrekt.
Om du inte har ett hanteringssystem installerat måste du blockera IP-adresser med fail2ban för WordPress ska göras direkt genom iptables
. Handlingslinjen kommer att vara följande:
action = iptables-multiport[name=wordpress, port="80,443", protocol=tcp]
Som en parentes istället för /etc/fail2ban/jail.local
du kan också använda en separat fil för konfiguration, som: /etc/fail2ban/jail.d/wordpress.conf
.
När du har gjort dina justeringar, tillämpa ändringarna.
sudo systemctl restart fail2ban
4. Efter omstart, kontrollera om fail2ban för WordPress fabrik:
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 hittar blockerade IP-adresser i den här listan, se till att de också är blockerade iptables
. Jag stötte på situationen där jag på grund av en felaktig konfiguration i fail2ban såg att en IP var blockerad, men i verkligheten kunde den fortfarande komma åt wp-login.php
eller xmlrpc.php
.
För att kontrollera om allt fungerar korrekt, välj en blockerad IP från fail2ban-listan och slå upp den i iptables.
Kör kommandoraden:
iptables -L -v -n --line-numbers
Om IP-adressen som visas blockerad av fail2ban också finns i den här listan betyder det att du har konfigurerat fail2ban korrekt för den. WordTryck.
Relaterat: Hur man återställer administratörens användarlösenord i WordTrycka. Ingen tillgång till e-post.
Samtidigt rekommenderas det starkt att kontrollera loggen med fail2ban-åtgärder:
sudo tail -f /var/log/fail2ban.log
Som sagt, om du har några frågor eller behöver hjälp kan jag hjälpa dig i kommentarerna.