Як системний адміністратор, який керує серверами Debian, забезпечення безпеки та цілісності вашої системи має першорядне значення. Одним із найефективніших способів підвищення безпеки вашого сервера є використання Fail2Ban, потужного і широко використовуваного програмного забезпечення для запобігання вторгнень. У цьому посібнику ми розглянемо різні переваги Fail2Ban, виокремивши причини, через які системні адміністратори Debian повинні розглянути можливість включення його у свій арсенал безпеки сервера.
Основні переваги Fail2Ban для систем Debian:
- Захист у реальному часі: Fail2Ban активно відстежує файли журналу на предмет потенційних загроз безпеці, як-от кілька невдалих спроб входу або спроб несанкціонованого доступу. У разі виявлення підозрілої активності Fail2Ban вживає негайних дій для запобігання подальшому вторгненню.
- Настроювані політики заборони: Сисадміни мають повний контроль над політиками заборони. Ви можете визначити кількість невдалих спроб, тривалість заборони і конкретні дії, які будуть зроблені при досягненні порогового значення.
- Широка сумісність: Fail2Ban сумісний із широким спектром сервісів, включно з SSH, FTP, SMTP, Apache і багатьма іншими. Це робить його універсальним і всеосяжним рішенням безпеки для серверів Debian.
- Блокування IP-адрес: Fail2Ban може бути налаштований на тимчасове або постійне блокування IP-адрес, залежно від ваших уподобань і тяжкості порушення. Це допомагає запобігти повторним атакам з одного й того самого джерела.
- Низьке споживання ресурсів: Fail2Ban легкий і не споживає надмірно багато системних ресурсів, що робить його ідеальним вибором для системних адміністраторів Debian, які хочуть максимізувати продуктивність свого сервера, підтримуючи при цьому першокласну безпеку.
- Відкритий вихідний код і хороша підтримка: Fail2Ban – проєкт із відкритим вихідним кодом, що означає, що його активно розвиває і підтримує спільнота розробників. Це гарантує, що програмне забезпечення залишається актуальним і оснащене найостаннішими функціями безпеки.
Підбиваючи підсумок, можна сказати, що впровадження Fail2Ban на ваш сервер Debian може значно підвищити його безпеку і захистити його від потенційних атак. Цей додатковий рівень захисту безцінний для системних адміністраторів, які відповідають за управління і підтримання цілісності своїх серверів. У наступному посібнику буде показано, як встановити Fail2Ban на Debian 12 Bookworm, Debian 11 Bullseye або Debian 10 Buster, а також надано поради щодо першого налаштування з прикладами.
Розділ 1: Встановлення Fail2ban
Крок 1: Оновити Debian
Перед встановленням Fail2Ban необхідно оновити операційну систему Debian. Це гарантує, що всі наявні пакети оновлені і що ви використовуєте найновіші версії програмного забезпечення. Щоб оновити систему, виконайте таку команду в терміналі:
sudo apt update && sudo apt upgrade
Команда sudo apt update отримує останню інформацію про пакети з репозиторіїв, а sudo apt upgrade оновлює встановлені пакети до останніх версій.
Крок 2: Встановіть Fail2ban
Fail2Ban входить до сховища Debian за замовчуванням, що означає, що вам не потрібно додавати додаткові сховища для встановлення програми. Щоб встановити Fail2Ban, використовуйте таку команду в терміналі:
sudo apt install fail2ban
Ця команда дає команду менеджеру пакетів (apt) встановити пакет Fail2Ban на вашу систему Debian.
Крок 3: Підтвердження встановлення Fail2ban
Після завершення встановлення необхідно підтвердити, що Fail2Ban було встановлено правильно. Для цього виконайте таку команду:
fail2ban --version
Ця команда відобразить встановлену версію Fail2Ban, що свідчить про успішне встановлення.
Крок 4: Перевірка служби Fail2ban
Після інсталяції служба Fail2Ban має бути активною і ввімкненою за замовчуванням. Однак завжди корисно перевірити статус служби, щоб переконатися, що вона працює належним чином. Щоб перевірити статус служби Fail2Ban, використовуйте таку команду systemctl:
systemctl status fail2ban
Якщо ваша служба Fail2Ban не активована або не запущена, ви можете запустити її за допомогою такої команди:
sudo systemctl start fail2ban
Ця команда вказує systemctl запустити службу Fail2Ban. Якщо ви також хочете ввімкнути Fail2Ban під час завантаження системи за замовчуванням, використовуйте таку команду:
sudo systemctl enable fail2ban
Увімкнення Fail2Ban під час завантаження системи гарантує, що служба автоматично запускатиметься під час перезавантаження вашого сервера Debian, забезпечуючи безперервний захист без ручного втручання.
Розділ 2: Встановлення UFW (опціонально)
Якщо ви віддаєте перевагу використанню Uncomplicated Firewall (UFW) з Fail2Ban замість IPTables, виконайте наступні кроки. UFW є дружнім інтерфейсом до IPTables і забезпечує простий спосіб керування брандмауером вашого сервера. Зверніть увагу, що в Debian за замовчуванням UFW відсутній.
Крок 1: Встановіть UFW
Щоб встановити UFW на систему Debian, виконайте таку команду в терміналі:
sudo apt install ufw
Ця команда використовує менеджер пакетів (apt) для інсталяції пакета UFW з репозиторію Debian.
Крок 2: Перевірка встановлення
Після встановлення UFW необхідно перевірити, що встановлення пройшло успішно. Щоб перевірити версію встановленого UFW, виконайте таку команду:
ufw version
Ця команда відобразить встановлену версію UFW, що свідчить про успішне встановлення.
Крок 3: Увімкнути UFW
Тепер настав час увімкнути UFW у вашій системі. Увімкнення UFW активує брандмауер і забезпечить його автоматичний запуск під час завантаження вашого сервера Debian. Щоб увімкнути UFW, використовуйте таку команду:
sudo ufw enable
Команда запитує запуск і налаштування UFW на запуск під час старту системи. Після виконання цієї команди ви маєте побачити висновок, подібний до такого:
Цей висновок підтверджує, що UFW активний і буде запущений автоматично при перезавантаженні вашого сервера Debian.
Розділ 3: Налаштування резервного копіювання Fail2Ban
Після встановлення Fail2Ban необхідно встановити та налаштувати його відповідно до оточення вашого сервера. Fail2Ban постачається з двома конфігураційними файлами за замовчуванням, розташованими за адресами /etc/fail2ban/jail.conf і /etc/fail2ban/jail.d/defaults-debian.conf.
Важливе зауваження: Не змінюйте ці файли безпосередньо. Вони є вашими оригінальними файлами і будуть замінені під час майбутніх оновлень Fail2Ban.
Щоб зберегти користувацькі налаштування, створіть копії конфігураційних файлів із розширенням .local. Fail2Ban буде пріоритетніше читати файли .local, ніж файли .conf. Створюючи файли .local, ви гарантуєте, що ваші налаштування не будуть загублені під час оновлень, і у вас завжди буде свіжа копія для повернення в разі неправильної конфігурації.
Крок 1: Створіть резервну копію файлу конфігурації
Виконайте таку команду, щоб створити копію файлу jail.conf:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Ця команда використовує команду cp (копіювати) для створення дубліката файлу jail.conf з ім’ям jail.local у тому ж каталозі. Префікс sudo дає необхідні дозволи для виконання цієї дії.
Тепер у вас є резервна копія вихідного файлу конфігурації, і ви можете безпечно налаштовувати параметри Fail2Ban, редагуючи файл jail.local, не турбуючись про втрату змін під час майбутніх оновлень.
Розділ 4: Налаштування Fail2Ban
Після створення резервної копії вихідного файлу конфігурації настав час змінити налаштування у файлі jail.local відповідно до вимог безпеки вашого сервера.
Крок 1: Редагування файлу конфігурації
Щоб відредагувати файл jail.local за допомогою редактора nano, виконайте таку команду:
sudo nano /etc/fail2ban/jail.local
Ця команда відкриває файл jail.local у текстовому редакторі nano з правами адміністратора, даючи змогу вам змінювати його вміст.
Крок 2: Збільшення часу бану
Увімкніть параметр Ban Time Increment, щоб збільшити тривалість бану для повторних порушників. Наприклад, якщо час заборони за замовчуванням становить одну годину, ви можете збільшити його до п’яти годин після п’яти повторних заборон. Для цього необхідно задати множник для логіки збільшення часу заборони.
Приклад:
У цьому прикладі час заборони буде подвоюватися для кожної наступної заборони. Можливо, ви захочете ввімкнути цю функцію, щоб відвадити наполегливих зловмисників, збільшуючи тривалість заборони щоразу, коли їх заблоковано.
Крок 3: Білий список IP-адрес у Fail2Ban
Щоб внести до білого списку певні IP-адреси, відкоментуйте рядок ignoreip і додайте потрібні IP-адреси, розділяючи їх пробілами або комами. Можна також внести до білого списку діапазони IP-адрес.
Приклад:
ignoreip = 127.0.0.1/8 ::1 180.53.31.33 (example IP address)
У цьому прикладі IP-адресу 180.53.31.33 включено до білого списку. Ви можете захотіти внести до білого списку IP-адреси, що належать довіреним користувачам або службам, щоб запобігти випадковим заборонам.
Крок 4: Налаштування часу заборони за замовчуванням
За замовчуванням Fail2Ban блокує зловмисника на 10 хвилин після п’яти невдалих спроб протягом 10-хвилинного вікна. Ви можете налаштувати ці параметри за замовчуванням, але рекомендується встановити користувацький час заборони і ліміти повторних спроб для різних в’язниць.
Приклад:
У цьому прикладі налаштування за замовчуванням блокують атакуючого на 10 хвилин після п’яти невдалих спроб протягом 10-хвилинного вікна. Ви можете змінити ці налаштування, щоб вони краще відповідали вимогам безпеки вашого сервера.
Крок 5: Налаштуйте Fail2Ban на використання UFW замість IPTables
Щоб налаштувати Fail2Ban на використання UFW як заборонної дії за замовчуванням замість IPTables, оновіть рядок banaction у розділі [DEFAULT].
Приклад:
[DEFAULT] banaction = ufw
Змінивши значення banaction на ufw, Fail2Ban буде використовувати UFW для управління заборонами замість IPTables. Це корисно, якщо ви вже використовуєте UFW як основний брандмауер вашого сервера і хочете зберегти послідовну систему управління.
Крок 6: Сповіщення/повідомлення електронною поштою
Налаштуйте Fail2Ban на надсилання сповіщень електронною поштою зі звітами whois на вказану адресу електронної пошти. Ви також можете налаштувати різні варіанти звітів, наприклад, надсилання листів провайдерам чорних списків або провайдеру атакуючого.
Приклад:
У цьому прикладі [email protected] – це адреса електронної пошти, на яку надходитимуть сповіщення, а [email protected] – це адреса електронної пошти, на яку надсилатимуться сповіщення. Ви можете ввімкнути сповіщення електронною поштою, щоб залишатися в курсі інцидентів безпеки та вживати відповідних заходів у разі потреби.
Крок 7: Fail2Ban Jails
Jails містять заздалегідь визначені фільтри та дії для різних серверних додатків. Ви можете вмикати, вимикати або налаштовувати в’язниці залежно від потреб вашого сервера.
Щоб увімкнути jail, додайте enabled = true у відповідний розділ jail.
Приклад:
У цьому прикладі ввімкнено функцію apache-badbots jail для захисту веб-сервера Apache від поганих ботів. Ця функція блокуватиме порушників на 48 годин після однієї невдалої спроби. Ви можете ввімкнути певні в’язниці залежно від служб, що працюють на вашому сервері, і пов’язаних із ними ризиків безпеки.
Ви також можете додати користувацькі дії або використовувати дії з каталогу action.d, оновивши рядок banaction у розділі jail.
Приклад:
У цьому прикладі ввімкнено функцію apache-botsearch jail для захисту від пошукових атак ботів на веб-сервер Apache. Користувацька дія заборони налаштована на використання дій action_mw і cloudflare. Ви можете додати користувацькі дії для підвищення безпеки або інтеграції Fail2Ban з іншими інструментами та службами безпеки.
Крок 8: Перезапустіть службу Fail2Ban
Після завершення налаштування Fail2Ban перезапустіть службу, щоб застосувати зміни:
sudo systemctl restart fail2ban
Розділ 5: Як блокувати/розблокувати за допомогою команд Fail2Ban
Після налаштування Fail2Ban ви можете керувати IP-заборонами за допомогою команди fail2ban-client. Вам можуть знадобитися привілеї sudo, залежно від вашого налаштування.
Крок 1: Блокувати IP-адресу:
Щоб блокувати IP-адресу вручну для певного джейла (наприклад, apache-botsearch), використовуйте таку команду:
sudo fail2ban-client set apache-botsearch banip <ip address>
Ця команда додає вказану IP-адресу до списку заборонених IP-адрес для в’язниці apache-botsearch. У результаті IP-адресу буде заблоковано для доступу до вашого сервера на підставі правил, визначених у jail.
Крок 2: Розблокувати IP-адресу:
Щоб розблокувати IP-адресу для певного джейла (наприклад, apache-botsearch), використовуйте таку команду:
sudo fail2ban-client set apache-botsearch unbanip <ip address>
Ця команда знімає заборону для зазначеної IP-адреси, дозволяючи їй знову отримати доступ до вашого сервера, за умови, що вона дотримується правил у джейлі apache-botsearch.
Крок 3: Доступ до меню довідки:
Щоб отримати доступ до меню довідки та переглянути додаткові налаштування або команди, використовуйте таку команду:
sudo fail2ban-client -h
Ця команда відображає меню довідки з різними опціями і командами для управління Fail2Ban.
Крок 4: Додаткові приклади:
Перевірка стану конкретної в’язниці:
sudo fail2ban-client status apache-botsearch
Ця команда надає інформацію про в’язницю apache-botsearch, наприклад, її поточний стан і кількість заборонених IP-адрес.
Перезавантажте конфігурацію без перезапуску служби Fail2Ban:
sudo fail2ban-client reload
Ця команда перезавантажує конфігурацію Fail2Ban, застосовуючи всі внесені зміни без перезапуску служби.
Перевірте список заборонених IP-адрес для конкретної в’язниці:
sudo fail2ban-client get apache-botsearch banned
Ця команда виводить список усіх IP-адрес, заборонених наразі у в’язниці apache-botsearch.
Встановіть користувацький час заборони для певної IP-адреси у в’язниці:
sudo fail2ban-client set apache-botsearch bantime <time_in_seconds> --banip <ip_address>
Ця команда забороняє вказану IP-адресу на заданий термін (у секундах) у в’язниці apache-botsearch.
Ці команди надають інструменти для ефективного управління заборонами IP-адрес за допомогою Fail2Ban. Не забудьте замінити <ip_address> на фактичну IP-адресу, яку ви хочете заборонити або розблокувати, і замініть apache-botsearch на відповідне ім’я в’язниці залежно від вашої конфігурації.
Розділ 6: Перевірка/моніторинг журналів Fail2Ban
Дуже важливо контролювати і переглядати журнали Fail2Ban, щоб переконатися, що ваші в’язниці працюють правильно. За замовчуванням журнали Fail2Ban можна знайти в /var/log/fail2ban.log.
Крок 1: Моніторинг журналів у реальному часі
Щоб переглянути журнали в реальному часі та помітити будь-які проблеми під час роботи на сервері, використовуйте команду tail -f:
tail -f /var/log/fail2ban.log
Ця команда дає змогу відстежувати зміни в журналі в режимі реального часу. Ви побачите нові записи в міру їхнього додавання до файлу журналу, що допоможе вам виявити незвичайну активність або помилки.
Крок 2: Пошук конкретної інформації в журналах
Ви також можете використовувати команду grep для пошуку певної інформації в журналах, наприклад, IP-адрес, користувачів-агентів або помилок. Команда grep фільтрує файл журналу і відображає тільки ті рядки, які містять вказане ключове слово.
Приклад user-agent:
grep "Bing" /var/log/fail2ban.log
Ця команда шукає всі записи журналу, що містять слово “Bing”, що може допомогти вам виявити небажану активність ботів або користувачів-агентів.
Приклад помилки:
grep "error" /var/log/fail2ban.log
Ця команда шукає записи журналу, що містять слово “error”, допомагаючи вам виявити будь-які проблеми або неполадки в роботі Fail2Ban.
Приклад IP-адреси:
grep "123.123.123.1" /var/log/fail2ban.log
Ця команда шукає записи журналу, що містять зазначену IP-адресу, що дає змогу відстежити активність конкретної IP-адреси або визначити, чи була вона заборонена.
Ці приклади демонструють різні способи фільтрації та пошуку журналів за допомогою команд терміналу. Регулярний перегляд журналів Fail2Ban допоможе вам підтримувати безпеку вашого сервера і переконатися, що ваші в’язниці працюють належним чином.
Розділ 7: Як видалити (деінсталювати) Fail2Ban
Якщо ви вирішили видалити Fail2Ban зі своєї системи, ви можете легко видалити його, виконавши наведені нижче кроки:
Крок 1: Деактивуйте службу Fail2Ban
Якщо служба Fail2Ban все ще активна, вам необхідно спочатку вимкнути її, щоб процес видалення пройшов гладко. Вимкнення служби не дозволить їй працювати у фоновому режимі і заважати процесу видалення.
Використовуйте наступну команду, щоб вимкнути службу Fail2Ban і зупинити її роботу:
sudo systemctl disable fail2ban --now
Эта команда отключает службу Fail2Ban немедленно (флаг –now) и гарантирует, что она не запустится автоматически при последующих перезагрузках системы.
Крок 2: Видаліть Fail2Ban з вашої системи
Після вимкнення служби ви можете видалити Fail2Ban за допомогою такої команди:
sudo apt remove fail2ban
Ця команда видалить Fail2Ban разом із його системними залежностями та пов’язаними даними.
Висновок
Отже, Fail2Ban – це потужне і широко використовуване програмне забезпечення для запобігання вторгненням у системах Debian Linux. Вона допомагає захистити ваш сервер від несанкціонованого доступу та атак методом перебору, відстежуючи файли журналу на наявність ознак шкідливої активності та накладаючи заборони на IP-адреси порушників. Впровадження Fail2Ban дуже важливе для захисту вашого сервера і підтримки його цілісності. Хоча початкове встановлення та налаштування можуть здатися складними, переваги використання Fail2Ban для захисту вашого сервера переважують усі необхідні зусилля.
А вот в 12 дебиане, по умолчанию нет RSYSLOG и данный сервис вываливается с ошибкой ERROR Failed during configuration: Have not found any log file for sshd jail. Проверяйте, перед тем, как учить людей.