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
linux/postfix/dovecot-sasl.txt · 最終更新: 2010/11/22 01:40 by miyako
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0