Налаштування fail2ban centos 7

Якщо у вас є сервер або комп`ютер, безпосередньо підключені до інтернету, то вони схильні до певного ризику. Зараз будь-який інтернет сервер або VPS є потенційною мішенню для атак хакерів. Правильно налаштований фаєрвол може запобігти багатьом з атак. Але вам як і раніше потрібно залишити відкритими деякі служби, щоб мати можливість адмініструвати сервер, наприклад, SSH.

Цей протокол часто є мішенню перебору. Але на щастя є рішення. Інструмент Fail2ban дозволяє блокувати доступ з IP адрес при великій кількості невірних логінів. Програма fail2ban може використовуватися не тільки для SSH, вона може захистити різні форми веб-аутентифікації, FTP, і запобігти DoS атаки на сервер. У цій статті ми розглянемо як виконується установка і настройка Fail2ban CentOS 7 оскільки ця операційна система часто використовується для серверів.

установка fail2ban

Програма fail2ban дуже часто використовується для захисту серверів, тому вона є в офіційному репозиторії EPEL. Для установки програми спочатку додамо репозиторій:

Відео: Установка і настройка DHCP-сервера в CentOS 7

$ Sudo yum install fail2ban

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

$ Cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Тепер ми можемо змінити тут будь-які настройки, які вам не подобаються в основному файлі. Конфігураційний файл розділений на секції в залежності від призначення опцій. У секції [DEFAULT] знаходяться загальні налаштування, потім слідують окремі секції для кожної блокування окремо. Опції за замовчуванням і так непогано працюють, але в деяких випадках додаткова настройка може бути дуже корисною.

Блокування можна налаштувати, за допомогою різних параметрів. Ось найважливіші з них:

  • ignoreip - задає список ip адрес, які потрібно виключити з алгоритмів Fail2ban. До них не будуть застосовуватися обмеження, так що вибирайте їх акуратно. Діапазони та IP адреси варто розділити прогалиною. Сюди можна додати локальний ip, а також свою домашню адресу, щоб у вас не виникло проблем при вході;
  • bantime - вказує час, на яке клієнту буде закритий доступ до сервера, якщо він не зможе авторизуватися, в секундах;
  • maxretry - вказує кількість спроб перед тим, як доступ заблоковано;
  • findtime - час в секундах, протягом якого розраховується maxretry.

У нашому прикладі користувач буде заблокований на 600 секунд після 5-ти невдалих спроб:




За замовчуванням, в CentOS все блокування відключені, щоб їх включити замініть значення рядка enabled на true. Але не рекомендується так робити, тому що вам доведеться видалити з конфіга всі непотрібні правила блокування, інакше вони викличуть помилку запуску. Також можна включити обробку кожної програми окремо:

Далі нам необхідно налаштувати дії для заборони, а підтримується їх кілька варіантів. Як тільки потрібно виконати блокування, програма прийме рішення на основі наступних параметрів:

  • banaction - цей параметр визначає файл конфігурації способу блокування, який потрібно використовувати. Зазвичай вказує на файл в папці /etc/fail2ban/action.d/ в якому записані команди для блокування. За замовчуванням застосовується iptables;
  • action - за допомогою параметрів action задаються ярлики додаткових дій, які виконуються після banaction. Сценарієм передається ім`я, порт, протокол, мета і сценарій.

Налаштування Email сповіщень

Якщо ви хочете налаштувати оповіщення про спрацювання блокування Fail2ban по електронній пошті, це теж налаштовується в розділі [DEFAULT]. Тільки необхідно щоб на вашій машині був налаштований поштовий сервер і він міг відправляти листи на зовнішній адресу. Інакше всі листи будуть доставлені до локального облікового запису Linux.

Для настройки використовуються два параметри:

  • destemail - цей параметр задає адреса електронної пошти, на який ви хочете отримувати повідомлення. Значення за замовчуванням root @ localhost;
  • mta - визначає поштовий агент, який буде використовуватися для доставки пошти. Якщо у вас налаштований Sendmail, залиште значення за замовчуванням. Якщо ж листи потрібно доставляти на локальну машину поміняйте значення на mail.
  • Також для локальної пошти потрібно замінити рядок action_mw на action_mwl:

Відео: Налаштування iptables в CentOS 7




Далі для перевірки пошти можна подивитися файл / var / mail / mail:

enabled = true
port = ssh
logpath =% (sshd_log) s
backend =% (sshd_backend) s

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

Зазвичай, ніяких додаткових налаштувань для iptables не потрібно. Але давайте розглянемо конфігураційний файл, який відповідає за блокування, щоб ви розуміли як все працює. Ім`я цього файлу вказано в параметрі banaction. За замовчуванням це iptables-multiport.conf:

actionstart = iptables -N fail2ban-
iptables -A fail2ban-
-j RETURN # questionable usefulness
iptables -I -p -m multiport --dports -j fail2ban-

Вони використовуються для організації середовища передачі трафіку в фільтрує ланцюжку. Iptables управляє трафіком на основі ланцюгів і кожна з них може мати правила для всього трафіку, які визначають чи потрібно його пропускати чи ні. У першому рядку створюється нова ланцюжок з ім`ям fail2ban-ім`я_служби. Саме в ній будуть міститися всі заборонні правила для цього ip адреси. Другий рядок повертає управління ланцюжку, що викликала цю, а третя додає правило в основний ланцюг, яке передає управління на нашу ланцюжок.

Таким чином, весь вхідний трафік з потрібного порту обробляється нашої ланцюжком fail2ban-ім`я_служби. Зараз перше правило в ній відправляє трафік назад в зухвалу ланцюг, це означає що правління просто передається нам і назад. Але тепер ми можемо додати додаткові правила.

Відео: Налаштування Squid в CentOS 7

Для руйнування ланцюжка використовуються такі правила:

actionban = iptables -I fail2ban- 1 -s -j DROP

Відео: 3 - Готуємо CentOS 7. Налаштування ssh

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

sudo iptables -L

завершення налаштування

Коли ви завершите настройку, збережіть зміни в файлі конфігурації і перезавантажте сервіс fail2ban. Спочатку перевіряємо правильність конфігурації:

$ Sudo systemctl restart fail2ban

Для перевірки своїх правил, ви можете виконати кілька спроб входу з неправильним логіном і паролем, наприклад, для служби ssh, якщо ви налаштовували саме її, як описано в цій статті. Коли ви досягнете ліміту запитів, ваш сервер навіть не буде запитувати пароля. Потім ви можете ще раз подивитися правила:

Поділися в соціальних мережах:

Схожі
Репозиторії centos 7Репозиторії centos 7
Налаштування dns в ubuntuНалаштування dns в ubuntu
Чому ваш сайт часто недоступний?Чому ваш сайт часто недоступний?
Установка postgresql centos 7Установка postgresql centos 7
Список серверів openvpnСписок серверів openvpn
Налаштування selinuxНалаштування selinux
Налаштування сервера centos 7 після установкиНалаштування сервера centos 7 після установки
Установка і настройка freenxУстановка і настройка freenx
Як оновити php на denwer.Як оновити php на denwer.
Установка lamp в centos 7Установка lamp в centos 7
» » Налаштування fail2ban centos 7