Postfix:强制本地用户 (PHP) 对外部收件人使用 SMTPD

Postfix:强制本地用户 (PHP) 对外部收件人使用 SMTPD

我的服务器遭到黑客攻击,并通过互联网发送大量垃圾邮件。我做的第一件事是关闭 postfix,关闭传出端口 25,并花时间清理网站、postfix 队列,并完全重新设置 postfix。

我对 Postfix SMTPD 启用了很多限制,例如强制 SASL 身份验证和 TLS。

但我只是在想,PHPmail()函数并不关心 SMTPD,因为它调用sendmail,其电子邮件在队列中结束maildrop,最后在incoming队列中(并绕过我所有的 SMTPD 保护)。

我为自己制作了一个 Postfix 守护进程和队列的小草图,以便更好地理解它是如何工作的。 后缀概述

我想要以下设置:

  • 阻止 sendmail 将电子邮件传递给外部收件人,但允许其将电子邮件传递给本地用户,并允许它遵循 /etc/aliases 中的映射,即使它是“外部”映射。

我的目标是,最终用户别无选择,只能直接联系本地 SMTPD,从而由于我的smtpd_client_restrictions = permit_sasl_authenticated, reject配置而被迫登录。

答案1

这只是部分答案。

以下是如何决定允许哪个本地用户使用sendmail

  • 创建文件/etc/postfix/sendmailAllowedUsers,为每个允许的用户将“用户确定”放在一行上。
  • 加入authorized_submit_users = hash:/etc/postfix/sendmailAllowedUsers主文件
  • 跑步postmap /etc/postfix/sendmailAllowedUsers
  • 跑步postfix reload

这只是我问题的部分答案,因为这完全消除了对发送邮件邮件针对非列出用户的命令,这不是我想要做的。

我希望每个人都可以使用sendmail,但仅限于本地收件人。

相关内容