10.dovecotの設定
BlueOnyxでメールサービスを不使用にするとSMTP ポート(TCP25番)が使えなくなることを前回書きましたが、ここで悩んだ原因のもう一つが pop3 ポートは使えるということでした。実際のセットアップでは postfix と dovecot の設定ファイルを一気に作ってSMTP AUTH の実装までを行ったあと同時にテストしていたため、受信は問題なくできることからハマってしまいました。
メール送信をしてもメールを含む複数のログ(auth や ldap などを採取するようにしてみた)に何の痕跡も残らないことから、iptablesなどセキュリティー関係の設定も見直してみたのですが、どこにも25番ポートを閉じている様子はありませんでした。
(ちなみに、CentOS ではデフォルトで selinux がオンの状態になっていますが、セットアップの段階では余計な作業の発生を避けるためサービスを停止しています)
このことから、25番ポートが閉じている原因は BlueOnyx だろうと推測したわけです。というか、BlueOnyx の入っていないまっさらの状態でのセットアップはすでに何回も経験していますので、これ以外にはちょっと考えにくいということなのですが、目的がサイト構築であり BlueOnyx の仕組みを知ることではないので敢えてその原因を深く追求することはやめておきます。
本題の dovecot の設定です。
まずは設定ファイルの変更、加筆をします。
/etc/dovecot.donf ファイル
# Protocols we want to be serving:
protocols = imap pop3 ← pop3 と imap の両方を記述
disable_plaintext_auth = no ←コメントアウトをはずす
##
## Mail processes
##
first_valid_uid = 89 ←コメントアウトをはずして postfix の uid,gid に変更する
first_valid_gid = 89
mail_location = maildir:~/Maildir ※※
##
## POP3 specific settings
##
pop3_uidl_format = %08Xu%08Xv ←フォーマット形式だけ OutlookExpress 互換の形式にする
##
## Authentication processes
##
↓ここからLDAPでの認証設定
auth default {
mechanisms = plain
# LDAP database
passdb ldap {
args = /etc/dovecot-ldap.conf ←パスワードデータベースに下でも記述している設定ファイルを指定
}
# static settings generated from template
#userdb static {
#? args = uid=89 gid=89 home=/home/virtual/%d/%u
#}
# LDAP database
userdb ldap {
# Path for LDAP configuration file, see doc/dovecot-ldap.conf for example
args = /etc/dovecot-ldap.conf ←LDAP設定ファイル
}
user = root
}
mail_uid = 89
mail_gid = 89
これが最初に作成した設定ファイルです。
なぜ最初なのかというと、前回同様のセットアップした時(去年)のバージョンと記述方法やパラメータが変更されており、設定方法にやや不安があったためです。
postfix の設定の時にテストアカウントの属性項目で IMAPMailDir という項目にかなり長い記述をしていますが、以前セットアップした際に userdb static{} の内容がうまく機能してくれなかったことや userdb ldap{} という項目自体がなかったためです。
最後の2行は追記していますが、これが userdb static の uid=89 gid=89 の部分に相当する内容を独立して記述した場所になります。
最終的な運用での設定では
auth default {
mechanisms = plain
# LDAP database
passdb ldap {
args = /etc/dovecot-ldap.conf
}
# static settings generated from template
userdb static {
args = uid=89 gid=89 home=/home/virtualMail/%d/%u
}
# LDAP database
userdb ldap {
# Path for LDAP configuration file, see doc/dovecot-ldap.conf for example
args = /etc/dovecot-ldap.conf
}
user = root
}
で問題なく動きましたので、こちらの設定を最初から記述してください。
さて、この設定ファイルで指定しているLDAP設定ファイルの内容ですが、あらかじめサンプルファイルが用意されていますので、こちらを変更して使用します。
/etc/dovecot-ldap.conf ファイル
dn = cn=mtaAdmin,ou=Service,dc=hogehoge,dc=com ←LDAPサーバーにログインするユーザー情報
dnpass = パスワード ←上のユーザーのパスワード
auth_bind = no ←上のユーザーだけでログインするので no に設定
base = ou=mailsys,dc=hogehoge,dc=com ←検索ベース
scope = subtree ←検索スコープ
user_attrs = uid=user,imapMailDir=mail ←dovecot.conf のLDAP設定で動けばここはコメントアウトしてOK
user_filter = (&(objectClass=inetOrgPerson)(uid=%u))
pass_attrs = uid=user,userPassword=password ←パスワードの参照先
pass_filter = (&(objectClass=inetOrgPerson)(uid=%u)) ←パスワード参照時の絞り込み検索フィルター
default_pass_scheme = PLAIN-MD5 ←暗号化形式をデフォルトのMD5 に指定
いろいろな項目がありますが、変更するのは上の内容になります。
文中に記述していますが user_attrs= は dovecot.conf ファイルの userdb static{} とイコールなので dovecot.conf の設定だけで動いていれば次のフィルター行を含めて必要ありません。
設定が終わったら dovecot を起動します。
>service dovecot start
メールの受信を行って問題なければ設定は終了です。
DTIのVPSサービスでは、当初なんらかのサーバーメンテナンスが実施される度に dovecot.conf ファイルが初期状態に戻ってしまうトラブルがありましたが、現在は解消されています。おそらくこれも yum のオートアップデートの問題だったのでしょう。
次回はSMTP AUTHの実装です。