以下教程用于设置虚拟邮件服务器:
一切正常,但每次发送消息时都会出现以下错误:
mail postfix/smtpd[10569]: warning: SASL authentication failure: client response doesn't match what we generated (tried bogus)
mail postfix/smtpd[10569]: warning: unknown[so.me.ext.ip]: SASL DIGEST-MD5 authentication failed: authentication failure
mail postfix/smtpd[10569]: 1298562035: client=unknown[so.me.ext.ip], sasl_method=LOGIN, [email protected]
然后它继续并发送消息。
据此,etc/postfix/sasl/smtpd.conf
pwcheck_method: saslauthd
mech_list: plain login cram-md5 digest-md5
log_level: 7
allow_plaintext: true
auxprop_plugin: sql
sql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: mailuser
sql_passwd: mailpassword
sql_database: maildb
sql_select: select crypt from users where id='%u@%r' and enabled = 1
除了digest-md5部分之外工作正常,该部分然后直接移动到登录(并成功发送消息)。
此外,/etc/default/saslauthd(省略 # 文本)
START=yes
DESC="SASL Authentication Daemon"
NAME="saslauthd"
MECHANISMS="pam"
MECH_OPTIONS=""
THREADS=5
#OPTIONS="-r -c -m /var/spool/postfix/var/run/saslauthd"
OPTIONS="-r -c -m /var/run/saslauthd"
在postfix的chroot环境下工作没有问题,否则会报错
warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory
这是一个旧的设置,已经像魅力一样工作了大约四年,但我仍然想确保这些消息并不意味着中间有什么问题。
答案1
你的问题帮助我挖掘...我最近将我的邮件服务器从 Ubuntu 14.04 LTS 升级到 18.04 LTS,这真是一场噩梦。但最终一切正常:)
你的错误:
SASL authentication failure: client response doesn't match what we generated (tried bogus)
是由我的配置包含以下内容引起的/etc/postfix/sasl/smtpd.conf
:
mech_list: plain login cram-md5 digest-md5
这Postfix SASL 指南声明仅支持普通登录,并且“如果允许客户端选择其他机制,则身份验证将失败”,因此该行应为:
mech_list: plain login
最后一行:
warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory
是由现在在 chroot 中运行的 postfix 引起的,并且/var/run/saslauthd/
已移至/var/spool/postfix/var/run/saslauthd/
.
这是在末尾设置的/etc/default/saslauthd
:
OPTIONS="-c -r -m /var/spool/postfix/var/run/saslauthd"
请注意,我添加了 -r 标志以在身份验证时包含领域(例如:它将使用[email protected]
而不是进行身份验证aaron
)。
最后我还必须/etc/pam.d/smtp
使用以下内容进行创建:
auth required pam_mysql.so user=mail passwd=******** host=******** db=maildb table=users usercolumn=id passwdcolumn=crypt crypt=1
account sufficient pam_mysql.so user=mail passwd=******** host=******** db=maildb table=users usercolumn=id passwdcolumn=crypt crypt=1
我相信你现在已经明白了这一点,但无论如何我还是要分享,以拯救其他可怜的灵魂免于白发。后灰...:/