Fail2ban — это широко известная система обнаружения вторжений для ОС Linux. Она анализирует лог-файлы для выявления автоматических атак и неудачных попыток входа. Определив IP-адрес, от которого исходит атака, Fail2ban мгновенно блокирует его, что делает эту систему незаменимой в борьбе с атаками перебора. Установка и настройка Fail2ban являются простыми процессами. Вот как установить Fail2ban на CentOS 7.
- Обновите CentOS
Запустите терминал и обновите вашу систему CentOS, выполнив следующие команды.
yum update -y
yum upgrade -y
Установите Fail2ban
Для установки fail2ban выполните следующую команду.
yum install epel-release
yum install -y fail2ban
- Запустите и активируйте Fail2ban
Включите и запустите fail2ban, воспользовавшись следующими командами.
systemctl start fail2ban
systemctl enable fail2ban
Статус fail2ban можно проверить с помощью этой команды:
systemctl status fail2ban
Настройка Fail2ban
Fail2ban использует 4 конфигурационных файла. Они читаются в следующем порядке:
/etc/fail2ban/jail.conf
/etc/fail2ban/jail.d/.conf
/etc/fail2ban/jail.local
/etc/fail2ban/jail.d/.local
Чаще всего пользователи копируют стандартный файл jail.conf в jail.local и изменяют его. Давайте сделаем это:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Откройте файл jail.local с помощью текстового редактора:
vim /etc/fail2ban/jail.local
В этом файле вы найдете разные разделы, каждый из которых содержит подробные комментарии о своем назначении.
Рассмотрим основные параметры настройки:
ignoreip — используется для указания IP-адресов, которые не должны блокироваться. Для добавления одного или нескольких IP-адресов раскомментируйте строку, начинающуюся с ignoreip, и добавьте IP-адреса через запятую. Вот пример.
ignoreip = 127.0.0.1/8 ::1 23.23.23.23 192.125.1.0/24
bantime — время блокировки. По умолчанию — 10 минут. Чтобы установить его на 1 день, сделайте следующее:
bantime = 1d
findtime — время, в течение которого должно произойти указанное количество сбоев или атак. Если вы настроили fail2ban на блокировку IP после 3 неудачных попыток, то эти попытки должны произойти в течение значения findtime. Пример:
findtime = 10m
maxretry — максимальное количество неудачных попыток до блокировки IP. Пример:
maxretry = 5
Тестирование и снятие блокировки с IP-адреса
Попытайтесь войти на свой сервер через SSH, каждый раз вводя неверные данные. После третьей неудачной попытки входа вам будет запрещено подключение к серверу через SSH.
В Fail2ban встроен клиент, позволяющий управлять службой. Он может быть использован для снятия блокировки с IP-адреса.
Например, нам нужно заблокировать пользователя по IP который постоянно ломится на сервер.
Для блокировки IP-адреса (например, 125.124.221.121) воспользуйтесь командой:
fail2ban-client set sshd banip 125.124.221.121
Если после этой команды Вы наблюдаете такую ошибку fail2ban [7825]: ERROR NOK: ('sshd',), Sorry but the jail 'sshd' does not exist - то это говорит о том что Fail2ban не может найти конфигурацию с названием 'sshd'. "jail" в Fail2ban представляют собой наборы правил для различных сервисов, которые Fail2ban должен мониторить, такие как ssh, apache и другие.
Сначала вам необходимо проверить конфигурационный файл Fail2ban (обычно это '/etc/fail2ban/jail.conf' или '/etc/fail2ban/jail.local') и убедиться, что в нем есть секция для 'sshd'. Это должно выглядеть примерно так:
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
После внесения любых изменений в конфигурационный файл, службу Fail2ban следует перезапустить командой:
sudo systemctl restart fail2ban
Теперь команда для блокировки IP-адреса должна работать без ошибок.
Чтобы снять блокировку с IP-адреса (например, 125.124.221.121), выполните команду:
fail2ban-client set sshd unbanip 125.124.221.121
В заключение, Fail2ban является эффективным инструментом обнаружения вторжений, блокирующим IP-адреса, от которых исходят повторяющиеся неудачные попытки входа в систему. Он играет ключевую роль в обеспечении безопасности ваших Linux-систем, будь то CentOS 7 или Ubuntu.
С помощью данной статьи вы сможете без труда установить и настроить Fail2ban на своих серверах. Помимо установки и включения Fail2ban, вы также узнали, как настраивать параметры блокировки IP-адресов, проверять статус службы и управлять блокировкой отдельных IP-адресов.