Email

我應該啟用埠 587 進行郵件中繼訪問嗎?

  • March 23, 2020

我使用 Postfix 執行一個虛擬電子郵件伺服器,該伺服器將地址為的電子郵件轉發domain.com到特定的 Gmail / Hotmail 帳戶。該伺服器還充當郵件中繼,saslauthd用於允許各方登錄並發送電子郵件domain.com.

目前,此郵件中繼僅適用於 TLS 上的埠 25(您可以通過在 Gmail 中創建例如僅發送電子郵件地址來訪問它)。我應該為此目的打開埠 587 而不是使用埠 25?如果是這樣,我是否需要禁用埠 25 上的郵件中繼訪問(因為我讀到 587 用於 25 以減少垃圾郵件)?

我該怎麼做呢?是否像在 Postfix中添加submission埠一樣簡單?master.cf

送出587不直接用於減少垃圾郵件,但打擊垃圾郵件確實需要另一個埠:SMTP 埠通常25由 ISP 在每個消費級網際網路連接和所有其他不應有任何電子郵件的網路上關閉伺服器。這可以防止受感染的電腦直接與接收伺服器通信,但作為副作用,您的經過身份驗證的使用者也無法使用中繼。“我應該”這個問題的答案取決於您的使用者是否面臨這些問題。那可能是的。

另外,使用單獨的埠送出變得方便還有其他原因。對於這種設置,您根本不將埠25用於出站郵件,這使您可以對 SMTP 和送出使用單獨的設置(例如smtpd_sender_restrictions/ smtpd_recipient_restrictions)。

  • 對於收到的郵件,25您通常會執行許多檢查,例如 SPF、DMARC、DNS BL。這些檢查對經過身份驗證的連接不是很有用,是嗎?您可以在送出時簡單地跳過它們。
smtpd_recipient_restrictions =
   permit_mynetworks,
   reject_unauth_destination,
   reject_invalid_hostname,
   reject_unauth_pipelining,
   reject_non_fqdn_sender,
   reject_unknown_sender_domain,
   reject_non_fqdn_recipient,
   reject_unknown_recipient_domain,
   . . .
   check_policy_service unix:private/policy-spf,
   reject_rbl_client sbl-xbl.spamhaus.org,
   . . .
   permit

收件人限制?!其中大部分實際上是對發件人的限制,但我喜歡僅在 SMTP 命令之後觸發它們以RCPT TO獲取更多調試資訊,例如誤報。

  • 對於電子郵件送出587您可能需要對經過身份驗證的使用者進行不同類型的檢查。(這些設置會master.cf覆蓋並覆蓋 中的設置main.cf。首先我們啟用 SASL 身份驗證;此配置尚未完成,因為它取決於您的 SASL 提供商。Dovecot?
submission inet n - - - - smtpd
 -o smtpd_tls_security_level=encrypt
 -o smtpd_sasl_auth_enable=yes
 . . .

您不希望每個使用者都能夠代表其他使用者發送郵件,是嗎?如果您對消息進行 DKIM 簽名,這一點尤其重要。可以將地址綁定到某些使用者名。在以下範例中,這些地址/使用者名對已經以virtual_alias_maps我們也可以在此處使用的格式定義,但您的設置很可能需要另一個映射,因為您沒有本地郵箱。

 -o smtpd_sender_login_maps=hash:/etc/postfix/virtual
 -o smtpd_sender_restrictions=reject_sender_login_mismatch
 . . .

然後,您不想接受到不存在的域的郵件等,就像您不想在smtpd_recipient_restrictionsfor port上接收來自那種域的郵件一樣25。只是現在他們實際上測試了收件人地址。在同一行(換行符僅用於格式化),您可以通過拒絕所有未經身份驗證的內容來強制執行 SASL 身份驗證。

 -o smtpd_recipient_restrictions=reject_non_fqdn_recipient,
    reject_unknown_recipient_domain,permit_sasl_authenticated,reject
 . . .

引用自:https://serverfault.com/questions/954243