Postfix
如何配置 postfix 以拒絕所有沒有特定“發件人”欄位的電子郵件?
我有一個 SMTP 中繼,可以中繼到我們的電子郵件轉發伺服器,但目前它正在接受來自各種討厭的垃圾郵件發送者的郵件,並且我們的電子郵件轉發主機(正確地)暫停了轉發,直到我們可以進一步鎖定。因此,我想鎖定此中繼,以便僅接受具有特定“發件人”值的電子郵件作為一個好的開始。
根據拒絕 Postfix 中未列出的發件人中的 QA ,我嘗試將其設置為
main.cf
:smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/acl_unknown_permited reject_unlisted_sender
..並製作一個
/etc/postfix/acl_unknown_permited
包含以下內容的新文件:valid@server.com permit
…使用適當的伺服器名稱。
這似乎不會拒絕電子郵件,儘管將發件人地址設置為類似之外的
valid@server.com
內容mrflibble@potatopeople.com
不會被拒絕。是否有其他設置可以覆蓋我在這裡設置的內容?
在這一點上,我唯一能想到的可能會出錯的是我們中繼的目標是目前推遲電子郵件發送嘗試。這會掩蓋問題嗎(我預計在我們遇到以下錯誤之前會發生拒絕,並且我很謹慎地打開下一階段,直到我們完全關閉繼電器)?
Apr 25 22:13:37 smtp-relay postfix/smtp[447151]: BE0FB4247C: to=<my@emailserver.com>, relay=email.forwarder.com [X.X.X.X]:587, delay=0.29, delays=0.09/0.02/0.17/0, dsn=4.0.0, status=deferred (SASL authentication failed; server email.forwarder.com [X.X.X.X] said: 535 Too many failed login requests from Y.Y.Y.Y. Try again later. #MS-ST-D)
聽起來像是一個更大的重新評估的開始,所以讓我們從兩個項目開始:
- Postfix SMTPd限制在 SMTP 守護程序中強制執行:一次,同時選擇是接受送出的郵件並將其排隊,還是拒絕它。在對新接受的郵件設置額外限制後,您仍然必須手動整理已接受到隊列中的不需要的郵件。執行
postqueue -p
以生成隊列目前外觀的列表。如果您不能輕易確定每個隊列項目都是未經授權的,您將通過查找postsuper
說明找到區分小麥和穀殼的方法。- 僅對可接受的信封發件人設置限制可能對您轉發的垃圾郵件數量幾乎沒有影響 - 垃圾郵件發送者可能仍然使用來自地址和任何內容的任何*標題發送郵件。*您可能希望實施大量附加限制,例如要求發件人進行身份驗證,或要求郵件來自您控制下的特定網路(IPv4/IPv6)(通常通過設置完成
mynetworks
)。