我已将邮件服务器从一个虚拟机移至另一个虚拟机。所有配置均与之前相同,从 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
答案1
您错过了身份验证广告的条件。
最简单的方法可能是仅向使用 TLS 进行连接的主机广告身份验证:
auth_advertise_hosts = ${if eq{$tls_cipher}{}{}{*}}
上述条件的语义如下:对每个具有非空 tls-cipher(即已建立 TLS)的主机进行身份验证。所有拒绝使用 TLS 的主机将不会被宣传进行身份验证。
该策略对于防止通过未加密的连接进行纯通行身份验证很有用。