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

Вступ

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

Fail2Ban виступає як ефективний інструмент захисту з відкритим вихідним кодом, спеціально розроблений для відбиття атак шляхом підбору пароля. Його діяльність полягає у постійному моніторингу лог-файлів веб-сервера (таких як 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, необхідно створити його резервну копію. Це дозволить вам відновити початкові налаштування у випадку потреби. Виконайте наступну команду:


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

2. Налаштування “Тюрем” (Jails)

Файл /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, запустіть сервіс за допомогою наступної команди:


sudo systemctl start fail2ban

2. Автоматичний запуск Fail2Ban

Щоб Fail2Ban запускався автоматично при кожному завантаженні системи, виконайте команду:


sudo systemctl enable fail2ban

Перевірка працездатності Fail2Ban

Для перевірки, чи Fail2Ban працює коректно, скористайтеся наступною командою:


sudo fail2ban-client status

Ви повинні побачити вивід, подібний до наступного:


Status
|- Number of banned IP addresses: 12
-- Banlist version: 40

Діагностика

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


sudo less /var/log/fail2ban.log

Також, ви можете включити режим налагодження 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 з усіма веб-серверами?

Так, 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 для уникнення конфліктів.