Authentication

EXIM:使用 EHLO 時未公佈身份驗證

  • September 28, 2018

我已將我的郵件伺服器從一個 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 的主機都不會被通告進行身份驗證。

該策略對於防止通過未加密連接進行普通驗證非常有用。

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