Jak skonfigurować Fail2Ban dla WordPress (logowanie wp, xmlrpc)

Krótko mówiąc, w tym samouczku znajdziesz wiersze poleceń, za pomocą których możesz zainstalować i skonfigurować Fail2Ban dla WordNaciskać. Zapewnia bezpieczne uwierzytelnianie WordPress i brutalne zapytania do xmlrpc.php.

Blogi i strony internetowe tworzone na platformie WordPress są częstymi celami cyberataków. Większość ataków odbywa się metodą siłową i ma na celu przerwanie sesji uwierzytelniania lub wykorzystanie protokołu XML-RPC (zdalne wywoływanie procedur przy użyciu XML). Na szczęście fail2ban jest bardzo użytecznym rozwiązaniem zabezpieczającym w takich sytuacjach. Jeśli chcesz zabezpieczyć stronę internetową WordPress Jeśli używasz fail2ban, wykonaj czynności konfiguracyjne opisane w tym samouczku.

Przede wszystkim upewnij się, że masz dostęp do serwera WWW poprzez połączenie SSH i że aplikacja fail2ban jest zainstalowana.

Konfiguracja Fail2Ban dla WordPress na Debianie

1. Przede wszystkim musisz upewnić się, że aplikacja fail2ban jest zainstalowana i uruchomiona na serwerze. Uruchom poniższy wiersz poleceń:

systemctl status fail2ban

Na wyjściu powinieneś zobaczyć coś takiego:

● 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 na Twoim serwerze nie ma zainstalowanego fail2ban, musisz go zainstalować. Uruchom wiersz poleceń, aby zainstalować fail2ban w systemie Debian/Ubuntu:

sudo apt install fail2ban

2. Następnym krokiem jest utworzenie filtra fail2ban dla WordNaciskać. Uruchom wiersz poleceń w terminalu, aby utworzyć i edytować filtr wordpress.conf.

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

W pliku wordpress.conf ustawia filtry do uwierzytelniania WordPress i dla pliku xmlrpc.php, w następujący sposób:

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

Oznacza to, że niezależnie od metody, GET lub POST, jeśli uzyskano dostęp do plików wp-login.php lub xmlrpc.php, można utworzyć regułę fail2ban. Warunkiem jest, aby pliki te istniały i aby atakujący mógł uzyskać do nich dostęp. Oznacza to, że po uzyskaniu dostępu powinien zwrócić kod 200 (ok).

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

3. Następnym krokiem jest skonfigurowanie „więzienia” dla WordNaciskać. W tym miejscu większość użytkowników czuje się zdezorientowana, ponieważ reguły muszą być ustawione inaczej w zależności od systemu zarządzania hostingiem (jeśli taki 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 poniższe wiersze do tego pliku:

[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 według swoich potrzeb. W podanej przeze mnie konfiguracji, jeśli w odstępie 1800 minut wystąpi 5 powtórzonych prób z tego samego adresu IP, zostanie on zablokowany na 3600 minut za pomocą akcji HestiaCP dla sieci. (hestia[name=WEB]). Tutaj będziesz potrzebować pomocy, zależnie od systemu, jaki masz na serwerze.

Bardzo ważne jest również, aby „logpath". Z tych dzienników wyodrębniane są dane na temat tego, jakie działania zostaną podjęte. Sprawdź, czy lokalizacja jest prawidłowa.

Jeśli nie masz zainstalowanego systemu zarządzania, będziesz musiał zablokować adresy IP za pomocą fail2ban. WordPress być wykonane bezpośrednio przez iptables. Kolejność działań będzie następująca:

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

W nawiasie zamiast /etc/fail2ban/jail.local Możesz również użyć osobnego pliku do konfiguracji, takiego jak: /etc/fail2ban/jail.d/wordpress.conf.

Po dokonaniu zmian należy je zastosować.

sudo systemctl restart fail2ban

4. Po ponownym uruchomieniu sprawdź, czy fail2ban dla WordPress fabryka:

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:

Gdy znajdziesz zablokowane adresy IP na tej liście, upewnij się, że są one również zablokowane iptables. Spotkałem się z sytuacją, w której z powodu błędnej konfiguracji w fail2ban widziałem, że adres IP został zablokowany, ale w rzeczywistości nadal mógł uzyskać dostęp wp-login.php lub xmlrpc.php.

Aby sprawdzić czy wszystko działa prawidłowo, wybierz zablokowany adres IP z listy fail2ban i wyszukaj go w iptables.

Uruchom wiersz poleceń:

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

Jeżeli adres IP zablokowany przez fail2ban znajduje się również na tej liście, oznacza to, że poprawnie skonfigurowałeś dla niego fail2ban. WordNaciśnij.

Związane z: Jak zresetować hasło użytkownika administratora w WordNaciskać. Brak dostępu do poczty elektronicznej.

Jednocześnie zdecydowanie zaleca się sprawdzenie logu działań fail2ban:

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

Jeśli jednak masz jakieś pytania lub potrzebujesz pomocy, mogę Ci pomóc w komentarzach.

Pasjonat technologii, z przyjemnością piszę dalej StealthSettings.com od 2006 roku. Mam duże doświadczenie w systemach operacyjnych: macOS, Windows şi Linux, ale także w językach programowania i platformach blogowych (WordPrasa) i dla sklepów internetowych (WooCommerce, Magento, PrestaShop).

Home » Twoje źródło samouczków IT, przydatnych wskazówek i aktualności. » Jak skonfigurować Fail2Ban dla WordPress (logowanie wp, xmlrpc)
Zostaw komentarz