Тема Джанна Ліцензію не підтверджено. Перейдіть на сторінку параметрів теми, щоб підтвердити ліцензію. Вам потрібна одна ліцензія для кожного доменного імені.

Як захистити свій сервер за допомогою Fail2Ban у Linux

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

install-fail2ban-linux-00-featured-image-800x400.jpg Як захистити свій сервер за допомогою Fail2Ban у Linux
Що таке Fail2Ban?

Fail2Ban — це інструмент запобігання вторгненням, який відстежує файли журналів і блокує IP-адреси, які мають ознаки зловмисної діяльності. Це робиться шляхом створення «фільтрів», які відповідають певним шаблонам у файлах журналу та виконують такі дії, як блокування неправильної IP-адреси.

Навіщо використовувати Fail2Ban у Linux?

Є кілька причин використовувати Fail2Ban у Linux. може бути:

  • Це економить ваш час, автоматично блокуючи шкідливі IP-адреси.
  • Допоможіть захистити свій сервер, зменшивши шанси на успіх атаки.
  • Це дає вам спокій, знаючи, що ваш сервер контролюється та захищений.

Встановіть Fail2Ban в Linux

За замовчуванням Fail2Ban доступний у репозиторіях Ubuntu. Встановіть його за допомогою apt.

sudo add-apt-repository universe sudo apt update && sudo apt install fail2ban -y

install-fail2ban-linux-01-installing-fail2ban.png Як захистити свій сервер за допомогою Fail2Ban у Linux

Fail2Ban встановить свою службу у фоновому режимі, але systemd вимкне її за замовчуванням. Ви можете запустити та ввімкнути його за допомогою таких команд:

sudo systemctl start fail2ban sudo systemctl enable fail2ban

Переконайтеся, що Fail2Ban запущено за допомогою такої команди:

sudo systemctl статус

Ви побачите результат, схожий на зображення нижче.

install-fail2ban-linux-02-systemd-service-status.png Як захистити свій сервер за допомогою Fail2Ban у Linux

Налаштуйте Fail2Ban у Linux

Каталог “/etc/fail2ban” містить конфігураційні файли для Fail2Ban. За замовчуванням Fail2Ban постачається з файлом «jail.conf», який містить налаштування, які застосовуватимуться до всіх служб.

install-fail2ban-linux-03-program-etc-directory.png Як захистити свій сервер за допомогою Fail2Ban у Linux

Однак доцільно створити локальний файл «jail.local» і змінити налаштування в «jail.conf», оскільки будь-які зміни, які ви вносите в «jail.conf», будуть втрачені щоразу після оновлення програмного забезпечення.

Ви можете створити свій файл «jail.local» за допомогою таких команд:

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

Відкрийте файл jail.local, щоб відредагувати його:

sudo nano /etc/fail2ban/jail.local

install-fail2ban-linux-04-jail-local-file.png Як захистити свій сервер за допомогою Fail2Ban у Linux

Корисно знати: вчитися Як увімкнути вхід через SSH без пароля в LINUX.

Перегляньте файл jail.local

Ви побачите результат, схожий на показаний нижче, і ви можете бути приголомшені кількістю доступних варіантів. Але не хвилюйтеся, ми розповімо вам про найважливіші параметри.

install-fail2ban-linux-05-jail-local-crop-comment.png Як захистити свій сервер за допомогою Fail2Ban у Linux

Ви побачите значок "#" на початку рядка, вказуючи, що це коментар. Fail2Ban використовує їх, щоб пояснити, що робить конкретне налаштування. Ви можете ввімкнути деякі налаштування тут, видаливши цей значок.

Розділ містить «[ЗА ПРОМОВЧАННЯМ]» щодо варіантів, застосовних до всіх в'язниць. Це загальна конфігурація Fail2Ban. На наступному знімку екрана показано приклад.

Читайте також:  Чому Linux має відмовитися від цих 5 функцій Windows

install-fail2ban-linux-06-jail-local-bantime-crop.png Як захистити свій сервер за допомогою Fail2Ban у Linux

Існують також інші розділи, які починаються з назви служби. Ця в'язниця відноситься до певної служби на вершині в'язниць світу.

Наприклад, є відділення для в'язниці "sshd". Цей розділ містить параметри служби sshd.

install-fail2ban-linux-07-jail-local-sshd-crop.png Як захистити свій сервер за допомогою Fail2Ban у Linux

Порада. Ви також можете дізнатися більше про захист серверів на сторінці Захистіть свій сервер SSH.

Увімкніть функцію Autoban

Перейдіть до налаштувань “bantime = 1 годі видаліть код "#" на початку рядка, щоб увімкнути його. Цей рядок визначає час, протягом якого Fail2Ban вимикає IP-адресу. Одиницею за замовчуванням є XNUMX година. Ви також можете використовувати інші одиниці, наприклад хвилини (М) або днів (Г) або навіть тижнів (ш).

install-fail2ban-linux-08-enable-bantime-length.png Як захистити свій сервер за допомогою Fail2Ban у Linux

Ви можете збільшити або зменшити це значення, як вважаєте за потрібне. Наприклад, ви можете змінити це значення на 30 метрів, щоб зменшити тривалість блокування до 30 хвилин.

install-fail2ban-linux-09-reduce-bantime-length.png Як захистити свій сервер за допомогою Fail2Ban у Linux

Змініть стандартну довжину вікна входу

Наступні параметри «maxretry» і «findtime». Вони обмежують кількість спроб входу, які зловмисник може зробити до того, як Fail2Ban заблокує його IP-адресу.

Значення за замовчуванням для «maxretry» і «findtime» складають 5 і 10 м. Якщо IP-адресу не вдасться автентифікувати п’ять разів протягом десяти хвилин, Fail2Ban заблокує її на час, визначений параметром bantime.

install-fail2ban-linux-10-maximum-login-attempts.png Як захистити свій сервер за допомогою Fail2Ban у Linux

Ви можете змінити ці значення на будь-які. Наприклад, ви можете встановити «maxretry» на 3 і «findtime» на 5m: Fail2Ban вимкне IP-адресу, якщо вона не зможе пройти автентифікацію три рази протягом п’яти хвилин.

install-fail2ban-linux-11-reduce-maximum-login-attempts.png Як захистити свій сервер за допомогою Fail2Ban у Linux

Увімкніть функцію сповіщень Fail2Ban у Linux

Наступні параметри: destemail, sendername і mta. Ці параметри Fail2Ban використовуватиме для налаштування сповіщень електронною поштою.

  • Налаштування електронної пошти – це адреса електронної пошти, на яку програма надсилатиме сповіщення.
  • Ім’я відправника – це ім’я, яке з’явиться в полі «Від» електронного листа зі сповіщенням.
  • mta — це агент передачі пошти, який Fail2Ban використовуватиме для надсилання електронних листів. mta за замовчуванням — sendmail, але ви можете змінити його на щось інше, наприклад mail.

Якщо ви хочете отримувати сповіщення електронною поштою, вам потрібно розкоментувати ці рядки та ввести відповідні значення, як показано.

install-fail2ban-linux-12-email-settings.png Як захистити свій сервер за допомогою Fail2Ban у Linux

Коли відбувається заборона, ви отримаєте сповіщення електронною поштою з детальною інформацією про заборону, як показано.

install-fail2ban-linux-13-sample-mail-notification.png Як захистити свій сервер за допомогою Fail2Ban у Linux

Створюйте спеціальні замовлення блоків

Наступне налаштування – «action_=». Це визначає дію, яку виконує Fail2ban, коли він блокує IP-адресу. За умовчанням для блокування IP-адреси використовується iptables, доки не закінчиться «bantime».

Ви також можете використовувати інші процедури, як описано нижче. Цей підручник дотримується налаштувань за замовчуванням для простоти.

  • action_mw: Надсилає сповіщення електронною поштою, коли IP-адресу заблоковано, а також відповідну інформацію WHOIS.
  • action_mwl: Надсилає сповіщення електронною поштою, коли IP-адресу заблоковано, разом із відповідною інформацією WHOIS і записами файлу журналу, які призвели до блокування.
  • action_xarf: Надсилає сповіщення електронною поштою X-ARF, коли IP-адресу заблоковано разом із записами файлу журналу, які викликали блокування.
Читайте також:  Як встановити та запустити ігри Steam на Linux

Доступно багато інших процедур, але неможливо охопити їх усі в цьому посібнику. Ви можете Прочитайте про всі доступні процедури У документації Fail2ban.

install-fail2ban-linux-14-fail2ban-action-lists.png Як захистити свій сервер за допомогою Fail2Ban у Linux

Увімкніть налаштування для служби

Окрім налаштування поведінки Fail2ban за замовчуванням, також можна використовувати попередньо створені файли фільтрів для деяких популярних Інтернет-служб. Це невеликі файли, створені розробниками для пошуку певних результатів журналу для певного сервера.

Наприклад, файл «apache-shellshock.conf» містить усі необхідні параметри, щоб дозволити Fail2ban перевіряти будь-які зловмисні спроби створити помилку shellshock.

install-fail2ban-linux-15-sample-filter-file.png Як захистити свій сервер за допомогою Fail2Ban у Linux

Ви можете знайти всі доступні файли фільтрів для вашої системи в каталозі “/etc/fail2ban/filter.d”:

ls /etc/fail2ban/filter.d

install-fail2ban-linux-16-list-all-filter-files.png Як захистити свій сервер за допомогою Fail2Ban у Linux

Коли ви дізнаєтеся, які фільтри ви хочете використовувати, скажіть Fail2ban завантажити їх під час запуску, відкривши файл «jail.local»:

sudo nano /etc/fail2ban/jail.local

Створіть простір у «jail.local», де ви зможете активувати нові фільтри. Я створюю власний між заголовком коментаря та блоком [ВКЛЮЧУЄ].

install-fail2ban-linux-17-create-new-space.png Як захистити свій сервер за допомогою Fail2Ban у Linux

Додайте фільтри, які потрібно активувати. Ось, наприклад, фрагмент коду, який я використовую у своїй конфігурації:

# Коментарі: використовуйте '#' для рядків коментарів і ';' (після пробілу) для вбудованих коментарів [sshd] увімкнено = істина [nginx-bad-request] увімкнено = істина [bitwarden] увімкнено = істина [ВКЛЮЧУЄ]

install-fail2ban-linux-18-add-new-filter-modules.png Як захистити свій сервер за допомогою Fail2Ban у Linux

Після цього збережіть і закрийте файл. Перезапустіть fail2ban, щоб застосувати зміни.

sudo systemctl перезапустити fail2ban

Перевірте свою конфігурацію

Тепер, коли ви налаштували Fail2Ban у Linux, настав час перевірити його.

Найпростіший спосіб перевірити вашу конфігурацію — спробувати кілька разів поспіль увійти з неправильним паролем. Для цього можна використовувати підключення SSH.

На машині для утилізації спробуйте підключитися до свого сервера Fail2ban через SSH за допомогою імені користувача «admin». Замініть «your_server_ip_address» на фактичну IP-адресу вашого сервера Fail2ban.

ssh admin@ваш_сервер_ip_адреса

Коли буде запропоновано, введіть довільний пароль і повторіть його кілька разів. Після кількох спроб ви побачите повідомлення про те, що сервер відхилив вашу спробу підключення.

install-fail2ban-linux-19-login-fail-attempt.png Як захистити свій сервер за допомогою Fail2Ban у Linux

Окрім використання ssh, ви також можете перевірити інші файли фільтрів у Fail2ban, запустивши Fail Status. У моєму випадку я використовую фільтр "nginx-bad-request", який визначає, чи хост заповнює сервер недійсними запитами.

Читайте також:  Інший користувацький досвід робить Ubuntu незамінним вибором.

install-fail2ban-linux-20-nginx-bad-request-filter.png Як захистити свій сервер за допомогою Fail2Ban у Linux

Знаючи це, ви можете перевірити цю функцію, навмисно надіславши пусті запити на ваш веб-сервер за допомогою curl:

curl -H "Агент користувача:" -H "Хост:" https://yourwebsite.com -v

install-fail2ban-linux-21-curl-bad-request.png Як захистити свій сервер за допомогою Fail2Ban у Linux

Перевірка процедур Fail2Ban у Linux

Нарешті, запустіть наступну команду на сервері Fail2ban, щоб переконатися, що fail2ban додав необхідні правила до iptables.

Команда grep фільтрує вихідні дані команди iptables. Параметр -S повідомляє iptables друкувати правила у форматі, який легко аналізувати.

sudo iptables -S | grep f2b

Ви побачите результат, схожий на зображення нижче. Аргумент «–reject-with icmp-port-unreachable» повідомляє iptables надсилати клієнту повідомлення про недоступність порту ICMP, коли він намагається підключитися. Ви також можете побачити IP-адреси пристроїв, які заблокував сервер.

install-fail2ban-linux-22-blocked-ip-address-fail2ban.png Як захистити свій сервер за допомогою Fail2Ban у Linux

Порада: Ви також повинні використовувати SELinux для захисту свого сервера Linux.

Питання що часто задаються

Q1: Чому я отримую порожнє сповіщення електронною поштою, коли Fail2ban блокує IP-адресу?
Відповідь: Якщо ви отримуєте порожнє сповіщення електронною поштою, ймовірно, ви неправильно налаштували свій поштовий сервер. Перевірте конфігурацію свого поштового сервера та переконайтеся, що він може надсилати електронні листи.

Q2: Як я можу розблокувати IP-адресу?
Відповідь: По-перше, знайдіть в'язницю, де зараз заблоковано IP-адресу: sudo fail2ban-client status , потім розблокуйте IP-адресу, виконавши таку команду: sudo fail2ban-client set unsanip .

Q3: Як переглянути файл журналу fail2ban?
Відповідь: Ви можете переглянути файл журналу fail2ban, щоб вирішити проблеми або дізнатися, чому IP-адресу було заблоковано. Файл “/var/log/fail2ban.log” містить усі журнали, створені fail2ban. Використовуйте команду cat, щоб переглянути файл журналу fail2ban: cat /var/log/fail2ban.log.

Q4: Я ввімкнув кілька файлів фільтрів. Чому вони всі не працюють?
Відповідь: Ця проблема, швидше за все, виникає через те, що фільтр перезаписує інший файл, який йому передував. Один зі способів виправити це – створити власний файл фільтрів, поєднавши кілька фільтрів.

Q5: Чи захистить Fail2ban мій сервер від DoS-атаки?
Відповідь: Так і ні. Здебільшого Fail2ban зможе заблокувати будь-яку IP-адресу, яка надсилає недійсні запити на ваш сервер. Однак одним із найбільших обмежень цієї програми є те, що вона не може діяти на події, які не створюють запис у журналі. Таким чином, все ще важливо захистити свій сервер Linux за допомогою інших інструментів для цих форм атак.

Кнопка «Перейти вгору».