さくらvpsでメールサーバー構築手順〜バーチャルドメインとバーチャルメールボックス
はじめに
やりたいことは以下
・独自ドメインのメールアドレスを使いたい
・1サーバで複数のドメインを扱いたい
・メーラーでメールの送受信を行いたい
・なるべくSPAM判定されないようにしたい
・SSLも使えるようにしたい
で、調べるとバーチャルメールボックスというのがあるようで
これを使うとメールアドレスを追加するたびにunixのアカウント(ユーザー)作らなくてもいいようなのでやりたいことと一致しました。
使うソフトは以下で、今回のサーバーはさくらvpsでcentos6.7でやりました。全て最初から入ってたものをそのまま使いました
・postfix
・dovecot
・openssl
また、smtpとpopで別アカウントとすることもあるようなのですが
saslのタイプをdovecot-saslにすればアカウントを統合できるようなのでこれを使います
さくらvpsはxxxxx.vs.sakura.ne.jpというドメインで
example.comとexample.jpはドメイン取得しているものとします
また今回はsslは自己証明書とします
実装 〜 設定ファイル編集
今回作るアカウントは以下とします
info@example.com
info@example.jp
/etc/postfix/master.cf
# サブミッションポート対応 submission inet n - n - - smtpd -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject # SSL対応 smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
/etc/postfix/main.cf
# 全体的な設定 mydomain = xxxxx.vs.sakura.ne.jp inet_interfaces = all inet_protocols = ipv4 mydestination = $myhostname, localhost.$mydomain,localhost mynetworks_style = host mynetworks = 127.0.0.0/8 home_mailbox = Maildir/ smtpd_banner = $myhostname ESMTP # SMTP-Auth設定 smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = $myhostname smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination # 受信メール制限 mailbox_size_limit = 209715200 message_size_limit = 5242880 # SPAM対策 disable_vrfy_command = yes smtpd_helo_required = yes # SSL関連 smtp_use_tls = yes smtp_tls_cert_file = /etc/pki/tls/certs/mail.crt smtp_tls_key_file = /etc/pki/tls/certs/mail.key smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_scache smtpd_use_tls = yes smtpd_tls_cert_file = /etc/pki/tls/certs/mail.crt smtpd_tls_key_file = /etc/pki/tls/certs/mail.key smtp_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache # バーチャルメールボックス設定 virtual_mailbox_domains = example.com example.jp 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
/etc/postfix/vmailbox
info@example.com example.com/info/Maildir/ info@example.jp example.jp/info/Maildir/
/etc/dovecot/conf.d/10-auth.conf
unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix }
/etc/dovecot/conf.d/auth-passwdfile.conf.ext
passdb { driver = passwd-file args = scheme=CRAM-MD5 username_format=%u /etc/dovecot/passwd } userdb { driver = passwd-file args = scheme=CRAM-MD5 username_format=%u /etc/dovecot/passwd }
/etc/dovecot/conf.d/auth-static.conf.ext
userdb { driver = static args = uid=10000 gid=10000 home=/var/spool/vmail/%d/%n }
/etc/dovecot/conf.d/10-ssl.conf
ssl = yes ssl_cert = </etc/pki/tls/certs/mail.crt ssl_key = </etc/pki/tls/certs/mail.key
/etc/postfix/virtual
info@example.com \info@example.com,xxxxx@gmail.com info@example.jp \info@example.jp,xxxxx@gmail.com
実装 〜 コマンド操作
自己証明書と秘密鍵の作成
> cd /etc/pki/tls/certs > openssl req -new -x509 -nodes -days 365 -out mail.crt -keyout mail.key > chmod 600 mail.key > ls mail.crt mail.key mail.der
バーチャルメールアカウント作成
> 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
メールアカウントディレクトリ作成
> mkdir -p /var/spool/vmail/example.com/info/Maildir/{new,cur,tmp} > chown -R vmail:vmail /var/spool/vmail/example.com/info > mkdir -p /var/spool/vmail/example.jp/info/Maildir/{new,cur,tmp} > chown -R vmail:vmail /var/spool/vmail/example.jp/info
メールアカウント作成とパスワード設定
# パスワード作成 doveadm pw #/etc/dovecot/passwd編集 info@example.jp:{CRAM-MD5}e01582f1efjdaksffdsffdjsakkffjdasfdsfasdf7b5a775867cd4e572da4f
さいごに
【postfix】独自ドメインでメール送受信する手順メモ〜バーチャルドメインで複数ドメイン扱う - とりあえずphpとか
あと、こちらに書いたdnsの設定はあらかじめ行います
完全に次回のコピペ用になってしまったがもうすこしまとめて理解しなくては、、、
以上です