久しぶりの、サーバーでログメッセージがたくさん出すぎて、うざったいシリーズ、第4弾。
前回はこちら:
今回のエラーメッセージも、数ヶ月間、見なかったことにしていた・・・というか、これ以外にも、あまりにもたくさんのエラーメッセージが出てて、見逃していたものです。
なんかログにたくさん出てるけど、動いているからいいや!
管理者として失格ですね。
☆ ☆ ☆ ☆ ☆ ☆
cyrus-imapdを使って、IMAP/POP3なメールサーバを運用していましたが、ある一人のユーザーでのみ、以下のようなエラーメッセージが記録されていました。
Nov 2 14:29:42 HOST saslauthd[9274]: pam_ldap: error trying to bind as user "uid=USER,ou=People,dc=SOME,dc=DOMAIN" (Invalid credentials)
このエラーの意味は、おそらくは、パスワードが間違っていて認証に失敗した、という意味なのですが、このユーザー「USERさん」(仮称)は、実際には、メールは読めています。
このユーザーが使っているメールソフトは、Mozilla Thunderbirdだったのですが、「あ~、Thunderbirdね、フフン」と思って(深い意味はありません)、Thunderbirdの設定をいろいろ変えてみたり、最新バージョンにアップデートしてもらったり、さらには、通信ログを取得してもらったりしたのですが、どこをどうみても、メールソフト側では何のエラーも出ていなくて、原因は、まったくわからず。
新着メールのチェックを1回すると、それに応じて、必ず、上記のエラーがメールサーバ側で1回記録される、という具合でした。
終いには、トロイの木馬つきのThunderbirdじゃないの?とか、スパイウェアが仕掛けられていて、メールを盗み読みされてんじゃないの?とか、言い出す始末。
さてさて、調査を開始して、2日目、原因が、やっと判明しました!
サーバ側で、pamの設定が悪い
それが、原因でした。
メールの認証は、LDAPを用いて行うようにしていました。ただし、cyrus-imapdの認証は、実はめぐりめぐって、saslauthdから、pamを経由して、pam_ldapで認証されるような設定になっていました。そのため、/etc/pam.d/pop3 とかが参照されていたのですが、そこにはこう書かれていました。
auth sufficient pam_ldap.so no_warn try_first_pass
auth required pam_unix.so no_warn try_first_pass
そう、実は、LDAPで登録されているパスワードが、このユーザーUSER(仮称)がThunderbirdで入力したものとは一致していなくて、pam_ldapでは認証が失敗していたのです。
しかし、/etc/nsswitch.conf で、なぜか
passwd: files nis ldap
となっていたので、pam_ldapでエラーが出たあと、そのあと、pam_unixでは、NISのpasswdが参照され、passwdマップに設定されたパスワードでは認証が成功していた・・・というわけでした。
原因が判明したので、/etc/pam.d/pop3や、/etc/pam.d/imapで、pam_unix.soは外して、以下のように、pam_ldap.soだけで認証するように変更しました。
auth required pam_ldap.so no_warn try_first_pass
本業の合間にやっている素人管理者なんで、こういうみっともないミスもあるんですよ・・・
すみませんねぇ。
0 件のコメント:
コメントを投稿