CentOS 6.2 で dovecot 2.0 の設定

2012-5-5 19:04
このエントリーをはてなブックマークに追加

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

とします。

コメントはまだありません

コメントはまだありません。

現在、コメントフォームは閉鎖中です。

69 queries. HTML convert time: 1.097 sec. Powered by WordPress. Valid XHTML
Copyright © 2003-2017 @ futuremix.org ログイン