お名前.com VPS (KVM) にて WordPress をはじめるまで(5)
第5回は、Postfix と Dovecot のインストールについてです。
2012年5月から お名前.com VPS(KVM) の利用を始めています。
標準 OS にて、設定などを備忘録として残しておきたいと思います。
パッケージのインストール
Postfix は送信メールサーバー(SMTP サーバー)です。Dovecot は受信メールサーバー(POP、IMAP サーバー)です。そして、SMTP AUTH で利用する cyrus-sasl-md5 のパッケージをインストールします。
$ sudo yum install postfix dovecot cyrus-sasl-md5
Postfix と Dovecot の設定
ここでは、バーチャルメールボックスを設定し、バーチャルメールボックスのアカウントと SMTP AUTH 認証用のアカウントは Dovecot で一元管理するようにします。
よって、Postfix と Dovecot とをあわせながら設定していきます。
バーチャルメールボックスの管理ユーザー
バーチャルメールボックスの管理ユーザー vmail を作成します。
$ sudo groupadd -g 10000 vmail $ sudo useradd -u 10000 -g 10000 -d /var/spool/vmail -r -s /sbin/nologin vmail $ sudo mkdir /var/spool/vmail $ sudo chown vmail:vmail /var/spool/vmail $ sudo chmod 700 /var/spool/vmail
バーチャルメールボックスのアカウント
バーチャルメールボックスのアカウントを作成します。
アカウントは、/etc/dovecot/passwd というファイルを作成して管理することとします。
ファイルは、「ユーザー名(メールアドレス):パスワード(ハッシュ値)」という形式で作成します。
postmaster@example.jp:{CRAM-MD5}e9695099f05fa74a1ffe8639764f105508731447f45d74b1011f719bdc88046d admin@example.jp:{CRAM-MD5}e9695099f05fa74a1ffe8639764f105508731447f45d74b1011f719bdc88046d
なお、パスワードのハッシュ値は、doveadm pw コマンドで取得できます。
$ sudo doveadm pw
/etc/postfix/vmailbox ファイルを作成します。
postmaster@example.jp example.jp/postmaster/Maildir/ admin@example.jp example.jp/admin/Maildir/
データベースへ変換
/etc/postfix/vmailbox をデータベースに変換します。また、/etc/postfix/virtual は、メール転送を設定します。今回は設定しませんが、こちらもデータベースに変換します。
$ sudo postmap /etc/postfix/vmailbox $ sudo postmap /etc/postfix/virtual
main.cf の編集
Postfix の設定は /etc/postfix/main.cf を編集します。以下は設定例です。
myhostname = www.example.jp mydomain = example.jp myorigin = $mydomain inet_interfaces = all local_recipient_maps = $virtual_mailbox_maps unknown_local_recipient_reject_code = 550 mynetworks = 127.0.0.0/8 home_mailbox = Maildir/ smtpd_banner = $myhostname ESMTP unknown # SASL smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = $myhostname smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_sasl_type = dovecot smtpd_sasl_path = private/dovecot-auth smtpd_sasl_security_options = noanonymous,noplaintext # Virtual local_transport = virtual virtual_transport = virtual virtual_mailbox_domains = example.jp virtual_mailbox_base = /var/spool/vmail virtual_mailbox_maps = hash:/etc/postfix/vmailbox virtual_uid_maps = static:10000 virtual_gid_maps = static:10000 virtual_alias_maps = hash:/etc/postfix/virtual # limit message_size_limit = 10485760 virtual_mailbox_limit = 10485760 # add Ver.2.10.x smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
【補足】Postfix の local_recipient_maps の設定
【補足】Postfix の smtpd_relay_restrictions の設定
dovecot.conf の編集
/etc/dovecot/dovecot.conf を編集します。以下を追加します。
listen = *, :: service auth { unix_listener /var/spool/postfix/private/dovecot-auth { group = postfix user = postfix mode = 0660 } }
10-mail.conf の編集
/etc/dovecot/conf.d/10-mail.conf を編集します。以下を追加します。
mail_location = maildir:~/Maildir
10-auth.conf の編集
/etc/dovecot/conf.d/10-auth.conf を編集します。以下を変更します。
#auth_mechanisms = plain auth_mechanisms = cram-md5 login !include auth-passwdfile.conf.ext !include auth-static.conf.ext
auth-passwdfile.conf.ext の編集
/etc/dovecot/conf.d/auth-passwdfile.conf.ext を編集します。以下に変更します。
passdb { driver = passwd-file args = scheme=CRAM-MD5 username_format=%u /etc/dovecot/passwd }
auth-static.conf.ext の編集
/etc/dovecot/conf.d/auth-static.conf.ext を編集します。以下を追加します。
userdb { driver = static args = uid=vmail gid=vmail home=/var/spool/vmail/%d/%n }
起動と自動起動設定
Postfix を起動します。自動起動を設定します。
$ sudo service postfix start $ sudo chkconfig postfix on
Dovecot を起動します。自動起動を設定します。
$ sudo service dovecot start $ sudo chkconfig dovecot on
ファイアウォールの設定
iptables を設定し、再起動します。
$ sudo vi /etc/sysconfig/iptables $ sudo service iptables restart
iptables に追加する設定例です。
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 465 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 587 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 993 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 995 -j ACCEPT
ドメイン管理
わたしは スタードメイン を利用して、ドメインの更新や DNS 設定を行っております。ドメイン管理で MX レコードなどの DNS 設定を行います。
SSL 証明書
さらに、SSL を利用する設定を行っています。次回の「お名前.com VPS (KVM) にて WordPress をはじめるまで(6)」で SSL 証明書を作成します。
補足
SSL 証明書の利用
SSL 証明書を利用した設定例について追記します。
/etc/postfix/main.cf に設定を追加します。
smtpd_use_tls = yes smtpd_tls_auth_only = yes smtpd_tls_security_level = may smtpd_tls_key_file = /etc/ssl/certs/wwwexamplejp.key smtpd_tls_cert_file = /etc/ssl/certs/wwwexamplejp.crt smtpd_tls_CAfile = /etc/ssl/certs/inter.crt
Postfix を再起動します。
$ sudo service postfix restart
/etc/dovecot/conf.d/10-ssl.conf を編集します。
ssl = yes ssl_cert = </etc/ssl/certs/wwwexamplejp.crt ssl_key = </etc/ssl/certs/wwwexamplejp.key ssl_ca = </etc/ssl/certs/inter.crt
Dovecot を再起動します。
$ sudo service dovecot restart
ログ出力先
参考として、ログは /var/log/maillog に出力されています。
submission ポート(587)
submission ポート(587)の対応について追記します。/etc/postfix/master.cf にて設定します。以下の記述のコメントをはずします。
submission inet n - n - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING
Postfix を再起動します。
$ sudo service postfix restart
無料お試し期間の制限事項
さて、お名前.com VPS(KVM) では、申込後 15 日間無料のお試しサービスが実施されてています。この期間は、「データ転送帯域制限:ダウンロード(中から外)を5Mbps」、「ポート制限:25番ポート(中から外)」の制限事項があり、入金確認(決済完了)後に制限が解除されます。
Postfix の local_recipient_maps の設定
Postfix の /etc/postfix/main.cf において、local_recipient_maps の設定を見直しました。Postfix のバージョンアップに伴い、オプション機能から必須機能へと変更されたためです。本文における設定例は、バーチャルメールボックスのアカウントを参照するように設定したものに修正しました。
Postfix の smtpd_relay_restrictions の設定
Postfix の /etc/postfix/main.cf において、smtpd_relay_restrictions の設定を追加しました。Postfix の 2.10.x へのバージョンアップに伴うものです。
reject_unauth_destination を defer_unauth_destination とすることも 2.10.x からできます。ちがいは、with a non-permanent error code だそうです。