SMTP-AUTHに失敗する原因が分からず調べていると、SASL認証のテストを行うコマンド(testsaslauthd)が失敗する事に気づいたので、ちょっと色々とデバッグしてみました。
※ 原因は以下の内容とは無関係でした(一応、最後にちょこっと原因を書いてます)
※ 公開できない情報は以下の伏字にしております
+++ |
ユーザ名 |
*** |
パスワード |
… |
ドメイン |
失敗時
# testsaslauthd -u +++ -p ***
# tail -f /var/log/audit/audit.log
type=USER_AUTH msg=audit(1469416320.791:907): pid=3559 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:authentication grantors=? acct="+++" exe="/usr/sbin/saslauthd" hostname=? addr=? terminal=? res=failed'
成功時
# testsaslauthd -u +++ -p *** -s smtp
# tail -f /var/log/audit/audit.log
type=USER_AUTH msg=audit(1469416322.210:908): pid=3563 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:authentication grantors=pam_unix acct="+++" exe="/usr/sbin/saslauthd" hostname=? addr=? terminal=? res=success'
type=USER_ACCT msg=audit(1469416322.210:909): pid=3563 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:accounting grantors=pam_unix,pam_localuser acct="+++" exe="/usr/sbin/saslauthd" hostname=? addr=? terminal=? res=success'
saslauthdをデバッグモードで起動してtestsaslauthdで失敗したコマンド、成功したコマンドをそれぞれ実行します
# saslauthd -d -a pam
saslauthd[3827] :do_auth : auth failure: [user=+++] [service=imap] [realm=] [mech=pam] [reason=PAM auth error]
なぜか”/etc/pam.d/imap”を見ているらしいが、そんなものは無い・・・
とりあえず、smtpをimapにコピーします
# cp vi /etc/pam.d/smtp /etc/pam.d/imap
# saslauthd -d -a pam
saslauthd[3883] :do_auth : auth success: [user=+++] [service=imap] [realm=] [mech=pam]
すると認証に通るようになりました
でも自分の環境ではtelnetして直接認証するとError: authentication failed: authentication failureが返ります
・・・以下、後日談・・・
SMTP-AUTHの認証をデバッグ
saslauthd[3611] :do_auth : auth success: [user=+++] [service=smtp] [realm=...........] [mech=pam]
結論としてはSASL認証自体はしっかりimapではなくsmtpを使用しているので問題ではありませんでした
原因はテストに使用していたクライアントのhostsファイルに全然別のサーバのIPが定義されており
無関係なサーバにつないでいることが原因でした。。。
参考サイト
繰り返し的な処理を自動化する – いますぐ実践! Linuxシステム管理 / Vol.212
最近のコメント