Posfix smtpd_sasl_path 似乎对我不起作用

Posfix smtpd_sasl_path 似乎对我不起作用

我有这样的配置:

/etc/postfix/main.cf

smtpd_sasl_type = cyrus
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = /usr/lib/sasl2/smtpd

/usr/lib/sasl2/smtpd.conf

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN DIGEST-MD5 NTLM

但当我连接到 SMTP 时,我得到了意外的 CRAM-MD5 机制

$ telnet localhost 25

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 ubuntu8 ESMTP Postfix (Ubuntu)
EHLO localhost
250-AUTH NTLM CRAM-MD5 PLAIN LOGIN DIGEST-MD5
...

因此看起来它没有使用我的配置。这里出了什么问题?

另外,如果我不指定 smtpd_sasl_path,是否有默认配置?根据http://www.postfix.org/SASL_README.html

Cyrus SASL version 2.x searches for the configuration file in /usr/lib/sasl2/.

但实际上我默认在这个位置没有配置。

版本:Ubuntu 8.04,Postfix 2.5

答案1

您不应该在这里为“smtpd_sasl_path”设置完整路径“/usr/lib/sasl2/smtpd”,只有“smtpd”就可以,这个角度需要一个应用程序名称而不是cyrus决定postfix使用的配置文件的路径。

http://www.postfix.org/postconf.5.html#smtpd_sasl_path

答案2

的含义smtpd_sasl_path特定于您的 SASL 实现;对于 Dovecot,它指向 Postfix 可用于与 IMAP 守护进程通信的套接字。我不确定它对于 Cyrus 的具体含义,但您可以通过运行以下命令找到其默认值(以及所有其他 Postfix 配置变量的默认值):

$ sudo postconf -d | grep smtpd_sasl_path

至于 Cyrus 配置文件,您是否尝试过cyrus_sasl_config_path设置main.cf

答案3

此配置选项的文档有点混乱。

正如其他答案中提到的那样,本文档(http://www.postfix.org/postconf.5.html#smtpd_sasl_path) 规定默认值为smtpd

那么,要了解这实际上意味着什么,请看这里 -

http://www.postfix.org/SASL_README.html#server_cyrus_name

和这里 -

http://www.postfix.org/SASL_README.html#server_cyrus_location

这些规定:

配置文件的名称(默认:smtpd.conf)是可配置的。它由 Postfix SMTP 服务器发送给 Cyrus SASL 库的值和 Cyrus SASL 添加的后缀 .conf 连接而成。

Postfix 发送的值是将使用 Cyrus SASL 的服务器组件的名称。它默认为 smtpd,并使用以下变量之一进行配置:

/etc/postfix/main.cf:

# Postfix 2.3 and later
smtpd_sasl_path = smtpd

# Postfix < 2.3
smtpd_sasl_application_name = smtpd

和:

Cyrus SASL 搜索命名文件的位置取决于 Cyrus SASL 版本和所使用的操作系统/发行版。

您可以阅读有关以下主题的更多信息:

Cyrus SASL 版本 2.x 在 /usr/lib/sasl2/ 中搜索配置文件。

Cyrus SASL 版本 2.1.22 及更新版本还会在 /etc/sasl2/ 中进行搜索。

一些 Postfix 发行版经过修改,并在 /etc/postfix/sasl/、/var/lib/sasl2/ 等中查找 Cyrus SASL 配置文件。请参阅发行版特定的文档以确定预期位置。

注意 Cyrus SASL 首先搜索 /usr/lib/sasl2/。如果它在那里找到指定的配置文件,它就不会检查其他位置。

然后,你可以检查 Postfix 首先在哪里查找 sasl 配置文件,该文件可以在以下位置找到(对于基于 Debian 的发行版)/usr/share/doc/postfix/README.Debian

这里提到:

  1. 由于政策原因:
    a. SASL 配置进入 /etc/postfix/sasl

所以...把所有这些放在一起,将其定义为(或保留为默认值),它将在目录中smtpd查找。smtpd.conf/etc/poostfix/sasl

如果不存在,它会/usr/lib/sasl2//etc/sasl2/

我很喜欢古代文献 :D

相关内容