Настройка Fail2ban в Debian/Ubuntu
В современном мире киберугроз безопасность серверов становится приоритетом для каждого администратора. Одним из наиболее эффективных инструментов для защиты вашего сервера является Fail2ban. В этой статье я поделюсь своим опытом настройки Fail2ban на системах Debian и Ubuntu, а также предложу практические советы и рекомендации.Что такое Fail2ban?
Fail2ban — это программное обеспечение, которое отслеживает журналы вашего сервера и блокирует IP-адреса, которые проявляют подозрительную активность. Например, если кто-то пытается многократно угадать пароль для SSH, Fail2ban автоматически заблокирует этот IP-адрес на определенное время. Это позволяет защитить ваш сервер от атак брутфорс и других видов злоумышленных действий.Почему стоит использовать Fail2ban?
- Защита от брутфорс-атак: Fail2ban эффективно защищает ваши сервисы, такие как SSH, FTP и веб-серверы, от brute-force атак на пароли.
- Легкость настройки: Настройка Fail2ban не требует глубоких технических знаний и может быть выполнена даже начинающим администратором.
- Гибкость: Вы можете настроить Fail2ban для защиты различных сервисов и настроить параметры блокировки под свои нужды.
Установка Fail2ban
Установка Fail2ban на Debian или Ubuntu очень проста. Следуйте этим шагам:Шаг 1: Обновление системы
Перед установкой убедитесь, что ваша система обновлена:apt update
apt upgrade
Шаг 2: Установка Fail2ban
После обновления выполните следующую команду для установки Fail2ban:apt install fail2ban iptables
Структура Fail2ban
Конфигурационные файлы fail2ban размещены в директории /etc/fail2ban/:- fail2ban.conf – дефолтные настройки сервиса fail2ban;
- fail2ban.d/*.* – пользовательские настройки сервиса fail2ban;
- jail.conf – дефолтные настройки джайлов для защищаемых сервисов;
- jail.d/*.* – пользовательские настройки джайлов для защищаемых сервисов;
- filter.d/*.* – настройки шаблонов поиска в системных журналах (логах);
- action.d/*.* – настройки исполняемых действий;
- paths*.conf – настройки для отдельных операционных систем.
Настройка Fail2ban
Теперь, когда Fail2ban установлен, пора настроить его. Настройка включает в себя изменение конфигурационного файла для определения, какие службы вы хотите защищать.Шаг 1: Базовые настройки
При обновлении пакетов система может перезаписывать дефолтные файлы настроек джайлов, по этому рекомендую создавать пользовательские файлы настроек.Также необходимо отключить дефолтные параметры защиты SSH в Fail2ban:
>/etc/fail2ban/jail.d/defaults-debian.conf
Шаг 2: Настройка защиты SSH
Создаем файл /etc/fail2ban/jail.d/sshd.conf с содержимым:[sshd]
enabled = true
bantime = 1800
findtime = 600
maxretry = 3
- enabled - включает джайл
- maxretry - максимальное количество неудачных попыток входа за findtime секунд
- bantime - время блокировки в секундах
Для Debian 12 также нужно добавить одну строку для верного обнаружения SSH:
echo "sshd_backend = systemd" >> /etc/fail2ban/paths-debian.conf
Шаг 3: Проверка работы сервиса
На этом настройка джайла sshd для fail2ban завершена и необходимо перезапустить сервис:systemctl restart fail2ban
Проверяем работу сервиса:systemctl status fail2ban
Шаг 4: Проверка списока блокировок IP
Чтобы получить список блокировок IP адресов по джайлу sshd воспользуйтесь командой:fail2ban-client status sshd
Шаг 5: Управление блокировкой IP в джайле
Чтобы разблокировать IP используйте команду:fail2ban-client set sshd unbanip 1.2.3.4
Чтобы добавить айпи в "белый список", то есть предотвратить блокировку айпи в будущем используйте команду:fail2ban-client set sshd addignoreip 1.2.3.4
Получить список всех IP, которые игнорируются можно командой:fail2ban-client get sshd ignoreip
А удалить IP адрес из этого списка можно командой:fail2ban-client set sshd delignoreip 1.2.3.4
Все эти изменения имеют временный характер и будут сброшены при перезапуске сервиса Fail2ban или сервера в целом.Шаг 6: Управление постоянными блокировками в джайле
Постоянно заблокированные IP можно записать в файле конфигурации джайла /etc/fail2ban/jail.d/sshd.confignoreip = 1.1.1.1 2.2.2.2В параметре ignoreip, как в файле конфигурации джайла, так и для временного управления, IP указываются списком через пробел.
Собственные IP сервера прописывать не нужно. По-умолчанию они и так игнорируйтся.
Для применения этих изменений уже нужно перезапустить сервис fail2ban:
systemctl restart fail2ban
Анализ работы fail2ban
Во время работы fail2ban сохраняет всю информацию в системный журнал (лог файл) /var/log/fail2ban.log.Список нескольких полезных команд для анализа приведу ниже.
Список всех заблокированных IP:
fail2ban-client banned
Получения джайла, по которому IP заблокирован:fail2ban-client banned 1.2.3.4
Список всех заблокированных IP по джайлу sshd:fail2ban-client get sshd banned
Остальные опции для анализа или управления fail2ban смотрите в выводе команды:fail2ban-client -h
По умолчанию fail2ban блокирует с помощью iptables. При желании можно перенастроить на ipset, что предпочтительнее для больших списков блокировок.А проверить список заблокированных IP по джайлу sshd в файрволе можно командой:
iptables -nL f2b-sshd
Заключение
Настройка Fail2ban на Debian или Ubuntu — это один из самых простых и эффективных способов повысить безопасность вашего сервера. С его помощью вы можете защитить свои сервисы от множества угроз. Надеюсь, мой опыт и советы помогут вам в настройке и использовании Fail2ban. Не забывайте регулярно проверять журналы и настраивать правила в соответствии с evolving threats. Защита вашего сервера — это непрерывный процесс, и Fail2ban станет вашим надежным союзником в этом деле.19 Jan 2025, 19:16:30