Журнал Fail2ban заполнен записями с сообщением “fail2ban.filter : WARNING Determined IP using DNS Lookup:..”

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

Мой журнал fail2ban по адресу /var/log/fail2ban.log полностью заполнен записями, говорящими:

fail2ban.filter : WARNING Определен IP с помощью поиска DNS: [IP адрес]

Я думаю, это могло начаться после того, как я изменил порт ssh…

Есть идеи, в чем причина и как это остановить?

Была та же проблема.

Простое решение: добавьте следующую строку в начало файла /etc/fail2ban/jail.conf, в разделе [DEFAULT]

usedns = no

Чтобы понять, почему ваш журнал заполняется предупреждениями, обратитесь к следующей странице в вики Fail2Ban. Это делается, чтобы предотвратить манипулирование злоумышленниками с PTR записью их атакующих IP для внедрения ложных значений в ваши журналы.

Проверьте PTR запись [IP адрес] и сравните разрешенное имя с оригинальным IP адресом, например

drill -x ip_address или dig -x ip_address или host ip_address

Затем сравните результат с:

drill result или dig result или host result

Они должны совпадать. Если это не так – злоумышленник изменил PTR.
Вы можете изменить директиву usedns на “no” или “warn” в jail.conf.

В моем случае предупреждением было:

WARNING Определен IP с помощью поиска DNS: localhost = ['127.0.0.1', '127.0.0.1', '::1']

Это появлялось каждые 10 секунд. Установка usedns=no не вариант, так как я хотел найти коренную причину – в конце концов, где-то в моих журналах этот “localhost” появился. После проверки нескольких журналов я выбрал “грубую силу”:

find /var/log -type f -name '*.log' | xargs grep localhost -l

что дало мне все журналы, содержащие этот “localhost” (которые всего были два, один из них сам fail2ban.log).

Выяснилось, что это был “mysql/error.log”. Я удалил базу данных без остановки сервиса (ой…) что привело к (каждые 10 секунд):

2021-01-20T05:31:17.784116Z 2680 [Note] Access denied for user 'myserviceaccount'@'localhost' (using password: YES).

В итоге – не нужно останавливать предупреждения (только остановите службу 😉 ).

Убедитесь, что ваш регекс фильтрации не совпадает с вашим собственным хостом, например, в журнале:

your-host.com:443 123.22.33.44 - - [01/Mar/2025:00:00:00 +0000] "GET /your-endpoint HTTP/1.1" 200 78413 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/70.0.2020.127 Safari/537.36"

регекс <HOST> в шаблоне ^.*<HOST>.*$ соответствует your-host.com вместо 123.22.33.44, как вы ожидаете.

.

Ответ или решение

Fail2ban — это важный инструмент для управления безопасностью сервера, особенно при организации защиты от различных автоматизированных атак, таких как перебор паролей. Ваша ситуация, связанная с большим количеством записей в логе Fail2ban, конкретно сообщающих о том, что определение IP осуществлялось через DNS Lookup, указывает на некоторые настройки, которые, возможно, требуют корректировки.

Теория

Fail2ban работает, анализируя логи и применяя санкции (например, блокируя IP-адреса) на основании определённых шаблонов или регулярных выражений. Ключевым механизмом Fail2ban является возможность работы как с IP-адресами, так и с доменными именами, которые могут быть разрешены в IP через DNS Lookup. Потенциальные атакующие могут попытаться использовать манипуляции с DNS, например, изменяя PTR-записи, чтобы записывать ложные значения в ваши логи. Такой подход может затруднить отслеживание их реальных IP-адресов.

Одной из причин появления проблем после изменения порта SSH может быть то, что некоторые службы или сценарии продолжают обращаться к старому порту или же фильтры Fail2ban не обновлены с учётом нового порта. При этом Fail2ban может использовать DNS Lookup для каждого подключения, что и вызывает предупреждения в логах, если опция usedns настроена на yes или warn.

Пример

Рассмотрим пример из вашего описания, где в логе содержится запись:

fail2ban.filter : WARNING Determined IP using DNS Lookup: [IP address]

Эта запись в логе указывает на то, что Fail2ban выполняет DNS Lookup для некоторых IP-адресов до того, как он сможет принять решение о блокировке или других действиях. Это, в свою очередь, приведёт к увеличенному времени обработки и значительным объемам логов, особенно если DNS запросы выполняются часто или кэширование DNS не настроено должным образом.

Применение

Для предотвращения подобных ситуаций рекомендуется установить параметр usedns в значение no в конфигурационном файле Fail2ban. Это значительным образом уменьшит количество DNS Lookup операций:

  1. Откройте файл /etc/fail2ban/jail.conf или его эквивалент (в зависимости от вашей системы конфигураций может быть где-то ещё, например, в отдельной папке /etc/fail2ban/jail.d/).

  2. В секции [DEFAULT] добавьте или измените строку:

    usedns = no

    Это отключит использование DNS Lookup для IP-адресов, что предотвратит излишние запросы и записи в логах.

Дополнительно может быть полезно проверить файлы логов на наличие записей, вызывающих эти DNS-поисковые запросы. В некоторых случаях может оказаться, что ваши служебные учётные записи раз в какое-то время делают запросы, которые ошибочно интерпретируются как потенциальные атаки (как в вашем примере с MySQL). В этом случае, исправление конфигурации службы, вызывающей подозрительные действия, может устранить проблему на корню.

Для диагностики использования неверных PTR-записей и сравнения результатов, используйте утилиты командной строки, такие как dig, drill, или host, чтобы убедиться в правильности резолюции DNS:

  • Проверьте текущий PTR:

    dig -x <IP-адрес>
  • Сравните с обратным разрешением:

    dig <полученное-имя>

Неправильные или поддельные PTR-записи могут указать на то, что была предпринята попытка замаскировать реальные IP-адреса.

Заключение

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

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

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