Назад | Перейти на главную страницу

Fail2ban на Debian Buster - правильный способ настройки?

Fail2ban можно настроить во многих местах.

$ fail2ban-client -i 
Fail2Ban v0.10.2 reads log file that contains password failure report
and bans the corresponding IP addresses using firewall rules.

В Debian Buster я могу редактировать свои настройки в нескольких файлах конфигурации:

/etc/fail2ban/jail.d/defaults-debian.conf
/etc/fail2ban/fail2ban.conf
/etc/fail2ban/jail.conf
/etc/fail2ban/action.d/

Некоторые руководства рекомендуют:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

В документации по fail2ban говорится:

Изменения должны происходить в .local, а не в .conf. Это позволяет избежать проблемы слияния при обновлении. Эти файлы хорошо документированы, и там должна быть доступна подробная информация.

Означает ли это, что каждый файл .conf, который я хочу редактировать, должен существовать как файл .local?

Я смущен! Кто-нибудь может пролить свет на это, пожалуйста?

Вам нужно отредактировать только один файл.

Чтобы избежать проблем при обновлении системы, всегда следует копировать jail.conf к jail.local и изменять только последнее. То же самое для всех других файлов конфигурации fail2ban.

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Затем отредактируйте этот файл и прокрутите вниз до фильтров, которые вы хотите использовать.

В этих фильтрах добавьте enabled = true. Я рекомендую не включать слишком много фильтров вначале. Достаточно одного или двух. Будьте осторожны с фильтром SSH, если вы подключены через SSH. Вы можете заблокировать себя.

Фильтры

Посмотрите в filter.d каталог, чтобы увидеть все доступные фильтры. Выберите один-два подходящих. Обязательно поймите, с чем совпадают их регулярные выражения и какие файлы журналов вам нужны.

Fail2ban работает с файлами журналов. Таким образом, фильтры должны соответствовать соответствующим файлам журнала. Вы можете проверить это с помощью

fail2ban-regex <logfile> <filter>

Например

fail2ban-regex /var/log/nginx/default_access.log /etc/fail2ban/filter.d/nginx-botsearch.conf

Этот фильтр, например, ищет 404 ошибки в вашем NGINX access.log и блокирует их, если условия совпадают. Условия см. Ниже.

После завершения редактирования перезапустите fail2ban:

systemctl restart fail2ban

Другие настройки в вашем jail.local файл:

Все настройки могут быть как глобальными, так и специфичными для фильтра.

bantime  = 7200
findtime  = 10m
maxretry = 10

означает, что 10 ошибок за 10 минут приведут к бану на 2 часа.

Если вы не хотите использовать iptables для бана, вы можете изменить свой banaction. По умолчанию для запрета используется iptables, который должен работать во всех известных мне системах, но вы можете не увидеть запреты в привычном интерфейсе брандмауэра.

banaction = ufw

Смотрите действия в action.d. С этим параметром fail2ban будет использовать ufw для блокировки IP-адресов. Тогда вы можете увидеть бан через «fw status».

Обязательно исключите из блокировки свой локальный диапазон IP-адресов, особенно для SSH, чтобы вы не могли заблокировать себя. :

ignoreip = 127.0.0.1/8 ::1 192.168.178.0/24

Я бы предложил вам не для создания или изменения новых фильтров или действий. Используйте включенные и будьте счастливы. Создать свои собственные шаблоны rges непросто.