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

Spamassassin: Обойти /etc/resolv.conf DNS для запроса DNSBL?

Вопрос
Есть ли способ позволить spamassassin обойти DNS-серверы моей Linux-системы для запроса DNSBL?

Справочная информация
Когда мой Сервер получает электронную почту, она проверяется spamassassin. Одна из этих проверок ищет задействованные почтовые серверы в черных списках DNS. К сожалению, DNS моего провайдера больше не может запрашивать эти BL. Об этом свидетельствует информация в заголовке spamassassin. URIBL_BLOCKED во всех письмах, которые я получаю. Я тоже это проверил вручную:

root@net:# dig 2.0.0.127.multi.uribl.com txt +short
"127.0.0.1 -> Query Refused. See http://uribl.com/refused.shtml for more information [Your DNS IP: 123.123.123.123]"

(123.123.123.123 настроен в моем /etc/resolv.conf как днс.)

Когда я вручную запрашиваю один из их серверов имен прямо (см. @ cc.uribl.com.) без использования рекурсора моего провайдера я получаю ответ:

root@net:# dig 2.0.0.127.multi.uribl.com txt @cc.uribl.com. +short
permanent testpoint

(обратите внимание, что это тестовый запрос для того BL, который должен дать такой результат)

Резюме
Итак, есть ли способ заставить spamassassin не использовать системный DNS по умолчанию для запросов DNS, кроме установки рекурсора DNS в этой самой системе?

ОБНОВИТЬ
Ладно, вообще-то проблем с установкой локального днс-рекурсора нет. Он легкий и простой в настройке, и теперь у меня больше нет проблем с BL.

Spamassassin (Почта :: SpamAssassin :: DnsResolver) использует Net :: DNS :: Resolver модуль perl.
Это должно позволить вам изменить серверы имен, которые использует spamassassin через RES_NAMESERVERS переменная окружения.

Я установил BIND Named на своем ноутбуке, следуя старой версии Документация Spamassassin на «Отключить пересылку для запросов DNSBL»; это требует, чтобы я указал /etc/resolv.conf до 127.0.0.1.

Но я мог заставить это работать, только поставив

static domain_name_servers=127.0.0.1

в конце /etc/dhcpcd.conf. Затем мне пришлось скопировать значение, которое обычно в /etc/resolv.conf в /etc/named.conf (forwarders { 192.168.1.1; }). Это отлично работало, пока я не возьму свой ноутбук в другое место, когда после подключения к новому DHCP-серверу я был бы удивлен, обнаружив, что DNS не работает, потому что я указал Named на старый локальный адрес.

На мой взгляд, гораздо лучше избежать этой проблемы, если только Spamassassin, использующий локальный Named; поэтому я восстановил оригинал dhcpcd.conf и указал Spamassassin на 127.0.0.1. Вы можете сделать это одним из двух способов:

Следуя ответу AnFi, вы можете изменить среду, например. в служебном файле /etc/systemd/system/spamassassin.service:

[Service]
Environment="RES_NAMESERVERS=127.0.0.1"
...

Но согласно приведенному выше документу вы также можете настроить это в файле конфигурации Spamassassin. local.cf. Возможно, это более элегантно:

dns_server 127.0.0.1