せっかくのVPSなので、独自ドメイン + VPSを使ったメール運用をまとめてみました。
- ドメイン管理は、Value Domain (そのうちDTIドメイン管理のもUPしたい)
- メールサーバ(送信、受信)は、ServersMan@VPS
- MTA(メール転送エージェント。メールを配る) は、Postfix
- MDA(メール配送エージェント。メールを受け取る)は、Dovecot
- クライアント <-> メールサーバ間の通信は、OpenSSLで暗号化
※ メールサーバ <-> メールサーバ間は暗号化されるわけじゃないので注意。
※ よい子は、メール本文にパスワードなんて書いて送っちゃいけないZO☆ - メール送信は、SMTP Auth(メール送信ユーザ認証)
- アカウント管理は、システムアカウントと共通
- パスワードの暗号化は、アカウント管理をシステムアカウント共通にするため、なし (そのためのSSLってことで)
目次
独自ドメイン
証明書
SASL(認証機構)
Postfix
1. Postfixインストール + 設定
2. Postfix起動
3. 動作確認
Dovecot
1. メール保存場所の設定
2. Dovecot インストール + 設定
3. Dovecot 起動
4. 動作確認
運用
mxレコードの設定
Value Domain ではこんな感じで設定しました。
mx mail.temog.info. 10 a mail ServersMan@VPSのIPアドレス
証明書の準備(オレオレ証明書)
こちらの記事で紹介してます。
SASLのインストール
yum install cyrus-sasl-md5 cyrus-sasl-plain
設定
システムアカウントと共通で運用する場合は以下の設定。
vi /etc/sysconfig/saslauthd MECH=shadow
リブート
/etc/init.d/saslauthd restart
自動起動設定
chkconfig saslauthd on
Postfixインストール + 設定
インストール
yum install postfix
設定
vi /etc/postfix/main.cf #myhostname = host.domain.tld #myhostname = virtual.domain.tld myhostname = mail.temog.info ← 追加 #mydomain = domain.tld mydomain = temog.info ← 追加(自ドメイン名を指定) #myorigin = $myhostname myorigin = $mydomain ← コメントアウト解除 inet_interfaces = all ← コメントアウト解除 #inet_interfaces = $myhostname #inet_interfaces = $myhostname, localhost #inet_interfaces = localhost ← コメントアウト #mydestination = $myhostname, localhost.$mydomain, localhost ← コメントアウト mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain ← コメントアウト解除 #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, #home_mailbox = Mailbox home_mailbox = Maildir/ ← コメントアウト解除 #smtpd_banner = $myhostname ESMTP $mail_name #smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) smtpd_banner = $myhostname ESMTP MyMTA(0.1) ← 追加(セキュリティ対策) # 最終行に以下を追記 # smtp auth smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = $myhostname smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination # 受信メールサイズ制限(10M) message_size_limit = 10485760 # ssl setting smtpd_use_tls = yes smtpd_tls_cert_file = /etc/pki/tls/certs/server.pem smtpd_tls_key_file = /etc/pki/tls/certs/server.key smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_schache
以下の行のコメントアウトを削除
vi /etc/postfix/master.cf smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes tlsmgr unix - - n 1000? 1 tlsmgr
Postfix起動
sendmail停止 + 自動起動解除
/etc/init.d/sendmail stop chkconfig sendmail off
MTAの切り替え
alternatives --config mta There are 2 programs which provide 'mta'. Selection Command ----------------------------------------------- *+ 1 /usr/sbin/sendmail.sendmail 2 /usr/sbin/sendmail.postfix Enter to keep the current selection[+], or type selection number: 2 # ↑のように表示されたら 2 を入力してEnter
Postfixの起動
/etc/init.d/postfix start
自動起動設定
chkconfig postfix on
動作確認
telnet だと SSL使用のハードルが高いので、対応しているメールクライアントで試します。
以下は Thunderbird の例です。
※ Ubuntu版ですけど、他OSでもさほど変わらないと思います
・Thunderbirdを起動
・メニューから編集→アカウント設定

・あなたの名前:任意
・メールアドレス:システムアカウント@独自ドメイン
・パスワード:システムアカウントのパスワード
・続行

・メニューから「サーバ設定」
・接続の保護:SSL/TLS
・OK

・作成
・宛先に自分で確認できるメールアドレスを指定
・件名、本文に何か入力
・送信

宛先に指定したメールアドレス宛にメールが届いているか確認。
メール保存場所
自分のメール保存場所作成
cd
mkdir -p Maildir/{new,cur,tmp}
chmod -R 700 Maildir/
新規ユーザ作成時に自動でメール保存場所作成
mkdir -p /etc/skel/Maildir/{new,cur,tmp}
chmod -R 700 /etc/skel/Maildir/
Dovecot インストール + 設定
yum install dovecot
設定
vi /etc/dovecot.conf protocols = imap imaps pop3 pop3s mail_location = maildir:~/Maildir #コメントアウトを解除↓ ssl_disable = no # コメントアウト解除 + 証明書のパス設定 ssl_cert_file = /etc/pki/tls/certs/server.pem ssl_key_file = /etc/pki/tls/certs/server.key
※ 2010/09/21 protocols が protoclos になってました(修正済)。Kamatoroさん突っ込み感謝!
設定反映
/etc/init.d/dovecot restart
Dovecot 起動
/etc/init.d/dovecot start
自動起動設定
chkconfig dovecot on
動作確認
とりあえず、受信を確認したいアカウントにメールを送信します。
例: アカウントは、test (/home/test)
ドメインは、temog.info
test@temog.info へメール送信
送信後、メールクライアントで受信してみます。
以下はThunderbirdの例です。※ 送信の確認で設定済みなことを前提にしてます。
・Thunderbird起動
・メニューから メールアカウント を選択
・受信

メールが受信できていることを確認。
ユーザの追加
ユーザを追加する場合は、以下の手順から。
useradd -s /sbin/nologin 追加ユーザ passwd 追加ユーザ Changing password for user xxxxxx. New UNIX password: パスワード Retype new UNIX password: パスワード passwd: all authentication tokens updated successfully.
メール転送
このファイルを編集します。
vi /etc/aliases
編集が終わったら設定の反映
newaliases
例:root宛のメールを特定ユーザに転送
root: ユーザ名
例:メールを残さず転送
ユーザ名: 転送先メールアドレス
例:メールを残して転送
ユーザ名: ユーザ名, 転送先メールアドレス
例:複数のアドレスに転送
ユーザ名: ユーザ名, 転送先メールアドレスA, 転送先メールアドレスB
関連記事











“Dovecot インストール + 設定”
の
“vi /etc/dovecot.conf”への記述で
protoclos = imap imaps pop3 pop3s
↓
protocols = imap imaps pop3 pop3s
タイプミスずら
やっちまった Σ(゚Д゚)
修正しました!指摘ありがとうございます
Postfixのmain.cfの設定で最終行
“smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_schache”
“smtpd_schache”ではなく”smtpd_scache”ではないでしょうか?
>“smtpd_schache”ではなく”smtpd_scache”ではないでしょうか?
自分の環境では smtpd_schache です (Version 2.3.3)
[...] http://temog.info/archives/vps/serversmanvps-%E3%81%A7%E3%83%A1%E3%83%BC%E3%83%AB%E9%81%8B%E7%94%A8.html [...]
見ながらやらせて頂きました!
情報ありがたいです。
役に立ってよかったです
[...] ここのとおりに実施します。 [...]