PostfixとDovecotでメールサーバを構築します。
以下のような設定にします。
・個人ごとにUNIXアカウントを作らない
・メール送信はサブミッションポート経由(SMTP Auth)
・パスワードはDovecotで一元管理
初期設定
■パッケージのインストール# yum -y install postfix dovecot cyrus-sasl-md5 make
■起動
# /etc/rc.d/init.d/postfix start
OS起動時に自動起動する設定
# chkconfig postfix on
■aliasesデータベース構築
# newaliases
※mailコマンドがない場合、mailxパッケージもインストール。
※うまくいかない場合、"postalias /etc/aliases" を実行した後にnewaliasesしてみる。
※sendmailが入っている場合は以下の作業も。
■sendmail停止
# /etc/rc.d/init.d/sendmail stop
# chkconfig --del sendmail
■"sendmail"コマンドを"sendmail.postfix"にリンク
# alternatives --config mta
■ローカルユーザ宛に送信テスト
# mail root
※届かない場合、/var/log/maillog でエラーを確認して設定。
Dovecotの設定
■メールボックス管理アカウントの作成
個人ごとのUNIXアカウントは作らないので、メールを読み書きする共通UNIXアカウントが必要となります。
# groupadd -g 10000 vmail
# useradd -u 10000 -g 10000 -d /var/spool/vmail -r -s /sbin/nologin vmail
# mkdir /var/spool/vmail
# chown vmail:vmail /var/spool/vmail
# chmod 700 /var/spool/vmail
■Dovecotの設定
# vi /etc/dovecot.conf
auth_default { mechanism = cram-md5 digest-md5 login plain passdb passwd-file { args = /etc/dovecot-passwd } socket-listen { client { path = /var/spool/postfix/private/auth mode = 0600 user = postfix group = postfix } } userdb static { args = uid=10000 gid=10000 home=/var/spool/vmail/%d/%n } }
コメントアウトしている個所を有効にするときには、対応する "}" なども忘れずに有効にします。
■パスワードファイルの作成
dovecotpwコマンドでパスワードを生成し、/etc/dovecot-passwdに記述します。
# dovecotpw
Enter new password: Retype new password: {HMAC-MD5}fe25e946c9a10a6a72f51a49eb9ceda913daadfdcebc390e7dd9ac38cf0d96cd
# vi /etc/dovecot-passwd
test@example.com:{HMAC-MD5}fe25e946c9a10a6a72f51a49eb9ceda913daadfdcebc390e7dd9ac38cf0d96cd
■起動
# /etc/rc.d/init.d/dovecot start
# chkconfig dovecot on
Postfixの設定
■設定# vi /etc/postfix/main.cf
# 以下を編集 mydestination = $myhostname, localhost.$mydomain, localhost inet_interfaces = all # 以下を追加 smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination broken_sasl_auth_clients = yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_security_options = noanonymous virtual_mailbox_domains = example.com virtual_mailbox_base = /var/spool/vmail virtual_mailbox_maps = hash:/etc/postfix/vmailbox virtual_minimum_uid = 100 virtual_uid_maps = static:10000 virtual_gid_maps = static:10000 virtual_alias_maps = hash:/etc/postfix/virtual virtual_maps = hash:/etc/postfix/virtual
# vi /etc/postfix/master.cf
# 以下を編集 submission inet n - n - - smtpd
■メールアドレスの追加
# vi /etc/postfix/vmailbox
test@example.com example.com/test/Maildir/
# postmap /etc/postfix/vmailbox
# postmap /etc/postfix/virtual
■再起動
# /etc/rc.d/init.d/postfix restart
■iptablesに追加
他サーバからの中継用に25も開けます。
# vi ~root/firewall
/sbin/iptables -A INPUT -p tcp --dport 587 -j ACCEPT /sbin/iptables -A INPUT -p tcp --dport 25 -j ACCEPT
正しく送受信されるかテストし、不正リレーチェックをして、問題なければ完了です。
不正なリレーをしていないかどうかは、以下のサイトなどで確認できます。
第三者中継チェック RBL.JP
ドメイン追加の処理
/etc/postfix/main.cf の "virtual_mailbox_domains =" の個所に追加します。メールアドレス追加の処理
dovecotpwコマンドで、暗号化パスワードを取得します。/etc/dovecot-passwdに追加します。
/etc/postfix/vmailboxに追加します。
postmap /etc/postfix/vmailboxを実行します。
参考:
PostfixとDovecotでさくらVPS上にバーチャルメールボックスが利用できるメールサーバを作る
メールサーバー間通信内容暗号化(OpenSSL+Postfix+Dovecot)
サーバ構築/Postfix/バーチャルドメイン設定