Dovecotに接続できない時の対処。
ちょっとはまったのでメモ。
サーバーに接続して応答がない
メーラー(Thunderbird)から接続を行うと接続はできているようだが応答がなくメールの受信ができていない状態で、サーバーのログ「/var/log/maillog」を確認すると以下のようなエラーログが出ているケース
dovecot: auth: Fatal: CRAM-MD5 mechanism can't be supported with given passdbs dovecot: master: Error: service(auth): command startup failed, throttling
意味としては「与えられたパスワードデータベースの形式ではCRAM-MD5をサポートする事ができません。認証のサービスを起動できませんでした。」と言う意味です。
当サイトに記載している内容のみで実施している場合は特にハマることもないと思いますが、この問題の原因として私がハマった個所は「10-auth.conf」でPassword Databaseのデフォルトインクルードファイルが「auth-system.conf.ext」になっていた点です。
当サイトのように「auth-passwdfile.conf.ext」で設定を行った場合はインクルードするファイルを変更する必要があります。(私はこの設定変更を見落としていました)
!include auth-system.conf.ext ・・・(略)・・・ #!include auth-passwdfile.conf.ext ↓ 変更 #!include auth-system.conf.ext ・・・(略)・・・ !include auth-passwdfile.conf.ext
サーバーに接続できたが認証がうまくいかない
パスワードも正しく入力したはずなのに何故か認証に失敗する。サーバーのログ「/var/log/maillog」を確認すると以下のようなエラーログが出ているケース
dovecot: auth: Error: passwd-file /etc/dovecot/dovecot-passwd: open(/etc/dovecot/dovecot-passwd) failed: Permission denied (euid=97(dovecot) missing +r perm: /etc/dovecot/dovecot-passwd, euid is not dir owner)
※上記のエラーは長いので改行しています。実際には1行です。
内容はアクセス権限によるアクセス失敗です。このログはSELinuxが有効だった場合にPermissionの設定も問題なく行っていても出てきます。
一時的にSELinuxを無効化して、動作するか確認してみてください。
# setenforce 0
これでメールの取得ができるようになれば原因はSELinuxです。
以下のコマンドを実行してファイルのコンテキストを変更してください。
# chcon -R system_u:object_r:dovecot_etc_t:s0 /etc/dovecot/dovecot-passwd # chcon -R system_u:object_r:user_home_t:s0 /home/user_name/mailbox/
これでSELinuxからもアクセスできるようになりますので、以下のコマンドでSELinuxの状態を元に戻してください。
# setenforce 1
これでメールの取得ができるようになると思います。
トラックバック & ピンバック