在 Debian 上配置 Exim 仅使用密码进行身份验证?

在 Debian 上配置 Exim 仅使用密码进行身份验证?

我尝试以这样的方式配置 Exim,即希望通过服务器中继电子邮件的客户端必须提供单个密码。该文件/etc/exim4/conf.d/auth/30_exim4-config_examples包含以下注释掉的配置行:

# plain_server:
#   driver = plaintext
#   public_name = PLAIN
#   server_condition = "${if crypteq{$auth3}{${extract{1}{:}{${lookup{$auth2}lsearch{CONFDIR/passwd}{$value}{*:*}}}}}{1}{0}}"
#   server_set_id = $auth2
#   server_prompts = :
#   .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
#   server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
#   .endif

我不确定我是否完全理解这里发生的事情。

  • 当示例包含输入用户名和密码的提示时,为什么为server_prompts空?login_server这里不是应该提示输入密码吗?

  • 密码实际设置在哪里?

我完全打算使用 TLS 来保护客户端和服务器之间的通信 - 据我了解,上面代码片段中的最后三行会导致仅在启用或AUTH_SERVER_ALLOW_NOTLS_PASSWORDS设置 TLS 时才会公布身份验证方法。

答案1

保持server_prompts原样将为您提供默认(符合 RFC)行为,否则您可能需要修改客户端以提供其他值。

密码在文件中查找CONFDIR/passwdCONFDIR/etc/exim4Debian 上的相同。

您是否希望所有用户都使用通用密码?然后你就可以改变server_condition.就像是:

server_condition = ${if {eq{$auth3}{mysecret}{yes}{no}}

请查看优秀的 exim 文档,例如这里

相关内容