Fail2ban – это бесплатная IPS (Intrusion Prevention Software) с открытым исходным кодом, которая помогает администраторам защитить Linux-серверы от вредоносных логинов и атак методом грубой силы. Fail2ban написан на Python и поставляется с фильтрами для различных сервисов, таких как Apache2, SSH, FTP и т.д. Fail2ban уменьшает количество попыток вредоносного входа в систему, блокируя IP-адреса источников атак.
Fail2ban работает путем сканирования лог-файлов сервисов (например, /var/log/auth.log) и запрета IP-адресов, которые показывают вредоносные попытки входа, такие как слишком много неправильных паролей, поиск эксплойтов и т.д. Fail2ban также поддерживает несколько бэкэндов брандмауэров, таких как iptables, ufw и firewalld. Кроме того, вы можете настроить уведомление по электронной почте о каждой заблокированной попытке входа в систему.
В этом руководстве вы узнаете, как установить Fail2ba на сервер Ubuntu 24.04. Вы настроите Fail2ban jail, изучите основные команды ‘fail2ban-client’, а затем узнаете, как запрещать и разблокировать IP-адреса с помощью Fail2ban.
Установка Fail2ban и UFW (Uncomplicated Firewall)
Fail2ban – это IPS (Intrusion Prevention Software), которое защищает серверы от атак методом перебора. Оно доступно по умолчанию в большинстве репозиториев Linux и поддерживает несколько бэкэндов брандмауэра. В этом разделе вы установите Fail2ban, а затем настроите UFW (Uncomplicated Firewall), который будет использоваться в качестве бэкенда брандмауэра для Fail2ban.
Сначала выполните приведенную ниже команду, чтобы обновить индекс пакетов Ubuntu.
sudo apt update
Теперь установите ‘fail2ban‘ и ‘ufw‘ пакеты со следующими ‘apt‘ Команда. Ввод ‘Y‘, чтобы подтвердить установку.
sudo apt install fail2ban ufw
После завершения установки выполните приведенную ниже команду, чтобы открыть порт для SSH и включить UFW. Введите ‘Y’ для подтверждения, запуска и включения UFW.
sudo ufw allow OpenSSH sudo ufw enable
После включения UFW вы увидите сообщение ‘Брандмауэр активен и включен при запуске системы‘.
Далее выполните следующую команду, чтобы проверить состояние UFW. Вы увидите, что UFW находится в состоянии ‘активен‘ с ‘OpenSSH‘ включено.
sudo ufw status
Наконец, выполните приведенную ниже команду ‘systemctl’, чтобы запустить, включить и проверить ‘fail2ban‘ сервис.
sudo systemctl enable --now fail2ban sudo systemctl status fail2ban
Ниже вы можете увидеть ‘fail2ban‘ активен (запущен) и включен.
Настройка Fail2ban
После установки fail2ban вы должны настроить его, прежде чем Fail2ban начнет выполнять действия (проверку и блокировку). В этом разделе вы измените конфигурацию fail2ban ‘/etc/fail2ban/jail.local’, установите глобальную конфигурацию для ‘bantime‘, ‘maxretry‘, и ‘время поиска‘, настройте действия по умолчанию и бэкэнд брандмауэра UFW, а затем включите опцию ‘sshd‘ Тюрьма для защиты службы SSH от атак грубой силы.
Для начала скопируйте стандартную конфигурацию fail2ban в ‘/etc/fail2ban/jail.local‘ со следующим:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Откройте файл ‘/etc/fail2ban/jail.local‘ со следующим ‘nano‘ команда редактора.
sudo nano /etc/fail2ban/jail.local
Добавьте свою локальную сеть в ‘ignoreip‘ опция. Любая подсеть в пределах этой опции не будет блокироваться fail2ban.
ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24 192.168.10.20
Настройте конфигурацию по умолчанию для ‘bantime‘ (время IP-адреса будет запрещено), ‘findtime‘ (продолжительность между числом неудач перед действием запрета), и ‘maxretry‘ (количество неудачных попыток запрета IP-адресов). В этом примере вы установите значение ‘bantime‘ к ‘1 час‘, ‘время поиска‘ к ‘10 минутs”, с ‘maxretry‘ к ‘5 раз‘.
bantime = 1h findtime = 10m maxretry = 5
По желанию измените значение по умолчанию ‘действие‘ к ‘%(action_mw)s‘ для запрета IP-адресов и отправки уведомления администратору по электронной почте. Также не забудьте изменить параметры ‘destmail’ и ‘sender’.
action = %(action_mw)s destemail = [email protected] sender = [email protected]
Измените стандартное значение ‘запрет‘ к ‘ufw‘. С помощью этого IP-адреса будут запрещены fail2ban через UFW.
banaction = ufw
Теперь измените стандартный джейл для ‘sshd‘ с приведенной ниже конфигурацией. В этом примере используется ‘sshd‘ тюрьма будет иметь пользовательские настройки для ‘bantime‘, ‘maxretry‘, и ‘время поиска‘.
[sshd] enabled = true maxretry = 3 findtime = 15m bantime = 3h
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
После завершения работы сохраните и выйдите из файла.
Наконец, выполните команду ‘systemctl’, приведенную ниже, чтобы перезапустить ‘fail2ban‘ и примените изменения.
sudo systemctl restart fail2ban
Проверка правил fail2ban с помощью fail2ban-client
На данный момент служба Fail2ban запущена и работает с включенным джейлом ‘sshd’. Теперь вы изучите основные команды ‘fail2ban-client’ для проверки и управления установкой Fail2ban.
Чтобы убедиться, что fail2ban запущен, запустите команду ‘fail2ban-client‘ команда ниже.
sudo fail2ban-client ping
Если fail2ban запущен, вы увидите вывод ‘PONG‘.
Теперь проверьте состояние ‘sshd‘ jail с помощью следующей команды. Это покажет вам список обнаруженных и запрещенных IP-адресов для ‘sshd‘ Тюрьма.
sudo fail2ban-client status sshd
Далее запустите команду ‘fail2ban-client get‘ команду ниже, чтобы проверить конкретные правила вашей тюрьмы fail2ban. В этом разделе вы проверите команду ‘bantime‘, ‘maxretry‘, ‘действия‘, ‘время поиска‘, и ‘ignoreip‘ из ‘sshd‘ Тюрьма.
sudo fail2ban-client get sshd bantime sudo fail2ban-client get sshd maxretry sudo fail2ban-client get sshd actions sudo fail2ban-client get sshd findtime sudo fail2ban-client get sshd ignoreip
Как запретить и разблокировать IP-адрес с помощью fail2ban-client
Важно знать, как запретить или разбанить IP-адреса вручную с помощью ‘fail2ban-client’. С его помощью вы сможете легко удалить свой IP-адрес из списка запрещенных. Вы будете использовать команду ‘fail2ban-client’ для запрета и разбана IP-адресов на Fail2ban.
Чтобы запретить IP-адреса вручную через fail2ban, запустите команду ‘fail2ban-client‘ команда ниже. В этом случае запрещенный IP-адрес попадает в ‘sshd‘ Тюрьма.
sudo fail2ban-client set sshd banip IP-ADDRESS
Теперь выполните следующую команду, чтобы исключить IP-адрес из fail2ban ‘sshd‘ Тюрьма.
Sudo fail2ban-client set sshd unbanip IP-ADDRESS
Наконец, вы можете проверить ‘sshd‘ состояние тюрьмы с помощью команды ниже. Вы увидите, что IP-адрес был удален.
sudo fail2ban-client status sshd
Заключение
Поздравляем! Вы завершили установку fail2ban на сервер Ubuntu 24.04. Вы также изучили базовую конфигурацию для настройки Fail2ban, включая настройку глобальной конфигурации и jail. Наконец, вы узнали, как использовать команду ‘fail2ban-client’ для проверки статуса fail2ban, состояния jail, конфигурации jail, а также для запрета и разблокировки IP-адресов вручную.