QA@IT

dovecotでユーザ認証できない。

32149 PV

現在、AWSのEC2上のUbuntu12.04で、Pop3,Smtpサーバを立ち上げるために、dovecotをインストールしています。
しかしながら、Thunderbirdでユーザ名とドメイン名、パスワードを指定して認証しようとすると、
アカウント設定(ポート番号とか認証方式等)はサーバから取って来れるようですが、「ユーザ名orパスワードが違います」となって認証されません。

もう少し細かな環境等を書かせていただきます。

  • ログインを試みたアカウント名とパスワード
    User:ubuntu(EC2のインスタンス作成時にデフォルトで作られるユーザ名です)
    Password:sudoコマンドの時にうつパスワードと一緒
    Passwordの送信方法:暗号化無し
    SSL:無し
    ポート番号:143
    プロトコル:IMAP

  • ログインを試みた際のDovecotのログ

    Jan 23 02:35:11 master: Info: Dovecot v2.0.19 starting up (core dumps disabled)
    Jan 23 02:35:17 imap-login: Info: Aborted login (no auth attempts): rip=111.111.11.111, lip=22.222.222.22
    Jan 23 02:35:32 imap-login: Info: Disconnected (auth failed, 2 attempts): user=<ubuntu>, method=PLAIN, rip=111.111.11.111, lip=22.222.222.22
    Jan 23 02:35:53 imap-login: Info: Disconnected (auth failed, 2 attempts): user=<ubuntu@domain.name>, method=PLAIN, rip=111.111.11.111, lip=22.222.222.22
    
  • EC2側のセキリティーグループ
    0-65535 tcp 0.0.0.0/0と設定してTCPのポートは全ユーザに対して解放しているつもりです。

  • /etc/dovecot/conf.d/10-auth.conf

    上段は略
    !include auth-system.conf.ext
    #!include auth-sql.conf.ext
    #!include auth-ldap.conf.ext
    #!include auth-passwdfile.conf.ext
    #!include auth-checkpassword.conf.ext
    #!include auth-vpopmail.conf.ext
    #!include auth-static.conf.ext
    
  • /etc/dovecot/dovecot.conf の自分で追加した部分

    protocols = imap
    ssl = no
    mail_location = maildir:~/Maildir
    disable_plaintext_auth = no
    log_path = /var/mail/dovecat.log
    

なぜログインできないのでしょうか?
何かお気づきの点があれば、ご指摘いただけると幸いです。

--追記
みなさん、お返事ありがとうございます。
auth_verbose = yesauth_debug = yesを追加して見たところ、パスが違っているという様なログが出たので、ubuntuというユーザとは別のユーザを作って、localhostのtelnetで接続したらimapでログインできました。
Thunderbirdの方はngyukiさんに書いていただいた方法で、詳細から受信専用で作りました。

しかしながら、メールはまだThunderbirdの方では見れません(エラーはでないのですが)。

原因を探るために、クライアントからサーバ(EC2)に対してTenletを接続しました。
その際のコマンドとログは後述します。
おそらくこれは私がIMAPプロトコルをちゃんと理解していないためにでた、エラーだとは思っています。
もう少しちゃんと勉強をしようとは考えていますが、取り急ぎ説明させていただきます。

< telnet domain.name 143
Trying 111.11.11.111...
Connected to domain.name.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready
< 1 login user password
1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS] Logged in
< 2 list "" "%"          
* LIST (\HasNoChildren) "." "Trash"
* LIST (\HasNoChildren) "." "INBOX"
2 OK List completed.
< 3 select inbox
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.
* 0 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1358920284] UIDs valid
* OK [UIDNEXT 1] Predicted next UID
* OK [HIGHESTMODSEQ 1] Highest
3 OK [READ-WRITE] Select completed.
< 4 FETCH 1:100 ALL      
4 BAD Error in IMAP command FETCH: Invalid messageset

--追記
解決できました。上記のやり方がうまくいかない理由はmaillocationの指定場所がメールを受信するフォルダとは別の構成だったからでした。
そこでdovecat.confに以下の行を追加しました。
mail_location = mbox:~/mail:INBOX=/var/mail/%u

ご回答ありがとうございました。

回答

Dovecot の認証時の詳細ログを確認すべきです。dovecot.conf などで auth_verbose = yes、さらに詳細にログを見たいなら auth_debug = yes も設定し、ログを確認してみてください。

MUA の問題かどうかを切り分けたいなら、telnet などで IMAP の会話をしてみましょう。以下はその例です。telnet コマンドで IMAP ポートに接続し、0 login ユーザー名 パスワード でログイン、1 logout でログアウト(切断) しています。これで成功するようであれば、MUA (Thunderbird) の問題である可能性が高くなります。

$ telnet localhost imap
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN] Dovecot ready.
0 login ユーザー名 パスワード
0 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH] Logged in
1 logout
* BYE Logging out
1 OK Logout completed.
Connection closed by foreign host.

とりあえずはここまで。追加の情報をコメントあるいは質問内に追記していただければ、それを受けてこの回答を編集(追加)します。

編集 履歴 (0)

多分 Thunderbird 側の問題です、アカウント追加の画面で受信サーバにしか繋がらないとそうなるようです。

SNMPサーバの方の設定を見なおして、Thunderbird から接続出来るようにすれば解決します。

もしくは、Thunderbird のアカウント追加の画面で受信サーバ・送信サーバを手動で入力し、「詳細設定」をクリックすればとりあえずアカウント登録はできるので、受信にしか使わないアカウントとかであれば、そのような方法で使うことも出来ると思います(未検証)。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。