SASL 认证失败:密码验证失败(postfix + cyrus + saslauthd)

SASL 认证失败:密码验证失败(postfix + cyrus + saslauthd)

我们在 centos 7 上运行 postfix + cyrus 时遇到 smtp 身份验证困难。

当我尝试在本地通过 telnet 连接到端口 25(或 587)并进行普通身份验证时,我在邮件日志中收到以下错误:

9 月 25 日 10:25:00 blabla postfix/smtpd[3858]: 警告:SASL 身份验证问题:无法打开 Berkeley db /etc/sasldb2:权限被拒绝

9 月 25 日 10:25:00 blabla postfix/smtpd[31106]: 警告:SASL 身份验证失败:密码验证失败

9 月 25 日 10:25:00 blabla postfix/smtpd[31106]: 警告:未知[::1]:SASL 普通身份验证失败:身份验证失败

不确定 sasldb2 与任何事情有什么关系,以及该警告是否与问题有任何实际关系。 testsaslauthd使用相同的凭据返回 OK。

后缀是不是运行chroot模式:

smtp       inet  n       -       n       -       -       smtpd
smtps      inet  n       -       n       -       -       smtpd
submission inet  n       -       n       -       -       smtpd
                   -o smtpd_sasl_auth_enable=yes

我使用它/etc/shadow进行身份验证,所以ps aux | grep sasl说:

/usr/sbin/saslauthd -m /var/run/saslauthd -a shadow

套接字目录/var/run/saslauthd如下main.cf,我有:

smtpd_sasl_path = /var/run/saslauthd/
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
tls_random_source               = dev:/dev/urandom
smtpd_sasl_local_domain =
broken_sasl_auth_clients = yes
smtpd_sasl_exceptions_networks = <someip>
smtpd_recipient_restrictions =
    permit_sasl_authenticated,
    permit_mynetworks,
    reject_unauth_destination,
    check_policy_service unix:/var/spool/postfix/postgrey/socket

最后,/etc/sasl2/smtpd.conf有:

pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
saslauthd_path: /var/run/saslauthd/
allow_plaintext: true

有什么指点吗?我被难住了……

我在网上找到的大多数文档似乎都指向 chrooted postfix 配置或更复杂的身份验证方法。

答案1

错误消息

无法打开 Berkeley db /etc/sasldb2:权限被拒绝

通用消息是,由于权限问题,postfix 无法打开该目录。使用 chmod 和/或 chown 授予/etc/sasldb2postfix访问权限

chown postfix:postfix /etc/sasldb2
chmod 660 /etc/sasldb2

或者

chmod 644 /etc/sasldb2

出于安全原因,我建议选择第一个选项。

参考:博客网|www.murat.ws|此主题

相关内容