Postfix + SASL SQLite 在 CentOS 7 上出现 auxprop 错误

Postfix + SASL SQLite 在 CentOS 7 上出现 auxprop 错误

当我尝试在 CentOS 7 上的 Postfix 中使用 SQLite 进行 SASL 身份验证时收到unknown password verifier(s) auxprop错误。似乎找不到 SQLite SQL 引擎。

内容/etc/sasl2/smtp.conf

log_level: 127
pwcheck_method: auxprop
auxprop_plugin: sql
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM
sql_engine: sqlite
sql_database: /etc/postfix/sasl_db
sql_select: SELECT password FROM users WHERE user = '%u'

连接记录于/var/log/maillog

Jul 25 08:55:43 smtp2 postfix/smtpd[5049]: connect a.b.c.d.myisp.net[a.b.c.d]
Jul 25 08:55:45 smtp2 postfix/smtpd[5049]: warning: SASL authentication problem: unknown password verifier(s) auxprop
Jul 25 08:55:45 smtp2 postfix/smtpd[5049]: warning: SASL authentication failure: Password verification failed
Jul 25 08:55:45 smtp2 postfix/smtpd[5049]: warning: a.b.c.d.myisp.net[a.b.c.d]: SASL PLAIN authentication failed: no mechanism available
Jul 25 08:55:46 smtp2 postfix/smtpd[5049]: warning: SASL authentication problem: unknown password verifier(s) auxprop
Jul 25 08:55:46 smtp2 postfix/smtpd[5049]: warning: a.b.c.d.myisp.net[a.b.c.d]: SASL LOGIN authentication failed: no mechanism available
Jul 25 08:55:51 smtp2 postfix/smtpd[5049]: disconnect from a.b.c.d.myisp.net[a.b.c.d]

有一个提示/var/log/messages

Jul 25 08:55:38 smtp2 systemd: Starting Postfix Mail Transport Agent...
Jul 25 08:55:38 smtp2 systemd: Started Postfix Mail Transport Agent.
Jul 25 08:55:43 smtp2 postfix/smtpd[5049]: SQL engine 'sqlite' not supported
Jul 25 08:55:43 smtp2 postfix/smtpd[5049]: auxpropfunc error no mechanism available

我尝试替换sqlitesqlite3并重新启动 Postfix),结果相同。

到目前为止,我最好的猜测是我缺少一个 rpm,但无法确定它可能是什么。

smtp2:/# rpm --query -a | grep -ie sqlite -ie sasl -ie postfix
cyrus-sasl-sql-2.1.26-23.el7.x86_64
cyrus-sasl-md5-2.1.26-23.el7.x86_64
sqlite-3.7.17-8.el7_7.1.x86_64
cyrus-sasl-lib-2.1.26-23.el7.x86_64
postfix-2.10.1-9.el7.x86_64
cyrus-sasl-2.1.26-23.el7.x86_64
libsqlite3x-20071018-20.el7.x86_64
cyrus-sasl-plain-2.1.26-23.el7.x86_64
smtp2:/# cat /etc/centos-release
CentOS Linux release 7.8.2003 (Core)

我是否缺少所需的 rpm,或者更一般地说,我该如何修复此错误?

答案1

经过一番挖掘,似乎 CentOS 版本的 SASL 中未启用 SQLite 支持,并且无法通过模块/插件添加。

我认为直接支持 SQLite 需要重建 SASL。更好的解决方案可能是saslauthd通过 PAM 使用和访问 SQLite,例如/etc/pam.d/smtp

#%PAM-1.0
auth        required    pam_sqlite3.so 
account     required    pam_sqlite3.so

希望这也能帮助其他人。

相关内容