====== Postfix + Dovecot @SMTP-AUTH ====== 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