Postfix
後綴:強製本地使用者 (PHP) 為外部收件人使用 SMTPD
我的伺服器被黑客入侵並通過 Internet 發送大量垃圾郵件。我做的第一件事是關閉 postfix,關閉傳出埠 25 並花時間清理網站、postfix 隊列,並完全重新設置 postfix。
我對 Postfix SMTPD 啟用了很多限制,例如強制 SASL 身份驗證和 TLS。
但我只是在想,PHP
mail()
函式並不關心 SMTPD,因為它呼叫sendmail
,其電子郵件在隊列中結束maildrop
,最後在incoming
隊列中(並繞過我所有的 SMTPD 保護)。我為自己畫了一個 Postfix 守護程序和隊列的小草圖,以便更好地理解它是如何工作的。
我想要以下設置:
- 防止 sendmail 向外部收件人發送電子郵件,但允許它向本地使用者發送電子郵件,並允許它遵循 /etc/aliases 中的映射,即使它是“外部”映射。
我的目標是最終使用者別無選擇,只能直接聯繫本地 SMTPD,因此由於我的
smtpd_client_restrictions = permit_sasl_authenticated, reject
配置而被迫登錄。
這只是部分答案。
以下是如何決定允許哪個本地使用者使用 sendmail。
- 創建一個文件**/etc/postfix/sendmailAllowedUsers**,將“user OK”放在每個允許使用的行上。
- 加入main.cf
authorized_submit_users = hash:/etc/postfix/sendmailAllowedUsers
_- 跑
postfix reload
- 跑
postmap /etc/postfix/sendmailAllowedUsers
這只是我的問題的部分答案,因為這完全消除了非列出使用者對sendmail和mail命令的訪問權限,這不是我想要做的。
我希望每個人都可以使用 sendmail,但僅限於本地收件人。