この文書の現在のバージョンと選択したバージョンの差分を表示します。
linux:postfix:dovecot-sasl [2010/11/17 06:59] miyako 作成 |
linux:postfix:dovecot-sasl [2010/11/22 01:40] (現在) miyako |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
====== Postfix + Dovecot @SMTP-AUTH ====== | ====== Postfix + Dovecot @SMTP-AUTH ====== | ||
- | PostfixとDovecotは親和性が良い。ウンウンSMTP-AUTHの認証をDovecotが引受けてくれるのだ。 | + | PostfixとDovecotは親和性が良い。ウンウン |
+ | |||
+ | SMTP-AUTHの認証をDovecotが引受けてくれるのだ。 | ||
環境は例によってCentOS5.5 | 環境は例によってCentOS5.5 | ||
ライン 8: | ライン 10: | ||
+ | CentOS6はまだリリースされていないので環境はCentOS5.5で構築してます(2010年11月17日) | ||
+ | |||
+ | <code> | ||
+ | ■ 環境 | ||
+ | OS : CentOS5.5 32bit | ||
+ | Postfix : postfix-2.3.3-2.1.el5_2 | ||
+ | Devecot : dovecot-1.0.7-7.el5 | ||
+ | </code> | ||
+ | |||
+ | バーチャル用のシステムユーザを作成 | ||
+ | <code> | ||
+ | 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/ | ||
+ | </code> | ||
+ | |||
+ | Postfixインストール | ||
+ | <code> | ||
+ | yumでサクッとインストールできる | ||
+ | |||
+ | yum -y install postfix | ||
+ | </code> | ||
+ | |||
+ | Postfixが肝心のdovecot認証が使える状況か確認する | ||
+ | <code> | ||
+ | postconf -a | ||
+ | |||
+ | cyrus | ||
+ | dovecot ← これが含まれていたらOK | ||
+ | </code> | ||
+ | |||
+ | 設定ファイルを修正 | ||
+ | <code> | ||
+ | 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 | ||
+ | |||
+ | 保存して終了 | ||
+ | </code> | ||
+ | |||
+ | ローカルのバーチャルドメインを登録するファイルを作成する | ||
+ | <code> | ||
+ | vi /etc/postfix/virtual_domains | ||
+ | |||
+ | ドメイン名 required to prevent relay access denied errors | ||
+ | |||
+ | ドメイン名の右辺はダミーなのでなんでも構わないです | ||
+ | |||
+ | ハッシュに変換します | ||
+ | postmap /etc/postfix/virtual_domains | ||
+ | </code> | ||
+ | |||
+ | バーチャルユーザを作成する | ||
+ | <code> | ||
+ | ファイルをインクルードする事は出来ないのでドメイン毎にファイルを作成する場合はハッシュに変換する前にマージする | ||
+ | vi /etc/postfix/vmailbox | ||
+ | |||
+ | ユーザ名@ドメイン名 ドメイン名/ユーザ名/Maildir/ | ||
+ | |||
+ | ハッシュに変換します | ||
+ | postmap /etc/postfix/vmailbox | ||
+ | </code> | ||
+ | |||
+ | Submissionポートを利用可能にする | ||
+ | <code> | ||
+ | vi /etc/postfix/master.cf | ||
+ | |||
+ | Submission行のコメントを外す | ||
+ | submission inet n - n - - smtpd | ||
+ | </code> | ||
+ | |||
+ | Sendmailを停止してMTAをPostfixへ変更する | ||
+ | <code> | ||
+ | service sendmail stop | ||
+ | chkconfig sendmail off | ||
+ | chkconfig --list sendmail | ||
+ | |||
+ | alternatives --config mta | ||
+ | 選択 コマンド | ||
+ | ----------------------------------------------- | ||
+ | *+ 1 /usr/sbin/sendmail.sendmail | ||
+ | 2 /usr/sbin/sendmail.postfix | ||
+ | |||
+ | Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2 | ||
+ | </code> | ||
+ | |||
+ | dovecotをインストール | ||
+ | <code> | ||
+ | yumでサクッとインストール | ||
+ | |||
+ | yum -y install dovecot | ||
+ | </code> | ||
+ | |||
+ | 設定ファイルを修正 | ||
+ | <code> | ||
+ | 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 | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | **ここでハマった!!mechanismsの設定でPlainだけだとSMTP-AUTHの認証が通らない事に気づくのに1日以上かかった(--;)** | ||
+ | |||
+ | |||
+ | /usr/lib/sasl2/smtpd.confの設定やsaslauthのサービスは起動する必要は無いと思う。。。たぶん | ||
+ | |||
+ | バーチャルドメイン用のディレクトリを作成する | ||
+ | <code> | ||
+ | cd /home/vuser/ | ||
+ | mkdir vhosts | ||
+ | chmod 755 vhosts | ||
+ | chown vuser:vuser vhosts | ||
+ | </code> | ||
+ | |||
+ | dovecot用のパスワードファイルを作成する | ||
+ | <code> | ||
+ | cd /home/vuser/ | ||
+ | vi dovecot-passwd | ||
+ | |||
+ | ユーザ名@ドメイン名:{Plain}パスワード:5000:5000::/home/vuser/vhosts/%d/%u/Maildir/ | ||
+ | </code> | ||
+ | |||
+ | サービスを起動 | ||
+ | <code> | ||
+ | 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 | ||
+ | </code> |