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 как dns. )

Когда я вручную запрашиваю один из их серверов имен напрямую (см. @ 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 в этой самой системе?

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

4
задан 2 May 2016 в 19:09
2 ответа

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

4
ответ дан 3 December 2019 в 03:28

Я установил 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 ( серверы пересылки {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
0
ответ дан 3 December 2019 в 03:28

Теги

Похожие вопросы