procmail 的日志记录帮助我让一个帐户的 .procmailrc 工作,但其他两个帐户不工作,不记录);诊断困难

procmail 的日志记录帮助我让一个帐户的 .procmailrc 工作,但其他两个帐户不工作,不记录);诊断困难

作为一个拥有大量“技术挑战”用户的网站,以及系统管理员,我有责任spam为我们大家解决这个问题。所以,SpamAssassin我在识别垃圾邮件方面做得很好,现在只需将其移动到人们可以找到并识别垃圾邮件的目录中ham- 正如SA人们所说的那样!

我一直在使用IMAP基于阅读器的阅读器,但这需要一种更系统的方法,人们SA建议我使用 procmail,它已经闲置了很长时间,但最近被原作者 Stephen R. van den Berg 重新启用。因此,现代 procmail v 3.22 中的错误已修复,继续!(Tripleee 指出,这仍然是旧的 procmail - 新版本随“rawhide”一起推出,Fedora 38,现在正在测试中 - 我们正在使用Fedora Server 37,1 月份更新,使用 Postfix 3.7 和 SpamAssassin 3.4 - 如果有人感兴趣的话,可以了解更多信息)。

我认为自己将成为测试对象,出于各种原因,我有不少账户,系统工作人员通常都是这样。我选择第一个账户是因为它很少收到入站邮件,所以如果出现问题,不太可能成为问题。而且,我遇到了麻烦;我得到了crickets

当我添加~/.procmailrc日志条目(如下所示)时,我得到了指引我的数据,当我添加一些应该是默认环境变量定义的内容时,最值得注意的是定义MAILDIR,它立即活跃起来!它已经工作正常了!好极了!为了帮助我后面的其他人,关键是这些设置:

USER=<the_username>
LOGFILE=/var/log/procmail.$USER
VERBOSE='yes'
LOGABSTRACT='all'

这让我找到了问题 - 问题不多,但有几个 - 然后解决了它们。虽然其他变量也有帮助,但关键的是设置MAILDIR,直到后来我才发现,对于大多数 Fedora 系统来说,默认情况下设置是错误的。... 您只需将文件路径“硬编码”到“文件夹”,但这很有帮助:

MAILDIR=$HOME/mail

我只有一个食谱:

:0
* ^X-Spam-Status: *Yes
Spam

计划是“垃圾邮件”是“已知垃圾邮件”的存放位置,由 SA 识别,但这可能是错误的。SA 未捕获的垃圾邮件我希望用户将其放入“垃圾邮件”文件夹(注意大小写差异)以用于培训 SA。但是,我离题了。

但是当我将chown这个简单的配置复制并重新编辑到一个更常用、更重要的帐户时,我可以看到/var/mail/maillog它正在调用我正在使用的(也是相同内容的).forward脚本,所以我知道procmail(命令)被调用了。但从那里开始,没有任何东西进入配置LOGFILE。而且,值得指出的是,这与第一个帐户发生的情况类似,我通过使用日志记录解决了这个问题(回想起来,这只是错误的MAILDIR条目)。但在这里,日志记录并没有将任何内容输入其中!

所以,我又试了一次 - 还是一样。当然,我检查了文件权限等等... 我肯定是“忽略了什么”,但是,很明显,第一个帐户的日志写入设置得很好(并且仍然很好),所以我把重点放在了这一点上,它看起来绝对“出色” - 我会把这另外两个帐户的日志写入设置到这一步(日志记录工作正常)视为胜利!

(我甚至尝试过赋予执行权限.forward,但之前当然不需要,现在也没有帮助!)

谢谢。

附加信息:

这可能对其他人有帮助,如果你在 /var/log 中创建一个日志文件,/var/log/procmail并将日志环境设置为指向那里,则如果文件的权限仅为 777,则所有用户都可以使用它。未发现目录树问题。

此外,虽然 procmail 确实是从 postfix 调用的“无需额外的帮助”,但实验表明,在这个 Fedora 系统上需要 .forward 中的条目 - 至于 .forward 究竟是如何调用/读取的,我还没有时间去充分调查。

答案1

我可以想象,没有电子邮件服务器的系统会更容易发现这个问题,因为邮件服务器的日志中添加新行的速度就像“瀑布”一样快;因为我们系统的日志记录率通常每秒超过 100 行(有时高得多),如果你没有要搜索的东西——通过tail -f /var/log/maillog | grep "some search text"——你就找不到任何东西。

但是,我尝试了一下,有一个可用的帐户。然后,我找到了一个procmail[7965]: Suspicious rcfile条目。好吧,有东西可以咬一口!

Pursuit 没有显示任何明显错误,但是,父目录正确地具有与用户名不同的组条目 - 由于非常合理的原因而不同。如果不进行大量调查,更改组将产生不可知的后果。

所有常见的建议都不适用,例如chmod 0640,因此,我进行了更深的挖掘。

我发现了这条消息躲在某处

如果出现以下情况,Procmail 通常会出现此错误:[...] 该目录既是全球可写的,又是全球可执行的,但不是“粘性”(模式 +t)。

因此,只需chmod +t在父目录上进行简单操作即可!

相关内容