BLOGTIMES
2006/11/23

qmail+ vpopmail + dovecot

  qmail  dovecot  vpopmail 
このエントリーをはてなブックマークに追加

Dovecot - qmail+ vpopmail + dovecot

これまではCourier-IMAPを使っていたんですが、Dovecot乗り換えてみました。ちょっと調べただけでvpopmailに対応していることはすぐにわかったのですが、使っている人が少ないのかウェブサイト上にはほとんど情報がなかったのでちょっと苦戦してしまいました。

コンパイル済みのバイナリ*1はあるのでこれは楽チンとインストールしてみたんですが、僕の環境では要求されているlibmysqlclient.soのバージョンが違っていてdovecot-authが起動できなかったので、srpmを自前でrebuildしてインストールすることにしました。

rpmの作成

rpmbuild --rebuildで一発かと思いきや、.specに使われているマクロが新しすぎてそのままでは動きませんでした。

# rpmbuild --rebuild dovecot-1.0-0_33.rc15.at.src.rpm dovecot-1.0-0_33.rc15.at.src.rpm をインストール中 エラー: line 1: Unknown tag: %bcond_without inotify

仕方がないので%bcond_withoutに関連する部分をすべて自分で置き換えてリコンパイルしました。変更後のspecファイルについてはdiffをとっておきましたので、同じことをしたい場合には参考にしてみてください。
[dovecot.spec.diff][306clicks]

/etc/dovecot.confの変更

出来上がったrpmをインストールしたら設定を行います。
ほとんどはデフォルトで大丈夫ですが、必ず変更が必要なのは下記の3箇所になります。

まず、以下の2箇所を変更し、vpopmailによる認証を有効にします。

# vpopmail authentication # http://wiki.dovecot.org/AuthDatabase/VPopMail passdb vpopmail { # [cache_key=<key>] - See cache_key in PAM for explanation. #args = }
# vpopmail # http://wiki.dovecot.org/AuthDatabase/VPopMail userdb vpopmail { }

さらに認証するUIDの最小値の設定のデフォルトが500になっているので、これを89*2に変更しておきます。

# Valid UID range for users, defaults to 500 and above. This is mostly # to make sure that users can't log in as daemons or other system users. # Note that denying root logins is hardcoded to dovecot binary and can't # be done even if first_valid_uid is set to 0. first_valid_uid = 89

これを忘れるとログに「Logins with UID 89 (hoge@hoge.com) not permitted (see first_valid_uid in config file)」と吐いて認証してくれません。

最後にこれは必須ではないのですが、設定しておくと便利な部分が一箇所あります。

# Username character translations before it's looked up from databases. The # value contains series of from -> to characters. For example "#@/@" means # that '#' and '/' characters are translated to '@'. auth_username_translation = %@

vpopmailを使っている場合にはバーチャルユーザーの認証に使うユーザー名が"user@example.com""user%example.com"のいずれかの形式になっているはずです。ところがDovecotはデフォルトでユーザー名に使える文字を"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@"のみに制限しているので、後者の形式のユーザー名を使っているとパスワードがあっていても必ず認証エラーになってしまいます。

ところが、上記の設定を行っておくと、%という文字を強制的に@に変換して認証させることができるようになるため、どちらの形式のユーザー名を使っていても認証ができるようになります。

これで快適なDovecotライフが送れそうです。


トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/1726
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
kimitake (2006/11/24 03:33) <%HatenaAuth()%>

お、これって速いんですか?

自分は IMAP サーバーの入れ替えより webmail (現在は squirrel)の入れ替えしたいです。遅くってかなわん...なんかお勧めのあります?

hsur (2006/11/24 20:52) <%HatenaAuth()%>

Courierと比べて速いかどうかといわれるとちょっと「?」ですね。

ベンチを取ったわけじゃないんですが、とりあえず互角くらいの性能は出てるんじゃないかなと思います。感覚的には、ヘッダの読み出しとかはCourierの方が速い感じがしますが、検索はDovecotの方が速いようです。

# 設定の簡便さから言えば断然Dovecotなので、僕はもう戻らないかなと思います。

hsur (2006/11/24 21:00) <%HatenaAuth()%>

僕もwebmailはsquirrel使ってるんですけど、さすがに遅いですよね。

今、ちょうど乗換候補を探してます。
いろいろ試してみる予定なんで、よさそうなのが見つかったら報告しますね。

Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン