web-dev-qa-db-ja.com

PostfixはSASLに対して認証できません

私のシステムはDebian7、別名Wheezyで、接尾辞、宅配便、mysqlがインストールされています。宅配便はうまく機能し、私が発行した場合

testsaslauthd -u user@domain -p password -f /var/spool/postfix/var/run/saslauthd/mux -s smtp

私は

0: OK "Success."

ただし、base64でエンコードされたユーザー名/パスワードを取得した場合

echo -ne '\000user@domain\000password' | openssl base64

を使用してSMTPセッションでそれを使用してみてください

helo localhost
auth plain (output from above)

私はいつも

535 5.7.8 Error: authentication failed: authentication failure

/ var/log/syslogで私はそれを見つけます

Sep 29 21:49:34 (hostname obfuscated) postfix/smtpd[15814]: warning: SASL authentication failure: Password verification failed
Sep 29 21:49:34 (hostname obfuscated) postfix/smtpd[15814]: warning: localhost[::1]: SASL plain authentication failed: authentication failure

および/var/log/auth.log

Sep 29 21:49:34 (hostname obfuscated) postfix/smtpd[15814]: sql plugin Parse the username username@domain
Sep 29 21:49:34 (hostname obfuscated) postfix/smtpd[15814]: sql plugin try and connect to a Host
Sep 29 21:49:34 (hostname obfuscated) postfix/smtpd[15814]: sql plugin trying to open db 'postfixadmin' on Host '127.0.0.1'
Sep 29 21:49:34 (hostname obfuscated) postfix/smtpd[15814]: begin transaction
Sep 29 21:49:34 (hostname obfuscated) postfix/smtpd[15814]: sql plugin create statement from userPassword username domain
Sep 29 21:49:34 (hostname obfuscated) postfix/smtpd[15814]: sql plugin doing query SELECT password FROM mailbox WHERE username="username@domain";
Sep 29 21:49:34 (hostname obfuscated) postfix/smtpd[15814]: commit transaction
Sep 29 21:49:34 (hostname obfuscated) postfix/smtpd[15814]: sql plugin Parse the username username@domain
Sep 29 21:49:34 (hostname obfuscated) postfix/smtpd[15814]: sql plugin try and connect to a Host
Sep 29 21:49:34 (hostname obfuscated) postfix/smtpd[15814]: sql plugin trying to open db 'postfixadmin' on Host '127.0.0.1'
Sep 29 21:49:34 (hostname obfuscated) postfix/smtpd[15814]: sql plugin Parse the username username@domain
Sep 29 21:49:34 (hostname obfuscated) postfix/smtpd[15814]: sql plugin try and connect to a Host
Sep 29 21:49:34 (hostname obfuscated) postfix/smtpd[15814]: sql plugin trying to open db 'postfixadmin' on Host '127.0.0.1'
Sep 29 21:49:34 (hostname obfuscated) postfix/smtpd[15814]: begin transaction
Sep 29 21:49:34 (hostname obfuscated) postfix/smtpd[15814]: sql plugin create statement from userPassword username domain
Sep 29 21:49:34 (hostname obfuscated) postfix/smtpd[15814]: sql plugin doing query SELECT password FROM mailbox WHERE username="username@domain";
Sep 29 21:49:34 (hostname obfuscated) postfix/smtpd[15814]: sql plugin create statement from cmusaslsecretPLAIN username domain
Sep 29 21:49:34 (hostname obfuscated) postfix/smtpd[15814]: sql plugin doing query SELECT password FROM mailbox WHERE username="username@domain";
Sep 29 21:49:34 (hostname obfuscated) postfix/smtpd[15814]: commit transaction
Sep 29 21:49:34 (hostname obfuscated) postfix/smtpd[15814]: sql plugin Parse the username username@domain
Sep 29 21:49:34 (hostname obfuscated) postfix/smtpd[15814]: sql plugin try and connect to a Host
Sep 29 21:49:34 (hostname obfuscated) postfix/smtpd[15814]: sql plugin trying to open db 'postfixadmin' on Host '127.0.0.1'

ポストフィックス構成の関連するSASLエントリ:

# postconf | grep -e cyrus_sasl -e smtpd_sasl
cyrus_sasl_config_path =
send_cyrus_sasl_authzid = no
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_exceptions_networks =
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_path = smtpd
smtpd_sasl_security_options = noanonymous
smtpd_sasl_tls_security_options = $smtpd_sasl_security_options
smtpd_sasl_type = cyrus

誰かがこれを分析またはデバッグする方法のヒントを教えてもらえますか?

更新2014/10/01:何度も試してみたところ、mysqlデータベースからパスワードを読み取る際に間違いなく問題があることがわかりました。 /etc/postfix/sasl/smtpd.confを編集し、最後の行に書き込みました

sql_select: SELECT 'some hardcoded password' password FROM mailbox WHERE username="%u@%r"

そして今それは動作します。しかし、これは明らかに私が意図したことではありません

Second Update 2014/10/01:興味深い... smtpd.confに含まれているだけの場合

pwcheck_method: saslauthd
mech_list: plain login

すべてが正常に機能します!私のために解決しました。

1
Michael Kremser

解決策:/etc/postfix/sasl/smtpd.confに含める必要があるのは

pwcheck_method: saslauthd
mech_list: plain login
3
Michael Kremser

私のために働いた解決策は変更することでした

smtpd_sasl_type = cyrus

smtpd_sasl_type = dovecot

そして、dovecot-imapdがインストールされていることを確認してください。

0
Thorsten Staerk