防止后缀附加搜索域

防止后缀附加搜索域

我在 OpenBSD 上运行了 postfix,当在 postfix 或本地 DNS 服务器(dnsmasq)中均未配置搜索域时,我无法附加搜索域。

我的域名有一个通配符 CNAME 条目 ( *.example.com) 指向myhost.example.com

我知道,通常情况下,为了使其表现得像这样,我会在 resolv.conf 中有一个“搜索”条目,但我没有这样的条目。我的/etc/resolv.conf包含:

nameserver 127.0.0.1
nameserver <my ISP's DNS 1>
nameserver <my ISP's DNS 2>

Dnsmasq 知道忽略本地主机条目(并在日志中这样说),但这意味着其他服务在 dnsmasq 中查找。dnsmasq 仅使用默认配置,没有任何变化。

如果我启用 dnsmasq 中的日志记录,我会得到如下条目:

Dec 15 10:39:56 mail dnsmasq[640]: query[A] ncwfood.com from 127.0.0.1
Dec 15 10:39:56 mail dnsmasq[640]: forwarded ncwfood.com to <my ISP's DNS 1>
Dec 15 10:39:56 mail dnsmasq[640]: reply ncwfood.com is NXDOMAIN-IPv4
Dec 15 10:39:56 mail dnsmasq[640]: query[AAAA] ncwfood.com from 127.0.0.1
Dec 15 10:39:56 mail dnsmasq[640]: forwarded ncwfood.com to <my ISP's DNS 1>
Dec 15 10:39:56 mail dnsmasq[640]: reply ncwfood.com is NXDOMAIN-IPv6

对于失败的查找来说,这一切都是正确的,dnsmasq 正在做它应该做的事情。然后 postfix 执行以下操作:

Dec 15 10:39:56 mail dnsmasq[640]: query[A] ncwfood.com.example.com from 127.0.0.1
Dec 15 10:39:56 mail dnsmasq[640]: forwarded ncwfood.com.example.com to <my ISP's DNS 1>
Dec 15 10:39:56 mail dnsmasq[640]: reply myhost.example.com is <my IP>
Dec 15 10:39:56 mail dnsmasq[640]: query[AAAA] ncwfood.com.example.com from 127.0.0.1
Dec 15 10:39:56 mail dnsmasq[640]: cached ncwfood.com.example.com is <CNAME>
Dec 15 10:39:56 mail dnsmasq[640]: cached myhost.example.com is 2001:4b98:...

它附加我的域名,进行查找,匹配通配符,最后指向它不应该指向的地方。如果我直接向 dnsmasq 发出名称查找(例如使用dig @localhost ...),它不会进行这些额外的查找,所以肯定是 postfix 在做这件事。

在我的 postfix 配置中,我将其设置为推迟到系统 DNS 服务(dnsmasq),而不是使用它自己的 DNS 解析器,也不附加搜索域,如下所示:

lmtp_host_lookup = native
smtp_host_lookup = native
smtp_dns_resolver_options =
disable_dns_lookups = yes
ignore_mx_lookup_error = no

'native' 指令显然在起作用,因为我在 dnsmasq 日志中看到了查询。根据文档,似乎smtp_dns_resolver_options就像设置为 一样res_dnsrch,但事实并非如此(它是空白的)。

这是来自同一条消息事务的 Postfix 日志:

Dec 15 10:40:26 mail postfix/smtp[29517]: connect to ncwfood.com[46....]:25: Connection timed out
Dec 15 10:40:26 mail postfix/smtp[29517]: connect to ncwfood.com[2001:4b98:...]:25: No route to host
Dec 15 10:40:26 mail postfix/smtp[29517]: 22F8A3A4F0F: to=<[email protected]>, relay=none, delay=168442, delays=168412/0.33/30/0, dsn=4.4.1, status=deferred (connect to ncwfood.com[2001:4b98:...]:25: No route to host)

它尝试连接的地址是我的通配符主机,该主机没有运行邮件服务器,因此连接失败。

我发现一个发行说明,说 postfix 曾经自动附加域,但是该功能在 2.8 版中已停止;我正在运行 2.10。

我怎样才能阻止 Postfix 进行这些查找?

答案1

我认为它并没有disable_dns_lookups像你想象的那样。从http://www.postfix.org/postconf.5.html

disable_dns_lookups (default: no)
Disable DNS lookups in the Postfix SMTP and LMTP clients. When disabled, hosts are looked up with the getaddrinfo() system library routine which normally also looks in /etc/hosts. As of Postfix 2.11, this parameter is deprecated; use smtp_dns_support_level instead.

DNS lookups are enabled by default.

我建议查看一些其他后缀参数,例如: 追加到 myorigin附加点_mydomainlocal_header_rewrite_clients

postconf -n 的输出也会有帮助。

相关内容