CentOS 6.2 で dovecot 2.0 の設定
CentOS 6.x では、dovecot 2.0.x 系のパッケージが含まれます。CentOS 5.x では dovecot 1.0.x 系です。
これが曲者で、設定ファイルの場所や、記述方式がまったく違います。
CentOS5.x の dovecot 1.0 では、/etc/dovecot.conf に設定を記述していましたが、CentOS 6.2 の dovecot 2.0 系では、設定ファイルの場所が以下の場所になりました。
/etc/dovecot/dovecot.conf ならびに /etc/dovecot/conf.d/*.conf
Red Hat でおなじみの conf.d の下に設定を置く方法になったのはプラグインなどに細かく対応するためでしょう。
MySQL や PostgreSQL と連携させるためには、dovecot-mysql や dovecot-pgsql パッケージを別に入れるようになり、dovecot パッケージ本体は mysql に依存しないでインストール出来るようになっています。
また、seive を使ってメールの振り分けを記述するためのアドオンパッケージ dovecot-pigeonhole も用意されています。
さて、具体的な設定の違いを見ていきましょう。
以前のバージョンの dovecot.conf では IMAP, POP3 サーバとして動作させる場合、
# /etc/dovecot.conf (1.0.x) protocols = imap imaps pop3 pop3s protocol pop3 { listen = *:110 ssl_listen = *:995 }
のように記述していましたが、2.0 では、この記述は古いようで同じように書くと起動時に警告が出ます。
doveconf: Warning: Obsolete setting in /etc/dovecot/dovecot.conf:21: protocols=imaps is no longer necessary, remove it doveconf: Warning: Obsolete setting in /etc/dovecot/dovecot.conf:21: protocols=pop3s is no longer necessary, remove it
Dovecot 2 では、protocols に pop3s や imaps は記述する必要はなく、pop3, imap だけを書けばよいようです。
# /etc/dovecot/dovecot.conf (2.x)
protocols = imap pop3
また、Listen するポートについても 1.0.x と同じ記述をすると、以下のような警告が出ます。
doveconf: Warning: Obsolete setting in /etc/dovecot/dovecot.conf:29: listen=..:port has been replaced by service { inet_listener { port } } doveconf: Warning: Obsolete setting in /etc/dovecot/dovecot.conf:29: protocol { listen } has been replaced by service { inet_listener { address } } doveconf: Warning: Obsolete setting in /etc/dovecot/dovecot.conf:30: ssl_listen=..:port has been replaced by service { inet_listener { port } } doveconf: Warning: Obsolete setting in /etc/dovecot/dovecot.conf:30: protocol { ssl_listen } has been replaced by service { inet_listener { address } }
使用するポートの記述方法も変わっています。また記述するファイルも /etc/dovecot/conf.d/10-master.conf に分割されていますので、dovecot.conf でなくそちらに記述します。
# /etc/dovecot/conf.d/10-master.conf (dovecot 2.x) service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes } } service pop3-login { inet_listener pop3 { port = 110 } inet_listener pop3s { port = 995 ssl = yes } }
また、IPv6 を無効にしている環境で、dovecot.conf の listen を設定していない場合は以下のエラーが出て起動できません。
Error: socket() failed: Address family not supported by protocol Error: service(pop3-login): listen(::, 110) failed: Address family not supported by protocol Error: socket() failed: Address family not supported by protocol Error: service(pop3-login): listen(::, 995) failed: Address family not supported by protocol Fatal: Failed to start listeners
この場合は、dovecot.conf で IPv4 だけをリッスンするようにします。
# /etc/dovecot/dovecot.conf (2.x) #listen = *, :: listen = *
デフォルトでは IPv6 の :: という設定があり、これが残っているとエラーとなります。
追記
認証エラーの詳細を知りたいときは、dovecot.conf に以下の記述をすると、/var/log/maillog に詳細が出力されます。
auth_verbose = yes
さらに詳しく見たい場合は
auth_debug = yes
とします。
コメントはまだありません
No comments yet.
Sorry, the comment form is closed at this time.