Postfix配置阻止垃圾邮件发送者域名无效,请求排查解决
Postfix配置阻止垃圾邮件发送者域名无效,请求排查解决
嘿,我来帮你捋捋这个Postfix拦截失效的问题~
首先得揪出核心问题:你虽然在/etc/postfix/access里加了对stupidspammers.example的拦截,但Postfix默认不会自动用这个规则去检查发件人地址,得手动把规则加到主配置的对应限制项里才行。另外你提到邮件实际是从spamgateway.nil的子域发送过来的,光拦显示的From域名可能不够,还得针对真实发送服务器的域名做拦截。
具体修复步骤
修改Postfix主配置文件
打开/etc/postfix/main.cf,找到smtpd_sender_restrictions配置项(如果没有就自己新增),把check_sender_access hash:/etc/postfix/access加进去,注意要放在允许类规则的前面,比如:smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/access, permit_mynetworks, reject_unauth_destination这个配置是告诉Postfix:先检查发件人地址是否匹配access表的规则,再执行其他权限限制。
补充拦截真实发送域名
既然邮件是从spamgateway.nil的子域发过来的,在/etc/postfix/access里追加一行,拦截整个发送域:stupidspammers.example REJECT *.spamgateway.nil REJECT这样不管是显示的发件人域名,还是真实发送的服务器子域,都会被拦截。
更新哈希表并重启Postfix
执行以下命令让配置生效:sudo postmap hash:/etc/postfix/access sudo systemctl restart postfix验证拦截是否生效
- 用命令测试规则匹配情况:
如果返回postmap -q stupidspammers.example hash:/etc/postfix/access postmap -q random.sub.spamgateway.nil hash:/etc/postfix/accessREJECT,说明哈希表配置没问题。 - 之后查看邮件日志
/var/log/mail.log,看看有没有相关拦截记录,确认后续垃圾邮件被成功阻挡。
- 用命令测试规则匹配情况:
额外提醒
Postfix的规则顺序很关键,一定要把check_sender_access放在permit_mynetworks这类允许规则前面,不然允许规则会先触发,拦截就起不到作用了。
备注:内容来源于stack exchange,提问作者jwodder
相关产品推荐
相关产品推荐

