さくらのVPSを使ってみる:メールサーバの構築

さくらのVPS に、postfixとdovecotを使ってメールサーバを構築します。

設定内容は以下。

  • 個人ごとにUNIXアカウントを作らない
  • メール送信はサブミッションポート経由(SMTP Auth)
  • SMTP/POPパスワードはdovecotで一元管理
  • SSLはとりあえず使わない
  • POP3のみ対応(imap未対応)
  • Maildir形式



パッケージのインストール

# yum -y install dovecot cyrus-sasl-md5

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

CentOS5から6になって、dovecotも1.xから2.0になりました。
  • /etc/dovecot.conf単体ではなく、/etc/dovecot.confで概要を指定して、各セクションの詳細は /etc/conf.d/ で設定するようになった
  • デフォルト値が少し変わった(SSLはデフォルトでONなど)
  • これまでUNIXアカウントはdovecotだけだったが、dovenullも追加された(yumで自動的に追加されます)
  • dovecotpwがなくなり、doveadmとなった
本来は2.0の書き方で書くべきですが、1.xの設定ファイルでも認識するため、今回はそのまま使います。
デフォルトでは、SSLを使わない場合にはプレーンテキスト認証は無効になりました。
disable_plaintext_auth = no で有効にします。
また、mail_locationを記述しないとエラーになるようです。
# vi /etc/dovecot.conf
auth_mechanisms = cram-md5 plain login

disable_plaintext_auth = no

mail_location = maildir:~/Maildir

passdb {
  args = /etc/dovecot/dovecot-passwd
  driver = passwd-file
}
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
  user = root
}
ssl = no
userdb {
  args = uid=vmail gid=vmail home=/var/spool/vmail/%d/%n
  driver = static
}

パスワードの生成にはdoveadmコマンドを使うようになりました。
認証スキームはHMAC-MD5, CRAM-MD5などがあるようです。
# doveadm pw -s HMAC-MD5
Enter new password:
Retype new password:
{HMAC-MD5}8c9169f45b3b78f4c4803d5110e431b1bd71370939221876e3abe01e35bc45c2

doveadmが吐き出したパスワードを、パスワードファイルに保存しておきます。
# vi /etc/dovecot/dovecot-passwd
test@example.com:{HMAC-MD5}8c9169f45b3b78f4c4803d5110e431b1bd71370939221876e3abe01e35bc45c2

dovecotを起動します。
# /etc/rc.d/init.d/dovecot start

# chkconfig dovecot on

postfixの設定

■設定
"mydestination"を書かないと、”warning: do not list domain example.com in BOTH mydestination and virtual_mailbox_domains"のような警告がでます。
なにも設定したくない(ローカル配信したくない)場合には、"mydestination ="とだけ記述します。
# vi /etc/postfix/main.cf
# 以下を編集
inet_interfaces = all
home_mailbox = Maildir/
mydestination = $myhostname, localhost.$mydomain, localhost

# 以下を追加
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

local_transport = local
local_recipient_maps = unix:passwd.byname $alias_maps

# サイズ制限
mailbox_size_limit = 100000000
message_size_limit = 50000000

# vi /etc/postfix/master.conf
# 以下を有効に
submission inet n       -       n       -       -       smtpd

■メールアドレスを追加

# vi /etc/postfix/vmailbox
test@example.com    example.com/test/Maildir/
# postmap /etc/postfix/vmailbox

virtual.dbも生成されていない場合があるので、一応。
# postmap /etc/postfix/virtual

■postfixを再起動

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


以上で設定完了です。

こちらを参考に、不正リレーチェックを行っておきます。
運用開始後の作業も上記URLとほぼ同じです。(dovecotpwがdoveadmに変わっただけ)

  • Spread The Love
  • Digg This Post
  • Tweet This Post
  • Stumble This Post
  • Submit This Post To Delicious
  • Submit This Post To Reddit
  • Submit This Post To Mixx

0 Response to “さくらのVPSを使ってみる:メールサーバの構築”

Leave a Reply