Тема Джанна Ліцензію не підтверджено. Перейдіть на сторінку параметрів теми, щоб підтвердити ліцензію. Вам потрібна одна ліцензія для кожного доменного імені.
Як захистити свій сервер за допомогою Fail2Ban у Linux
Безпека сервера є головним пріоритетом для будь-якої компанії чи організації. Fail2Ban є одним із найважливіших інструментів у наборі інструментів системного адміністратора. Цей посібник пояснює, що таке Fail2Ban і як ви можете захистити свій сервер за допомогою Fail2Ban у вашому Linux від атак.
Що таке Fail2Ban?
Fail2Ban — це інструмент запобігання вторгненням, який відстежує файли журналів і блокує IP-адреси, які мають ознаки зловмисної діяльності. Це робиться шляхом створення «фільтрів», які відповідають певним шаблонам у файлах журналу та виконують такі дії, як блокування неправильної IP-адреси.
Навіщо використовувати Fail2Ban у Linux?
Є кілька причин використовувати Fail2Ban у Linux. може бути:
Це економить ваш час, автоматично блокуючи шкідливі IP-адреси.
Допоможіть захистити свій сервер, зменшивши шанси на успіх атаки.
Це дає вам спокій, знаючи, що ваш сервер контролюється та захищений.
Встановіть Fail2Ban в Linux
За замовчуванням Fail2Ban доступний у репозиторіях Ubuntu. Встановіть його за допомогою apt.
Fail2Ban встановить свою службу у фоновому режимі, але systemd вимкне її за замовчуванням. Ви можете запустити та ввімкнути його за допомогою таких команд:
Переконайтеся, що Fail2Ban запущено за допомогою такої команди:
sudo systemctl статус
Ви побачите результат, схожий на зображення нижче.
Налаштуйте Fail2Ban у Linux
Каталог “/etc/fail2ban” містить конфігураційні файли для Fail2Ban. За замовчуванням Fail2Ban постачається з файлом «jail.conf», який містить налаштування, які застосовуватимуться до всіх служб.
Однак доцільно створити локальний файл «jail.local» і змінити налаштування в «jail.conf», оскільки будь-які зміни, які ви вносите в «jail.conf», будуть втрачені щоразу після оновлення програмного забезпечення.
Ви можете створити свій файл «jail.local» за допомогою таких команд:
Ви побачите результат, схожий на показаний нижче, і ви можете бути приголомшені кількістю доступних варіантів. Але не хвилюйтеся, ми розповімо вам про найважливіші параметри.
Ви побачите значок "#" на початку рядка, вказуючи, що це коментар. Fail2Ban використовує їх, щоб пояснити, що робить конкретне налаштування. Ви можете ввімкнути деякі налаштування тут, видаливши цей значок.
Розділ містить «[ЗА ПРОМОВЧАННЯМ]» щодо варіантів, застосовних до всіх в'язниць. Це загальна конфігурація Fail2Ban. На наступному знімку екрана показано приклад.
Перейдіть до налаштувань “bantime = 1 годі видаліть код "#" на початку рядка, щоб увімкнути його. Цей рядок визначає час, протягом якого Fail2Ban вимикає IP-адресу. Одиницею за замовчуванням є XNUMX година. Ви також можете використовувати інші одиниці, наприклад хвилини (М) або днів (Г) або навіть тижнів (ш).
Ви можете збільшити або зменшити це значення, як вважаєте за потрібне. Наприклад, ви можете змінити це значення на 30 метрів, щоб зменшити тривалість блокування до 30 хвилин.
Змініть стандартну довжину вікна входу
Наступні параметри «maxretry» і «findtime». Вони обмежують кількість спроб входу, які зловмисник може зробити до того, як Fail2Ban заблокує його IP-адресу.
Значення за замовчуванням для «maxretry» і «findtime» складають 5 і 10 м. Якщо IP-адресу не вдасться автентифікувати п’ять разів протягом десяти хвилин, Fail2Ban заблокує її на час, визначений параметром bantime.
Ви можете змінити ці значення на будь-які. Наприклад, ви можете встановити «maxretry» на 3 і «findtime» на 5m: Fail2Ban вимкне IP-адресу, якщо вона не зможе пройти автентифікацію три рази протягом п’яти хвилин.
Увімкніть функцію сповіщень Fail2Ban у Linux
Наступні параметри: destemail, sendername і mta. Ці параметри Fail2Ban використовуватиме для налаштування сповіщень електронною поштою.
Налаштування електронної пошти – це адреса електронної пошти, на яку програма надсилатиме сповіщення.
Ім’я відправника – це ім’я, яке з’явиться в полі «Від» електронного листа зі сповіщенням.
mta — це агент передачі пошти, який Fail2Ban використовуватиме для надсилання електронних листів. mta за замовчуванням — sendmail, але ви можете змінити його на щось інше, наприклад mail.
Якщо ви хочете отримувати сповіщення електронною поштою, вам потрібно розкоментувати ці рядки та ввести відповідні значення, як показано.
Коли відбувається заборона, ви отримаєте сповіщення електронною поштою з детальною інформацією про заборону, як показано.
Створюйте спеціальні замовлення блоків
Наступне налаштування – «action_=». Це визначає дію, яку виконує Fail2ban, коли він блокує IP-адресу. За умовчанням для блокування IP-адреси використовується iptables, доки не закінчиться «bantime».
Ви також можете використовувати інші процедури, як описано нижче. Цей підручник дотримується налаштувань за замовчуванням для простоти.
action_mw: Надсилає сповіщення електронною поштою, коли IP-адресу заблоковано, а також відповідну інформацію WHOIS.
action_mwl: Надсилає сповіщення електронною поштою, коли IP-адресу заблоковано, разом із відповідною інформацією WHOIS і записами файлу журналу, які призвели до блокування.
action_xarf: Надсилає сповіщення електронною поштою X-ARF, коли IP-адресу заблоковано разом із записами файлу журналу, які викликали блокування.
Доступно багато інших процедур, але неможливо охопити їх усі в цьому посібнику. Ви можете Прочитайте про всі доступні процедури У документації Fail2ban.
Увімкніть налаштування для служби
Окрім налаштування поведінки Fail2ban за замовчуванням, також можна використовувати попередньо створені файли фільтрів для деяких популярних Інтернет-служб. Це невеликі файли, створені розробниками для пошуку певних результатів журналу для певного сервера.
Наприклад, файл «apache-shellshock.conf» містить усі необхідні параметри, щоб дозволити Fail2ban перевіряти будь-які зловмисні спроби створити помилку shellshock.
Ви можете знайти всі доступні файли фільтрів для вашої системи в каталозі “/etc/fail2ban/filter.d”:
ls /etc/fail2ban/filter.d
Коли ви дізнаєтеся, які фільтри ви хочете використовувати, скажіть Fail2ban завантажити їх під час запуску, відкривши файл «jail.local»:
sudo nano /etc/fail2ban/jail.local
Створіть простір у «jail.local», де ви зможете активувати нові фільтри. Я створюю власний між заголовком коментаря та блоком [ВКЛЮЧУЄ].
Додайте фільтри, які потрібно активувати. Ось, наприклад, фрагмент коду, який я використовую у своїй конфігурації:
# Коментарі: використовуйте '#' для рядків коментарів і ';' (після пробілу) для вбудованих коментарів [sshd] увімкнено = істина [nginx-bad-request] увімкнено = істина [bitwarden] увімкнено = істина [ВКЛЮЧУЄ]
Після цього збережіть і закрийте файл. Перезапустіть fail2ban, щоб застосувати зміни.
sudo systemctl перезапустити fail2ban
Перевірте свою конфігурацію
Тепер, коли ви налаштували Fail2Ban у Linux, настав час перевірити його.
Найпростіший спосіб перевірити вашу конфігурацію — спробувати кілька разів поспіль увійти з неправильним паролем. Для цього можна використовувати підключення SSH.
На машині для утилізації спробуйте підключитися до свого сервера Fail2ban через SSH за допомогою імені користувача «admin». Замініть «your_server_ip_address» на фактичну IP-адресу вашого сервера Fail2ban.
ssh admin@ваш_сервер_ip_адреса
Коли буде запропоновано, введіть довільний пароль і повторіть його кілька разів. Після кількох спроб ви побачите повідомлення про те, що сервер відхилив вашу спробу підключення.
Окрім використання ssh, ви також можете перевірити інші файли фільтрів у Fail2ban, запустивши Fail Status. У моєму випадку я використовую фільтр "nginx-bad-request", який визначає, чи хост заповнює сервер недійсними запитами.
Нарешті, запустіть наступну команду на сервері Fail2ban, щоб переконатися, що fail2ban додав необхідні правила до iptables.
Команда grep фільтрує вихідні дані команди iptables. Параметр -S повідомляє iptables друкувати правила у форматі, який легко аналізувати.
sudo iptables -S | grep f2b
Ви побачите результат, схожий на зображення нижче. Аргумент «–reject-with icmp-port-unreachable» повідомляє iptables надсилати клієнту повідомлення про недоступність порту ICMP, коли він намагається підключитися. Ви також можете побачити IP-адреси пристроїв, які заблокував сервер.
Порада: Ви також повинні використовувати 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 за допомогою інших інструментів для цих форм атак.