Одним из наиболее распространенных векторов атак на серверы являются попытки входа в систему методом грубой силы. Именно здесь злоумышленники пытаются получить доступ к вашему серверу, пробуя бесконечное количество комбинаций имен пользователей и паролей.
Для такого рода проблем самое быстрое и эффективное решение - ограничить количество попыток и заблокировать доступ к пользователю или этому IP на определенное время. Также важно знать, что для этого существуют также приложения с открытым исходным кодом, специально разработанные для защиты от этого типа атак.
В сегодняшнем посте Я представлю вам один, который называется Fail2Ban.. Первоначально разработанный Сирилом Жакье в 2004 году, Fail2Ban представляет собой программную среду предотвращения вторжений, которая защищает серверы от атак методом грубой силы.
О Fail2ban
Fail2ban сканирует файлы журналов (/ var / журнал / apache / error_log) и запрещает IP-адреса, демонстрирующие вредоносную активность, например, слишком много неверных паролей и поиск уязвимостей и т. д.
В общем случае, Fail2Ban используется для обновления правил брандмауэра для отклонения IP-адресов. на определенный период времени, хотя можно настроить любое другое произвольное действие (например, отправить электронное письмо).
Установка Fail2Ban в Linux
Fail2Ban находится в большинстве репозиториев основных дистрибутивов Linux и, в частности, в наиболее часто используемых для использования на серверах, таких как CentOS, RHEL и Ubuntu.
В случае Ubuntu для установки просто введите следующее:
sudo apt-get update && sudo apt-get install -y fail2ban
В случае с Centos и RHEL они должны ввести следующее:
yum install epel-release
yum install fail2ban fail2ban-systemd
Если у вас есть SELinux, важно обновить политики:
yum update -y selinux-policy*
Как только это будет сделано, они должны знать на переднем плане, что файлы конфигурации Fail2Ban находятся в / etc / fail2ban.
Конфигурация Fail2Ban в основном разделен на два ключевых файла; это fail2ban.conf и jail.conf. fail2ban.conf - это более крупный файл конфигурации Fail2Ban, в котором вы можете настроить такие параметры, как:
- Уровень журнала.
- Файл для входа.
- Файл сокета процесса.
- Файл pid.
jail.conf - это место, где вы настраиваете такие параметры, как:
- Конфигурация защищаемых сервисов.
- Как долго банить, если на них нападут.
- Электронный адрес для отправки отчетов.
- Действие при обнаружении атаки.
- Предустановленный набор настроек, например SSH.
конфигурация
Теперь перейдем к настройке, Первое, что мы собираемся сделать, это сделать резервную копию нашего файла jail.conf с:
cp -pf /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
И приступаем к редактированию с помощью nano:
nano /etc/fail2ban/jail.local
Внутри мы переходим в раздел [Default], где можем внести некоторые изменения.
Здесь, в части "ingoreip", указаны IP-адреса, которые не будут учитываться. и они будут полностью игнорироваться Fail2Ban, то есть в основном IP-адресом сервера (локальным) и другими, которые, по вашему мнению, следует игнорировать.
С этого момента другие IP-адреса, к которым не удалось получить доступ, будут заблокированы и дождитесь количества секунд, в течение которых он будет забанен (по умолчанию это 3600 секунд), и что fail2ban действует только после 6 неудачных попыток
После общей настройки теперь укажем услугу. Fail2Ban уже имеет несколько предустановленных фильтров для различных сервисов. Так что просто сделайте некоторые изменения. Вот пример:
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
После внесения соответствующих изменений вам, наконец, потребуется перезагрузить Fail2Ban, запустив:
service fail2ban reload
systemctl enable firewalld
systemctl start firewalld
После этого давайте быстро проверим, работает ли Fail2Ban:
sudo fail2ban-client status
Разбанить IP
Теперь, когда мы успешно заблокировали IP-адрес, что, если мы хотим разблокировать IP-адрес? Для этого мы снова можем использовать fail2ban-client и указать ему разблокировать определенный IP-адрес, как в примере ниже.
sudo fail2ban-client set ssh unbanip xxx.xxx.xx.xx
Где «ххх…». Это будет IP-адрес, который вы укажете.