Lyhyesti sanottuna, tästä opetusohjelmasta löydät komentorivit, joiden avulla voit asentaa ja määrittää Fail2Banin WordPaina. Suojaa todennuksen WordPress ja xmlrpc.php:n raakavoimakyselyt.
Alustalla kehitetyt blogit ja verkkosivustot WordPress ovat usein kyberhyökkäysten kohteena. Useimmat hyökkäykset ovat raakaa voimaa ja kohdistuvat todennusistuntoon tai XML-RPC:n (Remote Procedure Call with XML) -käyttöön. Onneksi fail2ban on erittäin hyödyllinen tietoturvaratkaisu näihin tilanteisiin. Jos haluat suojata verkkosivuston WordPress ja fail2ban, noudata tämän opetusohjelman määritysvaiheita.
Varmista ensinnäkin, että sinulla on pääsy verkkopalvelimeen SSH-yhteyden kautta ja että fail2ban-sovellus on asennettu.
Fail2Ban-määritys kohteelle WordPress Debianissa
1. Ensinnäkin sinun on varmistettava, että fail2ban-sovellus on asennettu ja käynnissä palvelimella. Suorita alla oleva komentorivi:
systemctl status fail2ban
Tulosteessa sinun pitäisi nähdä jotain tällaista:
● 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
Jos fail2ban ei ole asennettu palvelimellesi, sinun on asennettava se. Asenna fail2ban Debianiin/Ubuntuun suorittamalla komentorivi:
sudo apt install fail2ban
2. Seuraava vaihe on fail2ban-suodattimen luominen WordPaina. Luo ja muokkaa suodatinta suorittamalla komentorivi päätteessä wordpress.conf
.
sudo nano /etc/fail2ban/filter.d/wordpress.conf
Tiedostossa wordpress.conf
asettaa suodattimet todennusta varten WordPress ja tiedostolle xmlrpc.php
, seuraavasti:
[Definition]
failregex = ^<HOST> -.*"(GET|POST).*(/wp-login.php|/xmlrpc.php).*" 200
ignoreregex =
Tämä tarkoittaa, että millä tahansa menetelmällä GET
tai POST
, jos wp-login.php- tai xmlrpc.php-tiedostoja käytetään, fail2ban-sääntö voidaan luoda. Edellytyksenä on, että nämä tiedostot ovat olemassa ja hyökkääjä voi käyttää niitä. Eli sen pitäisi palauttaa koodi 200 (ok), kun sitä käytetään.
Tallenna tiedosto /etc/fail2ban/filter.d/wordpress.conf
.
3. Seuraava vaihe on "vankilan" määrittäminen WordPaina. Tässä useimmat käyttäjät hämmentyvät, koska säännöt on asetettava eri tavalla hosting-hallintajärjestelmän (jos sellainen on) tai verkkopalvelimen kokoonpanon mukaan.
Jos käytät HestiaCP:tä, VestaCP tai MyVesta, luo ja muokkaa tiedosto /etc/fail2ban/jail.local
.
nano /etc/fail2ban/jail.local
Lisää alla olevat rivit tähän tiedostoon:
[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.
Säädä yllä olevia parametreja tarpeidesi mukaan. Antamassani konfiguraatiossa, jos 1800 minuutin välein tapahtuu 5 toistuvaa yritystä samasta IP:stä, se estetään 3600 minuutiksi käyttämällä HestiaCP-toimintoa webille. (hestia[name=WEB]
). Täällä tarvitset apua palvelimellasi olevan järjestelmän mukaan.
On myös erittäin tärkeää "logpath
". Näistä lokeista poimitaan tiedot, joiden perusteella toimenpiteitä tehdään. Varmista, että sijainti on oikea.
Jos sinulla ei ole hallintajärjestelmää asennettuna, sinun on estettävä IP-osoitteet fail2ban for -toiminnolla WordPress tehdään suoraan kautta iptables
. Toimintalinja on seuraava:
action = iptables-multiport[name=wordpress, port="80,443", protocol=tcp]
Suluissa sen sijaan /etc/fail2ban/jail.local
voit myös käyttää erillistä tiedostoa konfigurointiin, kuten: /etc/fail2ban/jail.d/wordpress.conf
.
Kun olet tehnyt säädöt, ota muutokset käyttöön.
sudo systemctl restart fail2ban
4. Tarkista uudelleenkäynnistyksen jälkeen, onko fail2ban for WordPress toimii:
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:
Kun löydät estettyjä IP-osoitteita tästä luettelosta, varmista, että myös ne on estetty iptables
. Törmäsin tilanteeseen, jossa virheen takia fail2banissa näin, että IP oli estetty, mutta todellisuudessa se pääsi silti wp-login.php
tai xmlrpc.php
.
Tarkistaaksesi, toimiiko kaikki oikein, valitse estetty IP-osoite fail2ban-luettelosta ja etsi se iptablesista.
Suorita komentorivi:
iptables -L -v -n --line-numbers
Jos IP-osoite, jonka fail2ban näyttää estävän, on myös tässä luettelossa, se tarkoittaa, että olet määrittänyt fail2banin oikein. WordLehdistö.
Related: Kuinka nollata admin-käyttäjän salasana sisään WordPaina. Ei pääsyä sähköpostiin.
Samanaikaisesti on erittäin suositeltavaa tarkistaa loki fail2ban-toiminnoilla:
sudo tail -f /var/log/fail2ban.log
Jos sinulla on kysyttävää tai tarvitset apua, voin auttaa sinua kommenteissa.