【TIPS】さくらのVPS(CentOS 6.2)でメールサーバを構築する(postfix+dovecot)

スポンサーリンク

コンテンツ

何とかできましたが、次にするときに絶対忘れていそうなので未来の自分用にメモ。

使えるようにしたいメールアドレス

info@XXX.sakura.ne.jp
infoがアカウント名、XXX.sakura.ne.jpがVPSに割り当てられたホスト名です。
このメールアドレスを受信、送信可能にするまでをメモ。

postfix

最初から入っているようです。
設定は/etc/postfix/main.cf。ホスト名はXXX.sakura.ne.jpとしています。設定は末尾で一括して行なうため、ちょっと変わった方法で設定しています。この方法より参考リンクにあるCentOS 6 – MAILサーバー – Postfix インストール/設定 : Server Worldがわかりやすいと思います。

(作業)
116行目をコメント化
inet_interfaces = localhost
↓
119行目をコメント化
inet_protocols = all
↓
164行目をコメント化
mydestination = $myhostname, localhost.$mydomain, localhost
↓

以下、末尾に追加
## myconfig(hosts)
myhostname = XXX.sakura.ne.jp
mydomain = XXX.sakura.ne.jp
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

## myconfig(smtp-etc)
home_mailbox = Maildir/

body_checks = regexp:/etc/postfix/body_checks
smtpd_banner = $myhostname ESMTP
message_size_limit = 10485760
mailbox_size_limit = 1073741824

## myconfig(smtp-authentication)
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_client_restrictions = permit_mynetworks,reject_unknown_client,permit
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

■新規ユーザ追加時に、メールを保存するディレクトリを作成するようにする

# mkdir -p /etc/skel/Maildir/{new,cur,tmp}
# chmod -R 700 /etc/skel/Maildir/

■メール送受信用のユーザを作成する

# adduser info -s /sbin/nologin
# passwd info

このとき入力したパスワードがメール送受信用のパスワードになります

■SMTP認証用サービスsaslauthdを起動する

# /etc/rc.d/init.d/saslauthd start
saslauthd を起動中:                                        [  OK  ]
# chkconfig saslauthd on

■/etc/postfix/main.cfの変更を反映させるために、postfixを再起動する

# /etc/rc.d/init.d/postfix restart

dovecot

/etc/dovecot/dovecot.conf
21行目に追加

protocols = imap pop3

/etc/dovecot/conf.d/10-mail.conf

mail_location = maildir:~/Maildir

/etc/dovecot/conf.d/10-auth.conf

disable_plaintext_auth = no

/etc/dovecot/conf.d/10-master.conf
85-90行目あたり

    85    # Postfix smtp-auth
    86    unix_listener /var/spool/postfix/private/auth {
    87      mode = 0666
    88      user=postfix
    89      group=postfix
    90    }

クライアント設定

とりあえずThunderBirdで設定した項目だけメモ。最終的に送信サーバ

送受信テスト

ここまでの設定がうまく行っていると、メールソフトで
info@XXX.sakura.ne.jp あてに送信したメールが受信できる
info@XXX.sakura.ne.jpから別のメールアドレスにメールが送信できる
ようになっているはず。送信の方が難しいので、先に受信ができるかどうかを確かめておいたほうが良いと思います。

一通りやったがうまくいかない。色々試行錯誤しながら検索してみると、以下の二つが原因だったようです。

1.infoというアカウントが/etc/aliasesで、最初から別名定義されていて転送されている。このままだとinfo宛に来たメールがpostmaster→rootへ全部送られる。

#info:          postmaster
↓
info:          postmaster

#service postfix reload

2.外部(自分の手元のPC)からメールソフトを使ってメールを送る場合は25番ポートでは無理っぽい。さくらのVPSは本契約しているのでOP25B対策は解除されているはずだけど、ポート587のsubmissionで送った方が良いみたいなのでそうする。

postfix /etc/postfix/master.cfでsubmissionを有効にする

12行目
#submission inet n       -       n       -       -       smtpd
↓
submission inet n       -       n       -       -       smtpd

その後 # service postfix reload で設定反映。

3.ファイアウォール設定

# system-config-firewall-tui

参考リンク
CentOS 6 – MAILサーバー – Postfix インストール/設定 : Server World
CentOS 6 – MAILサーバー – Dovecot インストール/設定 : Server World
メールサーバー構築(Postfix+Dovecot) – CentOSで自宅サーバー構築