Postfix
Postfix:防止使用者更改真實郵箱地址
我的 postfix 電子郵件伺服器終於可以正常工作了。
現在,我需要防止使用者在標題的“發件人”欄位中的客戶端程序中偽造他們的電子郵件地址,因為使用者可以使用該地址作為其他使用者發送電子郵件,而沒有經驗的使用者可以認為這是真實的。
如果使用者有經驗,他可以檢查電子郵件標題並知道發生了什麼,但是有沒有辦法阻止這種行為?
看看
smtpd_sender_restrictions
和smtpd_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 的回答。