Повторное включение поиска DNS в Spamassassin после отключения открытого резолвера.

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

Я использовал DNS моего облачного провайдера (Hetzner) с Spamassassin, и его запросы к spamhaus отклонялись (из-за ограничения частоты запросов с этого конкретного DNS сервера). Spamassassin запоминает это отклонение, создавая пустой файл:

spamd[1402676]: check: dns_block_rule RCVD_IN_ZEN_BLOCKED_OPENDNS hit, creating /root/.spamassassin/dnsblock_zen.spamhaus.org (Это означает, что DNSBL заблокировал вас из-за слишком большого количества запросов. Установите все затронутые правила на оценку 0, или используйте "dns_query_restriction deny zen.spamhaus.org" для отключения запросов)

Я исправил проблему, установив unbind следуя этой странице и назначив

dns_available yes
dns_server 127.0.0.1

в /etc/spamassassin/local.cf.

Теперь файл /root/.spamassassin/dnsblock_zen.spamhaus.org нигде не найти (ни в /root/.spamassassin, ни в /var/lib/spamassassin/.spamassassin, ни где-либо еще через find / -name ...), чтобы я мог его удалить и снова включить проверки на основе DNS.

Где он?

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

Восстановление функционала DNS-запросов в SpamAssassin после перехода от использования открытых резолверов — это важная задача для обеспечения эффективной фильтрации спама. В данном случае используется DNSBL (DNS-based Blackhole List) сервисы, такие как Spamhaus, с целью повышения точности определения спама, и важно, чтобы эти запросы выполнялись корректно.

Теория

SpamAssassin — это мощный инструмент для фильтрации электронной почты с открытым исходным кодом, который интегрирует различные методы детекции спама, включая DNSBL. Когда SpamAssassin взаимодействует с DNSBL, как, например, блок-листами Spamhaus, он выполняет DNS-запросы для проверки IP-адресов источников электронной почты. Если эти запросы резолвятся через серверы DNS с высокой нагрузкой или открытые резолверы, такие как публичные DNS вашего провайдера (в данном случае Hetzner), ваши запросы могут быть заблокированы из-за превышения лимита. Это происходит, потому что публичные DNS-серверы часто используются множеством клиентов одновременно, что может привести к превышению допустимого количества запросов к DNSBL.

Когда DNSBL, например Spamhaus ZEN, обнаруживает слишком много запросов с одного IP (в данном случае – отредактированного IP публичного DNS-сервера), он блокирует дальнейшие запросы от этого IP. SpamAssassin обнаруживает это по коду ошибки и создает файл, сигнализирующий о блокировке, что не позволяет выполнять дальнейшие DNS-запросы.

Пример

Ваша ситуация иллюстрирует типичную проблему, когда использование публичных DNS-серверов приводит к блокировке SpamAssassin при попытке выполнения DNS-запросов к Spamhaus. Вы справились с этой ситуацией, установив локальный DNS сервер, например, Unbound. Этот локальный сервер кеширует DNS-запросы и выполняет рекурсивные запросы, тем самым не превышая лимиты, установленные DNSBL серверами. Вы обновили конфигурацию SpamAssassin, указав в качестве DNS сервера локальный адрес 127.0.0.1, и это позволило вам избежать блокировок крупных публичных DNS.

Применение

Однако, после решения проблемы, вы заметили, что файл блокировки /root/.spamassassin/dnsblock_zen.spamhaus.org не найден ни вручную, ни с помощью команды find. Давайте разберем, где может быть проблема и что с этим делать.

  1. Поиск файла блокировки:

    • SpamAssassin обычно создает данные о блокировке в каталоге, используемом для хранения пользовательских данных. Это могут быть директорий по умолчанию, такие как ~/.spamassassin для пользователя или /var/lib/spamassassin для системных настроек.
    • Поскольку файл не отображается в ожидаемом месте, возможные причины его отсутствия могут включать автоматическое удаление после успешного снятия блокировки, изменение директорий или прав доступа, или же система может просто использовать другой метод для сохранения такой информации.
  2. Удаление блокировки вручную:

    • Поскольку файл блокировки не найден, стоит проверить конфигурации SpamAssassin и DNS-сервера для подтверждения отсутствия текущей блокировки.
    • Убедитесь, что файл действительно необходим для текущего функционирования системы. Если DNS-запросы выполняются корректно через локальный DNS, этим можно пренебречь.
  3. Проверка функциональности:

    • После перенастройки, проверьте, работает ли DNS-функция SpamAssassin корректно. Для этого можете отправить тестовые сообщения с известными спамовыми IP и проверить, как SpamAssassin их обрабатывает.
    • Используйте команду spamassassin -D --lint для детального анализа работы и поиска ошибок в конфигурации.
  4. Будущее избегание блокировок:

    • Для избежания подобных блокировок в будущем всегда используйте локально настроенные рекурсивные DNS-серверы, которые могут корректно кешировать запросы.
    • Регулярно обновляйте конфигурацию и следите за изменениями в политиках DNSBL-провайдеров.

Таким образом, перенастройка на локальный DNS-сервер, безусловно, улучшит производительность и функциональность SpamAssassin, однако всегда стоит внимательным образом контролировать ситуации, когда могут возникать подобные блокировки.

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

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