Получать письма от fail2ban только в случае блокировки определенного диапазона IP-адресов.

Вопрос или проблема

Можно ли получать только письма от 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)

  1. Конфигурация Fail2Ban: Вам нужно добавить или изменить файл sendmail-whois-lines.local, чтобы адаптировать его для фильтрации IP-адресов. Использование регулярных выражений в команде grep позволяет задать конкретный диапазон адресов, который будет проверяться на соответствие условию.

  2. Создание и правка конфигурационных файлов:

    • Убедитесь, что данный скрипт находится в каталоге /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
  3. Тестирование: После внесения изменений, перезапустите Fail2Ban и протестируйте новые настройки, запустив тестовые скрипты, пытаясь совершить неудачные попытки авторизации с IP-адресов из заданного диапазона. Это позволит удостовериться в корректной работе фильтрации и отправки уведомлений.

  4. Обслуживание и мониторинг: Периодически проверяйте правильность работы Fail2Ban и актуализируйте списки IP, редактируя регулярные выражения в случае расширения диапазона или изменения политики безопасности.

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

Оцените материал
Добавить комментарий

Капча загружается...