Як захистити WordPress за допомогою Fail2Ban на Ubuntu

Як захистити WordPress за допомогою Fail2Ban на Ubuntu

Вступ

WordPress є однією з найпопулярніших систем керування вмістом (CMS) у світі, яка живить понад 40% усіх веб-сайтів. Однак популярність WordPress робить його також мішенню для хакерів, які намагаються отримати несанкціонований доступ до веб-сайтів WordPress та їх даних.

Fail2Ban — це безкоштовне програмне забезпечення з відкритим кодом, яке можна використовувати для захисту WordPress від атак грубою силою. Він працює шляхом моніторингу журналів веб-сервера (наприклад, Apache або Nginx) та заборони IP-адрес, які багаторазово намагаються вгадати пароль.

У цьому посібнику ми покажемо вам, як встановити та налаштувати Fail2Ban на сервері Ubuntu для захисту вашого веб-сайту WordPress.

Установка Fail2Ban

1. Оновлення системи

Перш ніж встановлювати будь-яке програмне забезпечення, ми рекомендуємо оновити вашу систему Ubuntu до останньої версії:


sudo apt-get update && sudo apt-get upgrade

2. Встановлення Fail2Ban

Щоб встановити Fail2Ban, виконайте таку команду:


sudo apt-get install fail2ban

Налаштування Fail2Ban

1. Резервне копіювання файлу конфігурації

Перед внесенням будь-яких змін до файлу конфігурації Fail2Ban, зробіть його резервну копію:

  Як знайти тему WordPress, яку використовує веб-сайт


sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak

2. Налаштування параметрів Jail

Файл /etc/fail2ban/jail.conf містить список “тюрем”, які визначають, як Fail2Ban повинен обробляти порушників для різних служб. Для захисту WordPress ми додамо нову в’язницю під назвою “wordpress-default”.

Відкрийте /etc/fail2ban/jail.conf за допомогою текстового редактора:


sudo nano /etc/fail2ban/jail.conf

Додайте таку конфігурацію до кінця файлу:


[wordpress-default]
enabled = true
port = http,https
filter = wordpress-default
logpath = /var/log/apache2/access.log
maxretry = 5
bantime = 3600

* enabled: Увімкнути в’язницю WordPress.
* port: HTTP та HTTPS порти веб-сервера WordPress.
* filter: Фільтр, який використовується для виявлення спроб брутфорса.
* logpath: Шлях до журналу доступу веб-сервера WordPress.
* maxretry: Максимальна кількість невдалих спроб входу до заборони IP-адреси.
* bantime: Тривалість заборони в секундах.

3. Налаштування фільтра WordPress

Fail2Ban надає вбудований фільтр під назвою “wordpress-default”, який може виявляти спроби входу в систему на сторінку входу WordPress.

Відкрийте файл /etc/fail2ban/filter.d/wordpress-default.conf за допомогою текстового редактора:


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

Знайдіть цей рядок:


failregex = ^<HOST> -."POST /wp-login.php HTTP/.*" 401 .$

І замінить його на:


failregex = ^<HOST> -."POST /wp-login.php HTTP/.*" 401 261\s$

Ця зміна додасть код помилки HTTP 261 до списку виявлених спроб уходу.

Запуск Fail2Ban

1. Запуск служби Fail2Ban

Після налаштування Fail2Ban запустіть його службу:

  Зробіть знімки екрана лише частини дисплея вашого iPhone/iPad [Jailbreak]


sudo systemctl start fail2ban

2. Увімкнення автоматичного запуску

Увімкніть Fail2Ban для автоматичного запуску під час завантаження системи:


sudo systemctl enable fail2ban

Перевірка Fail2Ban

Ви можете перевірити, чи Fail2Ban працює належним чином, за допомогою наступної команди:


sudo fail2ban-client status

Ви повинні побачити щось подібне:


Status
|- Number of banned IP addresses: 12
-- Banlist version: 40
</code>

Усунення несправностей

Якщо у вас виникли проблеми з Fail2Ban, ви можете переглянути журнал записів за допомогою цієї команди:

<code>
sudo less /var/log/fail2ban.log
</code>

Ви також можете увімкнути режим налагодження Fail2Ban, додавши наступну конфігурацію до кінця файлу /etc/fail2ban/jail.conf`:


[DEFAULT]
logtarget = SYSLOG
banaction_all = logtype: LOG_NOTICE, sendmail-whois[name=actiontracer]

Висновок

У цьому посібнику ми показали вам, як встановити та налаштувати Fail2Ban на сервері Ubuntu для захисту вашого веб-сайту WordPress. Fail2Ban — це потужний інструмент, який може ефективно запобігти атакам грубою силою та захистити ваш веб-сайт від несанкціонованого доступу.

Регулярно перевіряйте журнал Fail2Ban, щоб переконатися, що він належним чином блокує порушників, і будьте готові налаштувати параметри за потреби. Не забувайте також тримати своє програмне забезпечення WordPress в актуальному стані та використовувати надійні паролі для захисту свого веб-сайту.

Часті запитання

1. Чи сумісний Fail2Ban з усіма серверами Web?

Так, Fail2Ban сумісний з більшістю популярних веб-серверів, включаючи Apache, Nginx та IIS.

2. Який діапазон IP-адрес можна заблокувати за допомогою Fail2Ban?

Fail2Ban може заблокувати будь-який діапазон IP-адрес, який ви визначите. Однак важливо бути обережним при блокуванні цілих діапазонів, оскільки це може вплинути на законних користувачів.

3. Чи може Fail2Ban захистити від інших типів атак, крім атак грубою силою?

Так, Fail2Ban можна налаштувати для захисту від інших типів атак, таких як SQL-ін'єкції та атаки переповнення буфера.

4. Чи є в Fail2Ban чорний список загальнодоступних IP-адрес?

Так, Fail2Ban має вбудований чорний список загальнодоступних IP-адрес, які були позначені як спам або шкідливі.

5. Чи безпечно змінювати файл конфігурації Fail2Ban вручну?

Так, безпечно змінювати файл конфігурації Fail2Ban вручну, якщо ви знаєте, що робите. Однак рекомендується робити резервну копію файлу конфігурації перед внесенням будь-яких змін.

6. Як часто Fail2Ban повинен оновлюватися?

Рекомендується оновлювати Fail2Ban принаймні раз на місяць, щоб завантажувати останні визначення фільтрів та виправлення помилок.

7. Як відключити Fail2Ban?

Щоб відключити Fail2Ban, виконайте таку команду:


sudo systemctl stop fail2ban

8. Чи може Fail2Ban взаємодіяти з іншими програмами безпеки?

Так, Fail2Ban може взаємодіяти з іншими програмами безпеки, такими як брандмауери та антивіруси. Важливо правильно налаштувати Fail2Ban, щоб уникнути будь-яких конфліктів.