我的服务器遭到黑客攻击,并通过互联网发送大量垃圾邮件。我做的第一件事是关闭 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
,但仅限于本地收件人。