限制 Postfix sendmail 允许的信封发件人

限制 Postfix sendmail 允许的信封发件人

我有一个带有本地帐户的 Linux 服务器(它们由 PHP-FPM 进程使用),它们使用 Postfix 的 sendmail 二进制文件发送电子邮件。

所有电子邮件都通过本地 Postfix 发送到中央邮件中心,该中心认为来自托管服务器的电子邮件在某种程度上是值得信赖的(比来自互联网的电子邮件更受信任)。

问题是任何本地用户都可以作为任何发件人发送电子邮件(-fsendmail 二进制文件的参数或 Return-Path)。

我想限制每个用户允许的发件人 - 即定义哪个用户可以以哪个发件人/发件人域发送电子邮件。当用户以错误的发件人身份发送电子邮件时,该电子邮件应被丢弃。

我没有找到任何将 UID 或本地用户名映射到发送者的解决方案。

我发现的唯一解决方案是改用 SMTP,为每个本地用户创建一个 Postfix 帐户和密码,然后使用类似reject_sender_login_mismatch中的指令smtpd_sender_restrictions。这更难配置和维护,并且没有利用用户已经通过系统身份验证这一事实的优势,我想避免这种情况。

答案1

我自己的问题的答案是在 sendmail 二进制文件周围创建一个 shell 包装器来执行所有必要的检查,并在 PHP-FPM 的配置中使用这个包装器而不是 sendmail 二进制文件。

据我所知,没有其他解决方案。

相关内容