Postfix 的标头检查未按预期工作

Postfix 的标头检查未按预期工作

这个问题继续这个相同的但重点关注另一个细节方面:Postfix 测试工具和不同的选项。

作为链接问题的 OP,为了防止垃圾邮件,具体来说,密码泄露勒索,我尝试阻止包含我的被攻陷用旧密码作为调侃的手段。

应该被黑的密码是...... P@ssw0rd,以下是我所做的:

我已经创建了一个正则表达式规则/etc/postfix/header_checks

/^Subject: .*P@ssw0rd.*/i REJECT I know you are scamming me

然后重新检查main.cf

header_checks = regexp:/etc/postfix/header_checks

根据链接问题的答案,我仔细检查了 master.cf 中是否有覆盖标头检查的选项。由于我使用的是在交付之后但在交付之前dkimproxy运行的,因此我仅在 dkim 完成侦听器上具有该选项(手册推荐的端口 10028)。我也尝试发表评论。smtpno_header_checks

现在进行测试。如果我选​​择一封显示我的勒索邮件P@ssw0rd并将其推送到 postconf,我会得到不同的结果。请注意,正则表达式被标记为不区分大小写

# postmap -q "Subject: Videos of you - P@ssw0rd" regexp:/etc/postfix/header_checks
# postmap -fq "Subject: Videos of you - P@ssw0rd" regexp:/etc/postfix/header_checks
DISCARD I know you are scamming me

上面的例子也适用于魔法蓝色药丸

所以我被困住了。我已经读过回答经过亚历克西斯威尔克并了解到 Postfix 默认使用大小写不敏感比较。哇,我不关心大小写,我指定了/i标志。

正则表达式当我将标题放入主题行时,成功找到了主题行。

问题:什么这里不工作吗?

答案1

您确实需要不使用标志“i”来使其不区分大小写。从手册中,https://www.postfix.org/regexp_table.5.html

       i (default: on)
              Toggles  the case sensitivity flag. By default, matching is case
              insensitive.

默认不区分大小写,添加标志“i”可切换为区分大小写。

答案2

与小黄鸭对话,我在调查和撰写问题的过程中自己找到了解决方案。

从 header_checks 文件中删除/i(不区分大小写) 标志非常有效

正则表达式变成/^Subject: .*P@ssw0rd.*/ REJECT I know you are scamming me

等了几个小时才看到真正的邮件在生产中被拒绝。我不会等太久。

相关内容