Коротше кажучи, у цьому підручнику ви знайдете командні рядки, за допомогою яких можна встановити та налаштувати Fail2ban для WordPress. Безпечна автентифікація WordPress та xmlrpc.php валова дупа.
Блоги та сайти, розроблені на платформі WordPress, часто є цілями кібер -атаки. Більшість нападів мають грубу силову тип і орієнтуються на сеанс аутентифікації або експлуатацію XML-RPC (виклик дистанційного процедури за допомогою XML). На щастя, Fail2ban є дуже корисним рішенням безпеки для цих ситуацій. Якщо ви хочете захистити сайт WordPress за допомогою Fail2ban, виконайте кроки конфігурації в цьому підручнику.
Перш за все, переконайтеся, що ви маєте доступ до веб -сервера за допомогою SSH -з'єднання та що встановлено програму Fail2Ban.
Fail2ban Configuration для WordPress на Debian
1. Перш за все, ви повинні переконатися, що додаток Fail2ban встановлено і що він працює на сервері. Виконайте командний рядок нижче:
systemctl status fail2ban
У результаті ви повинні побачити щось із форми:
● 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
Якщо на сервері не встановлено Fail2ban, вам потрібно буде його встановити. Виконайте лінію замовлення для встановлення Fail2ban на Debian / Ubuntu:
sudo apt install fail2ban
2. Наступним кроком є створення фільтра Fail2ban для WordPress. Виконайте в терміналі командний рядок для створення та редагування фільтра wordpress.conf
.
sudo nano /etc/fail2ban/filter.d/wordpress.conf
У файлі wordpress.conf
Встановлює фільтри аутентифікації WordPress та автентифікацію файлів xmlrpc.php
, наступним чином:
[Definition]
failregex = ^<HOST> -.*"(GET|POST).*(/wp-login.php|/xmlrpc.php).*" 200
ignoreregex =
Це означає, що будь -яким методом, GET
або POST
, доступ до файлів wp-login.php або xmlrpc.php, правила Fail2ban може бути створена. Умова полягає в тому, що ці файли існують і можуть отримати доступ зловмисника. Тобто повернути код 200 (OK) для доступу.
Зберігає файл /etc/fail2ban/filter.d/wordpress.conf
.
3. Наступним кроком є налаштування “в'язниця” для WordPress. На цьому кроці більшість користувачів плутаються, оскільки правила повинні бути встановлені по -різному залежно від системи управління хостингом (якщо вона існує) або конфігурації веб -сервера.
Якщо ви використовуєте hestiacp, vestacp або myvesta, створіть та редагувати файл /etc/fail2ban/jail.local
.
nano /etc/fail2ban/jail.local
Додайте в цей файл рядки нижче:
[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.
Відрегулюйте вищезазначені параметри відповідно до ваших потреб. У конфігурації, наведеній мною, якщо протягом 1800 хвилин є 5 повторних спроб того ж IP, вона буде заблокована протягом 3600 хвилин за допомогою веб -hestiACP. (hestia[name=WEB]
.). Тут вам потрібно буде допомогти відповідно до системи, яку ви маєте на сервері.
Це також дуже важливо і “logpath
“. З цих журналів витягуються дані, на основі яких будуть виконуватися дії. Переконайтесь, що місце розташування правильне.
Якщо у вас немає встановленої системи управління, вам знадобиться дія блокування IPS з Fail2ban для WordPress iptables
. Рядок дій буде таким:
action = iptables-multiport[name=wordpress, port="80,443", protocol=tcp]
Як кронштейн, замість /etc/fail2ban/jail.local
Ви також можете використовувати окремий файл конфігурації, наприклад: /etc/fail2ban/jail.d/wordpress.conf
.
Після того, як ви внесли коригування, застосуйте зміни.
sudo systemctl restart fail2ban
4. Після перезапуску перевірте, що Fail2ban для WordPress працює:
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:
Після пошуку в цьому списку заблокованих IPS, переконайтеся, що вони заблоковані та в iptables
. Я зустрів ситуацію, яка через неправильну конфігурацію, у Fail2ban, щоб побачити, що це заблокований IP, але насправді він все ще може отримати доступ wp-login.php
або xmlrpc.php
.
Щоб перевірити, чи все працює належним чином, виберіть IP, заблокований зі списку Fail2ban і шукайте його в IPTABLES.
Виконайте командний рядок:
iptables -L -v -n --line-numbers
Якщо IP, який з'являється, заблокований Fail2ban, також знайдений у цьому списку, це означає, що ви налаштували правильну Fail2ban для WordPress.
Пов'язаний: Як скинути пароль користувача адміністратора у WordPress. Без доступу до електронної пошти.
У той же час, дуже доцільно перевірити журнал за допомогою дій Fail2ban:
sudo tail -f /var/log/fail2ban.log
Якщо говорити, якщо у вас є якісь занепокоєння або потребуєте допомоги, вони можуть допомогти вам у коментарях.