Authentication
EXIM:使用 EHLO 時未公佈身份驗證
我已將我的郵件伺服器從一個 VM 移到另一個 VM。一切都像以前一樣配置,從 IMAP 的角度來看,沒有任何問題。
但是,目前,我在發送電子郵件時遇到問題。它表示不允許中繼,但是查看配置,情況並非如此。為了確認中繼問題,我開始查看 OpenSSL/Telnet 通信以進一步探勘。
AUTH
這導致我沒有被宣傳的事實。我已經有一個允許從經過身份驗證的使用者發送電子郵件的 ACL。我的 exim 配置中還有 2 個 dovecot 身份驗證器:dovecot_login: driver = dovecot public_name = LOGIN server_socket = /var/run/dovecot/auth-client server_set_id = $auth1 dovecot_plain: driver = dovecot public_name = PLAIN server_socket = /var/run/dovecot/auth-client server_set_id = $auth1
我也配置了 Dovecot 上的身份驗證配置,但是,我仍然沒有得到
AUTH
廣告。# stat /var/run/dovecot/auth-client File: ‘/var/run/dovecot/auth-client’ Size: 0 Blocks: 0 IO Block: 4096 socket Device: 13h/19d Inode: 327490 Links: 1 Access: (0660/srw-rw----) Uid: ( 93/ exim) Gid: ( 0/ root) Context: system_u:object_r:dovecot_var_run_t:s0 Access: 2018-09-28 17:36:19.665586834 +0100 Modify: 2018-09-28 17:36:19.665586834 +0100 Change: 2018-09-28 17:36:19.665586834 +0100 Birth: -
我將 SELinux 設置為許可,所以我知道這不會導致問題。這是 OpenSSL 通信:
250 HELP EHLO home.pc 250-mail.domain.com Hello home.pc [ip.ip.ip.ip] 250-SIZE 52428800 250-8BITMIME 250-PIPELINING 250-CHUNKING 250-PRDR 250 HELP AUTH 503 AUTH command used when not advertised DONE
我對如何解決這個問題有點困惑。任何關於看什麼的指示都是天賜之物。
編輯:這是完整的 Exim 配置:https ://pastebin.com/q2zmQLiM
您錯過了授權廣告的條件。
可能最簡單的方法是只為那些使用 TLS 進行連接的主機通告身份驗證:
auth_advertise_hosts = ${if eq{$tls_cipher}{}{}{*}}
上述條件的語義是下一個:為每個具有非空 tls-cipher 的主機通告身份驗證(即 TLS 已經建立)。所有拒絕使用 TLS 的主機都不會被通告進行身份驗證。
該策略對於防止通過未加密連接進行普通驗證非常有用。