EXIM:使用 EHLO 时未公布身份验证

EXIM:使用 EHLO 时未公布身份验证

我已将邮件服务器从一个虚拟机移至另一个虚拟机。所有配置均与之前相同,从 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 的主机将不会被宣传进行身份验证。

该策略对于防止通过未加密的连接进行纯通行身份验证很有用。

相关内容