Postfix

Postfix:防止使用者更改真實郵箱地址

  • March 17, 2020

我的 postfix 電子郵件伺服器終於可以正常工作了。

現在,我需要防止使用者在標題的“發件人”欄位中的客戶端程序中偽造他們的電子郵件地址,因為使用者可以使用該地址作為其他使用者發送電子郵件,而沒有經驗的使用者可以認為這是真實的。

如果使用者有經驗,他可以檢查電子郵件標題並知道發生了什麼,但是有沒有辦法阻止這種行為?

看看smtpd_sender_restrictionssmtpd_sender_login_maps設置。前者可以防止格式錯誤from的地址,而後者可以強制發件人地址與登錄名匹配。

# Prevent malformed senders
smtpd_sender_restrictions =
   reject_non_fqdn_sender       # Ensure correct mail addresses
   reject_unknown_sender_domain # Ensure sender address is from an existing domain
   reject_authenticated_sender_login_mismatch # Check if the user is 
                                # allowed to use this sender address

# Maps used to stop sender address forgeries.
smtpd_sender_login_maps = pcre:/etc/postfix/login_maps.pcre

的內容login_maps.pcre可能是

# Use this regex if your users are local users, i.e. if the login name
# is just the username, not a full mail address.
# Note that literal dots have to be backslash escaped (`\.`) to avoid
# interpretation of these dots as regex wildcard.
/^([^@+]*)(\+[^@]*)?@example\.com$/ ${1}

# If one doesn't care about subaddresses, this could be simplified to
/^(.*)@example\.com/ ${1}

# This is appropriate if you have virtual users who login with their
# full mail address as their username.  Local addresses won't work, though
/^(.*)$/    ${1}

上面的配置假設 postfix 是在支持 PCRE 的情況下編譯的。在 Ubuntu/Debian 上,這需要postfix-pcre安裝軟體包。

請注意,只有經過身份驗證的使用者才能發送郵件,這才有效。如果您允許來自未經身份驗證的使用者的郵件,上述方法將無濟於事並且會失敗。如果是這種情況,請務必閱讀 Rui F Ribeiro 的回答。

引用自:https://unix.stackexchange.com/questions/294300