Вопрос или проблема
Можно ли получать только письма от fail2ban, если заблокирован определенный диапазон IP?
Я настроил, чтобы получать письма, если IP заблокирован, и это работает нормально
Следующее работает, хотя это не очень красиво:
/etc/fail2ban/action.d/sendmail-whois-lines.local:
[Definition]
actionban = echo <ip> | grep -qE "(1\.1\.1\.1|2\.2\.2\.2)" && ( printf %%b "Subject: [Fail2Ban] <name>: banned <ip> from <fq-hostname>
Date: `LC_ALL=C date +"%%a, %%d %%h %%Y %%T %%z"`
From: <sendername> <<sender>>
To: <dest>\n
Hi,\n
The IP <ip> has just been banned by Fail2Ban after
<failures> attempts against <name>.\n\n
Here is more information about <ip> :\n"
%(_whois_command)s;
printf %%b "\nLines containing failures of <ip> (max <grepmax>)\n";
%(_grep_logs)s;
printf %%b "\n
Regards,\n
Fail2Ban" ) | <mailcmd> || true
Этот пример отправляет письма только для 1.1.1.1 или 2.2.2.2, если вы используете sendmail-whois-lines
.
Ответ или решение
Для получения уведомлений от Fail2Ban только при блокировке определенного диапазона IP-адресов, необходимо настроить систему таким образом, чтобы она фильтровала и отправляла письма только при соблюдении заданных условий. Стандартная конфигурация Fail2Ban позволяет настроить отправку уведомлений о блокировках, однако, дополнительная фильтрация требует адаптации конфигурационных файлов.
Теория (Theory)
Fail2Ban — это инструмент для защиты от атак методом подбора, который сканирует журналы на предмет неудачных попыток авторизации и блокирует IP-адреса, с которых совершались эти попытки, посредством создания правил для брандмауэра. Чтобы воспользоваться функцией отправки уведомлений, Fail2Ban использует действия (actions), определенные в соответствующих настройках. Уведомления могут отправляться электронной почтой, что позволяет администраторам оперативно реагировать на потенциальные угрозы.
Пример (Example)
В представленном примере пользователь требует настроить Fail2Ban так, чтобы уведомления о блокировках приходили только в случае блокировки IP-адресов из определенного диапазона. Для этого в файле /etc/fail2ban/action.d/sendmail-whois-lines.local
используется регулярное выражение для фильтрации IP-адресов. Это достигается с помощью команды grep
, которая проверяет, соответствует ли заблокированный IP-адрес заданному шаблону (в данном случае — 1.1.1.1
или 2.2.2.2
).
Пример кода действия:
[Definition]
actionban = echo <ip> | grep -qE "(1\.1\.1\.1|2\.2\.2\.2)" && (
printf %b "Subject: [Fail2Ban] <name>: banned <ip> from <fq-hostname>
Date: `LC_ALL=C date +"%a, %d %h %Y %T %z"`
From: <sendername> <<sender>>
To: <dest>\n
Hi,\n
The IP <ip> has just been banned by Fail2Ban after <failures> attempts against <name>.\n\n
Here is more information about <ip> :\n"
%(_whois_command)s;
printf %b "\nLines containing failures of <ip> (max <grepmax>)\n";
%(_grep_logs)s;
printf %b "\n
Regards,\n
Fail2Ban"
) | <mailcmd> || true
Применение (Application)
-
Конфигурация Fail2Ban: Вам нужно добавить или изменить файл
sendmail-whois-lines.local
, чтобы адаптировать его для фильтрации IP-адресов. Использование регулярных выражений в командеgrep
позволяет задать конкретный диапазон адресов, который будет проверяться на соответствие условию. -
Создание и правка конфигурационных файлов:
- Убедитесь, что данный скрипт находится в каталоге
/etc/fail2ban/action.d/
. - Помните, что данный файл сопоставляется с вашей jail-конфигурацией. Возможно, стоит создать файл
jail.local
, где вы укажете ссылки на новый action, например:[yourjail] enabled = true filter = yourfilter action = sendmail-whois-lines.local logpath = /var/log/auth.log bantime = 3600 findtime = 600 maxretry = 5
- Убедитесь, что данный скрипт находится в каталоге
-
Тестирование: После внесения изменений, перезапустите Fail2Ban и протестируйте новые настройки, запустив тестовые скрипты, пытаясь совершить неудачные попытки авторизации с IP-адресов из заданного диапазона. Это позволит удостовериться в корректной работе фильтрации и отправки уведомлений.
-
Обслуживание и мониторинг: Периодически проверяйте правильность работы Fail2Ban и актуализируйте списки IP, редактируя регулярные выражения в случае расширения диапазона или изменения политики безопасности.
Такой подход обеспечивает своевременное получение уведомлений, позволяя своевременно реагировать на потенциальные угрозы безопасности, исходящие из определенных источников. Однако важно помнить о правильной настройке системы рассылки уведомлений и своевременном обновлении всех компонетнов соответствующей инфраструктуры безопасности.