我在带有 Postfix 的 Azure Linux VM 上运行我自己的邮件服务器。由于我受到严重的垃圾邮件攻击,我加强了我的邮件服务器安全措施。
没有进入安全的事情,今天我注意到了一些特别不寻常的事情。
Postfix 没有收到来自某些知名域的邮件。只有一些
# /var/log/mail
postfix/smtpd[40702]: NOQUEUE: reject: RCPT from xxxx.ing.net[xx.xx.xx.xx]: 451 4.3.5 <[email protected]>: Sender address rejected: Server configuration problem; from=<[email protected]> to=<xxxxxxxxxx> proto=ESMTP helo=<xxxx.ing.net>
# /var/log/warn
postfix/smtpd[32944]: warning: problem talking to server private/spf-policy: Connection timed out
我愚蠢地做的是在 ing.com / ing.net 上 ping SPF 记录
从我的 Windows 框 nslookup
ing.com
Server: [8.8.8.8]
Address: 8.8.8.8
Risposta da un server non autorevole:
ing.com text =
"MS=ms77059065"
ing.com text =
"v=spf1 include:_spf.ing.net ip4:91.209.197.6 ip4:89.20.160.55 ip4:78.136.53.254 ip4:95.138.135.251 ip4:92.52.81.2 ip4:146.148.26.249 ip4:83.231.160.132 ip4:83.231.160.128/26 ip4:212.187.169.64/26"
" include:_spf_mx.solvinity.com include:mailplus.nl ip4:24.157.48.85 ip4:141.155.214.85 ip4:160.34.64.28 ip4:192.254.112.185 ip4:118.127.87.207 ip4:128.242.118.200 ip4:62.73.172.35 ip4:83.217.248.35 ip4:91.209.197.7 -all"
ing.com text =
"adobe-idp-site-verification=8b81f7b92ccac0b65bab7d47f9fcecaeda6f04ac870b79133d8ac54be7b53534"
ing.com text =
从电子邮件服务器框 nslookup
> nslookup
> set type=txt
> ing.com
;; Truncated, retrying in TCP mode.
从将 DNS 服务器设置为 8.8.8.8 的邮件服务器框返回相同的 SPF 有效负载。
问题是:是什么导致 Azure VM 中的 TXT DNS 解析出现此问题?在盲目更改系统 DNS 设置之前,我想了解错误及其原因,以及为什么仅在 Azure 默认 DNS 上发生
看起来将 DNS 切换到 Google 公共 DNS 是可行的,并且是目前使 SPF 正常工作的唯一方法。
碰巧的是,如果 DNS 查询大于 512 字节,则无法通过标准 UDP 传输。
nslookup
,据我所见,自动切换到 TCP。但是 DNS 服务器必须支持 TCP 查询,即必须在 TCP 53 上侦听。
问题似乎出在 Azure 基础架构上。他们的 DNS (
168.63.129.16
) 可能配置错误,仅仅是因为它在使用 TCP 时超时。(睡觉)
其他 DNS 服务不会出现此类问题,因此这让我认为这不是设备的本地防火墙的问题
SuSEfirewall
。切换
/etc/resolv.conf
到任何其他公共 DNS(例如8.8.8.8
)允许 TCP 查询和 SPF 返回工作。一个缺点是一些垃圾邮件黑名单对谷歌DNS不是很友好。
例如,我不得不在我的评论
main.cf
日志已经轮换,所以我不记得我收到的那个 RBL 的确切错误消息。