You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postfix中如何阻止反向DNS归属指定域名的所有客户端?

Postfix中如何阻止反向DNS归属指定域名的所有客户端?

嘿,针对你遇到的这个反向DNS归属googleusercontent.com的垃圾邮件问题,我来给你捋清楚怎么解决~

首先得明确:直接把googleusercontent.com放进rbl_override是没用的。因为rbl_override这个哈希表是用来针对单个IP/网段做RBL规则的覆盖(比如某个IP被误判进RBL你想放行,或者某个IP要手动拒绝),它没法识别域名后缀匹配反向DNS的情况,所以这个思路走不通。

接下来,正确的做法是用Postfix的check_client_access结合PCRE正则表,来匹配客户端的反向DNS名称,具体步骤如下:

  1. 创建PCRE规则文件
    新建/etc/postfix/reverse_dns_block.pcre文件,写入以下规则:

    /\.googleusercontent\.com$/ REJECT 本服务器已阻止反向DNS归属googleusercontent.com的客户端连接
    

    REJECT后面的自定义提示可以按需修改,方便你在日志里快速识别拦截原因。

  2. 确认Postfix支持PCRE
    运行命令postconf -m | grep pcre,如果输出里有pcre,说明你的Postfix已经支持正则表,没问题;如果没有,需要安装对应的扩展包(比如Debian/Ubuntu上的postfix-pcre,CentOS上的postfix-pcre)。

  3. 调整Postfix配置顺序
    打开main.cf找到smtpd_relay_restrictions配置段,规则顺序非常重要——Postfix按顺序执行规则,一旦匹配就停止后续检查。参考你的现有配置,调整后大概是这样:

    smtpd_relay_restrictions = permit_mynetworks
        check_recipient_access hash:/etc/postfix/recipient
        permit_sasl_authenticated
        reject_unauth_destination
        check_client_access pcre:/etc/postfix/reverse_dns_block.pcre
        check_client_access hash:/etc/postfix/rbl_override
        check_sender_access pcre:/etc/postfix/domains
        reject_rbl_client <你的RBL列表行>
    

    把反向DNS拦截规则放在reject_unauth_destination之后,是因为先确保拦截未授权的转发请求,再处理恶意反向DNS的客户端;放在RBL检查之前也可以,能提前拦截这类IP,减少后续规则的处理压力。

  4. 让配置生效
    修改完配置后,运行postfix reload重载配置(无需重启服务),或者用systemctl restart postfix重启Postfix即可。

之前你提到垃圾邮件能进来是因为reject_unauth_destination在RBL后面,现在调整顺序加上反向DNS拦截,应该能有效阻止这类垃圾邮件了。

备注:内容来源于stack exchange,提问作者Pierre Abbat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 10:32:38