我们在 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/sasldb2
postfix访问权限
chown postfix:postfix /etc/sasldb2
chmod 660 /etc/sasldb2
或者
chmod 644 /etc/sasldb2
出于安全原因,我建议选择第一个选项。
参考:博客网|www.murat.ws|此主题