PostfixとDovecotは親和性が良い。ウンウン
SMTP-AUTHの認証をDovecotが引受けてくれるのだ。
環境は例によってCentOS5.5
RedHat Enterprise6が正式にMTUをPostfixへ変更してきたので、時代はPostfixなのかと慌てて検証をした(笑
CentOS6はまだリリースされていないので環境はCentOS5.5で構築してます(2010年11月17日)
■ 環境 OS : CentOS5.5 32bit Postfix : postfix-2.3.3-2.1.el5_2 Devecot : dovecot-1.0.7-7.el5
バーチャル用のシステムユーザを作成
groupadd -g 5000 vuser useradd -g vuser -u 5000 vuser mkdir /home/vuser/vhosts/ chmod -R 771 /home/vuser/ chown -R vuesr:vuser /home/vuser/
Postfixインストール
yumでサクッとインストールできる yum -y install postfix
Postfixが肝心のdovecot認証が使える状況か確認する
postconf -a cyrus dovecot ← これが含まれていたらOK
設定ファイルを修正
cd /etc/postfix/ vi main.cf サーバーのホスト名 myhostname = FQDN ドメイン名を設定 mydomain = ドメイン名 全てのインターフェースから受付ける inet_interfaces = all バーチャルドメインで運用するので空白 mydestination = Maildir形式にする home_mailbox = Maildir/ サーバー名を隠す unknown_local_recipient_reject_code = 550 SMTP-AUTHをDovecotに渡す設定 smtpd_sasl_security_options = noanonymous smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = hash:/etc/postfix/virtual_domains smtpd_sasl_authenticated_header = yes broken_sasl_auth_clients = yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination バーチャルドメインの設定 virtual_mailbox_domains = hash:/etc/postfix/virtual_domains virtual_mailbox_base = /home/vuser/vhosts virtual_mailbox_maps = hash:/etc/postfix/vmailbox virtual_minimum_uid = 100 virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 virtual_alias_maps = hash:/etc/postfix/virtual 保存して終了
ローカルのバーチャルドメインを登録するファイルを作成する
vi /etc/postfix/virtual_domains ドメイン名 required to prevent relay access denied errors ドメイン名の右辺はダミーなのでなんでも構わないです ハッシュに変換します postmap /etc/postfix/virtual_domains
バーチャルユーザを作成する
ファイルをインクルードする事は出来ないのでドメイン毎にファイルを作成する場合はハッシュに変換する前にマージする vi /etc/postfix/vmailbox ユーザ名@ドメイン名 ドメイン名/ユーザ名/Maildir/ ハッシュに変換します postmap /etc/postfix/vmailbox
Submissionポートを利用可能にする
vi /etc/postfix/master.cf Submission行のコメントを外す submission inet n - n - - smtpd
Sendmailを停止してMTAをPostfixへ変更する
service sendmail stop chkconfig sendmail off chkconfig --list sendmail alternatives --config mta 選択 コマンド ----------------------------------------------- *+ 1 /usr/sbin/sendmail.sendmail 2 /usr/sbin/sendmail.postfix Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2
dovecotをインストール
yumでサクッとインストール yum -y install dovecot
設定ファイルを修正
cd /etc/ vi dovecot.conf 設定箇所 auth default { mechanisms = digest-md5 cram-md5 plain login passdb passwd-file { args = /home/vuser/dovecot-passwd } userdb passwd-file { args = /home/vuser/dovecot-passwd } user = root socket listen { client { path = /var/spool/postfix/private/auth mode = 0660 user = postfix group = postfix } }
ここでハマった!!mechanismsの設定でPlainだけだとSMTP-AUTHの認証が通らない事に気づくのに1日以上かかった(--;)
/usr/lib/sasl2/smtpd.confの設定やsaslauthのサービスは起動する必要は無いと思う。。。たぶん
バーチャルドメイン用のディレクトリを作成する
cd /home/vuser/ mkdir vhosts chmod 755 vhosts chown vuser:vuser vhosts
dovecot用のパスワードファイルを作成する
cd /home/vuser/ vi dovecot-passwd ユーザ名@ドメイン名:{Plain}パスワード:5000:5000::/home/vuser/vhosts/%d/%u/Maildir/
サービスを起動
service postfix start service dovecot start chkconfig postfix on chkconfig dovecot on ■ 確認 chkconfig --list postfix postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off chkconfig --list dovecot dovecot 0:off 1:off 2:on 3:on 4:on 5:on 6:off