Postfix
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
我嘗試替換
sqlite
為sqlite3
(並重新啟動 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,或者更一般地說,我該如何解決此錯誤?
經過一番探勘,似乎在 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
希望這也對其他人有所幫助。