Jak skonfigurować Fail2ban dla WordPress (WP-Login, XMLRPC)

Krótko mówiąc, w tym samouczku znajdziesz wiersze poleceń, za pomocą których możesz zainstalować i skonfigurować Fail2ban dla WordPress. Bezpieczne uwierzytelnianie WordPress i Xmlrpc.php brutto.

Blogi i strony opracowane na platformie WordPress są często celami cyberatakami. Większość ataków ma rodzaj siły brutto i kieruje sesję uwierzytelniania lub wykorzystanie XML-RPC (połączenie zdalnego procedury za pomocą XML). Na szczęście Fail2ban jest bardzo przydatnym rozwiązaniem bezpieczeństwa w tych sytuacjach. Jeśli chcesz zabezpieczyć witrynę WordPress za pomocą Fail2ban, postępuj zgodnie z krokami konfiguracji w tym samouczku.

Przede wszystkim upewnij się, że masz dostęp do serwera WWW przez SSH Connection i że aplikacja Fail2ban jest zainstalowana.

KONFIGURACJA FAIL2BAN dla WordPress na Debian

1. Po pierwsze, musisz upewnić się, że aplikacja Fai2ban jest zainstalowana i że działa na serwerze. Wykonaj wiersz poleceń poniżej:

systemctl status fail2ban

Na wyjściu powinieneś zobaczyć coś z formularza:

● 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

Jeśli Fail2ban nie zostanie zainstalowany na serwerze, musisz go zainstalować. Wykonaj linię zamówień dla instalacji Fail2ban na Debian / Ubuntu:

sudo apt install fail2ban

2. Następnym krokiem jest utworzenie filtra Fail2ban dla WordPress. Wykonaj w terminalu wiersz polecenia, aby utworzyć i edytować filtr wordpress.conf.

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

W pliku wordpress.conf Ustawia filtry uwierzytelniania WordPress i uwierzytelnianie plików xmlrpc.php, jak następuje:

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

Oznacza to, że dowolną metodą, GET Lub POST. Warunkiem jest, aby te pliki istnieją i mogą do nich uzyskać dostęp atakujący. To znaczy zwrócić kod 200 (OK), aby uzyskać dostęp.

Zapisuje plik /etc/fail2ban/filter.d/wordpress.conf.

3. Następnym krokiem jest skonfigurowanie “więzienie” dla WordPress. Na tym etapie większość użytkowników jest zdezorientowana, ponieważ reguły należy ustalić inaczej w zależności od systemu zarządzania hostingiem (jeśli istnieje) lub konfiguracji serwera WWW.

Jeśli używasz HestiACP, VestACP lub Myvesta, utwórz i edytuj plik /etc/fail2ban/jail.local.

nano /etc/fail2ban/jail.local

Dodaj ten plik poniższe wiersze:

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

Dostosuj powyższe parametry zgodnie z Twoimi potrzebami. W konfiguracji podanej przeze mnie, jeśli w ciągu 1800 minut pojawi się 5 powtarzających się prób z tego samego IP, zostanie on zablokowany przez 3600 minut za pomocą sieci Hestiacp. (hestia[name=WEB]). Tutaj musisz pomóc zgodnie z systemem, który masz na serwerze.

Jest to również bardzo ważne i “logpath“. Z tych dzienników wyodrębnia się dane na podstawie tego, które zostanie wykonane. Upewnij się, że lokalizacja jest poprawna.

Jeśli nie masz zainstalowanego systemu zarządzania, będziesz potrzebować działania blokowania IPS z upadkiem2ban, aby WordPress mógł być wykonany bezpośrednio iptables. Linia akcji będzie następująca:

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

Jako wspornik zamiast /etc/fail2ban/jail.local Możesz także użyć osobnego pliku konfiguracyjnego, takiego jak: /etc/fail2ban/jail.d/wordpress.conf.

Po dokonaniu korekt zastosuj zmiany.

sudo systemctl restart fail2ban

4. Po ponownym uruchomieniu sprawdź, czy nie udało się WordPress działa:

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:

Po znalezieniu na tej liście zablokowanych IP, upewnij się, że są zablokowane i w środku iptables. Spotkałem sytuację, że ze względu na niewłaściwą konfigurację, w Fail2ban, aby zobaczyć, że jest to zablokowany adres IP, ale w rzeczywistości może nadal uzyskać dostęp wp-login.php Lub xmlrpc.php.

Aby sprawdzić, czy wszystko działa poprawnie, wybierz IP zablokowane z listy Fail2ban i poszukaj go w IPTABLES.

Wykonaj wiersz poleceń:

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

Jeśli na tej liście znajduje się również zablokowany przez IP przez Fail2ban, oznacza to, że skonfigurowałeś prawidłowy fail2ban dla WordPress.

Powiązany: Jak zresetować hasło użytkownika administratora w WordPress. Bez dostępu do e -maila.

Jednocześnie bardzo wskazane jest sprawdzenie dziennika z działaniami Fail2ban:

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

Biorąc to pod uwagę, jeśli masz jakieś obawy lub potrzebujesz pomocy, mogą ci pomóc w komentarzach.

Pasjonując się technologią, z przyjemnością piszę na StealthSetts.com Począwszy od 2006 roku. Mam bogate doświadczenie w systemach operacyjnych: macOS, Windows i Linux, ale także w językach programowania i platformach blogowych (WordPress) oraz w sklepach internetowych (WooCommerce, Magento, Presashop).

Dom Twoje źródło samouczków, przydatne wskazówki i wiadomości. Jak skonfigurować Fail2ban dla WordPress (WP-Login, XMLRPC)
Zostaw komentarz