![如何阻止來自 [email protected] 的外部郵件?](https://rvso.com/image/617898/%E5%A6%82%E4%BD%95%E9%98%BB%E6%AD%A2%E4%BE%86%E8%87%AA%20%5Bemail%20protected%5D%20%E7%9A%84%E5%A4%96%E9%83%A8%E9%83%B5%E4%BB%B6%EF%BC%9F.png)
一家安全公司一直在測試我的郵件伺服器,並聲稱我的 Postfix 守護程序是開放中繼。證據如下(為了安全,mail.mydomain.com的有效公網IP已更改為10.1.1.1):
Relay User: postmaster Relay Domain: 10.1.1.1
Transaction Log: EHLO elk_scan_137 250-mail.mydomain.com 250-PIPELINING
250-SIZE 20480000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME
250 DSN
MAIL FROM: postmaster@[10.1.1.1]
250 2.1.0 Ok
RCPT TO: postmaster@[10.1.1.1]
250 2.1.5 Ok
我已經阻止了發送給 root 的郵件,但顯然我不應該阻止 postmaster。我覺得從伺服器傳送郵件給自身的能力並不能進行開放中繼。但我怎麼才能安全地阻止欺騙[電子郵件受保護]寄件者?
[注意,我已經使用 mxtoolbox.com 掃描了自己,他們說它是安全的,而不是開放中繼]
答案1
有人可以向您發送郵件到您自己的郵件伺服器的 IP 位址這一事實與該郵件伺服器是否是開放中繼完全沒有關係。
打開繼電器接受其管理域之外的任何和所有系統的郵件並轉發它們。這顯然不是這裡所示範的。
要求保全公司分享他們抽的是什麼煙,因為顯然這確實是好東西。
答案2
由於還沒有人提到過,這就是 SPF 旨在解決的問題之一。如果您在 DNS 中發布了正確的 SPF 記錄,並讓您的伺服器檢查 SPF 記錄,它就會知道外部伺服器不允許發送帶有「寄件者:*@yourdomain.com」的電子郵件。作為獎勵,這不僅可以解決您眼前的問題,還可以阻止垃圾郵件,並幫助我們其他人阻止垃圾郵件!
有關 SPF 和解決一般電子郵件/垃圾郵件問題的更多信息,請閱讀:
打擊垃圾郵件 - 作為電子郵件管理員、網域所有者或用戶,我可以做什麼?
正如邁克爾指出的那樣,這不是“開放中繼”問題。如果審計師認為情況確實如此,您應該認真考慮解僱他們。這些東西並不難,而且他們在問題的術語和嚴重性方面完全錯誤
答案3
我認為你需要使用 smtpd 限制。
我的配置片段:
smtpd_helo_restrictions =
permit_mynetworks,
reject_unauth_pipelining,
permit_sasl_authenticated,
reject_invalid_helo_hostname,
reject_non_fqdn_hostname,
reject_rbl_client zombie.dnsbl.sorbs.net,
reject_rbl_client zen.spamhaus.org,
reject_rbl_client bl.spamcop.net
smtpd_recipient_restrictions =
permit_mynetworks,
reject_unauth_pipelining,
reject_non_fqdn_recipient,
permit_sasl_authenticated,
reject_unauth_destination,
check_policy_service inet:[127.0.0.1]:2501,
permit
smtpd_sender_restrictions =
permit_mynetworks,
reject_unauth_pipelining,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
permit_sasl_authenticated,
permit_tls_clientcerts,
check_sender_access regexp:$config_directory/tag_as_foreign.re,
permit
smtpd_data_restrictions =
reject_unauth_pipelining,
reject_multi_recipient_bounce,
permit
根據您的配置,您可以執行多種檢查。 SMTP 工作流程的每個階段都設定了限制。查看更多信息http://www.postfix.org/postconf.5.html。
您應該為所有階段定義限制,即smtpd_helo_restrictions
、smtpd_data_restrictions
、smtpd_sender_restrictions
和smtpd_recipient_restrictions
。smtpd_client_restrictions
在 Postfix 2.10+ 中,有一個smtpd_relay_restrictions
可能非常適合您的新選項。
請注意,如果您希望透過 SMTP 伺服器中繼您自己的郵件,則您需要以某種方式進行識別 - 例如$mynetworks
,您可以使用身份驗證。
我的配置還使用黑主機清單、灰名單和身份驗證。
基本上,您的 SMTP 限制應允許:
- 您的網路(本機主機、內部網路等;請參閱
permit_mynetworks
), - 經過驗證的用戶(使用 SMTP 登入登入的用戶,您可以將他們的郵件中繼到外部伺服器;請參閱
permit_sasl_authenticated
), - 發送給您的電子郵件(= 您是它們的「最終目的地」;請參閱
reject_unauth_destination
)。 - (可選)您為其轉發電子郵件的所有其他電子郵件網域;例如,當您的伺服器不是某些網域的最終目的地而是前端代理程式時,您應該根據白名單檢查收件者並將其傳輸到下一跳目的地。
由未經授權的使用者從任何地方發送到外部伺服器的所有其他電子郵件都意味著開放中繼。
答案4
停用 VRFY 和 EXPN,因為這些參數可能被垃圾郵件發送者使用http://cr.yp.to/smtp/vrfy.html