日別アーカイブ: 2014年5月21日

メールサーバ(さくらのVPS設定5)

メールサーバはPostfixとDovecotを使います。メールアドレスは複数ドメインで、アカウントはLinuxユーザのを使用、送信はSMTP認証です。

さくらのVPSは2週間のお試し期間中はメールが使えません。2週間経ってなくてもいける! と思ったら本契約ボタンを押して下さい。1時間位で使えるようになるそうです。

Postfix(送信)

Postfixはインストール済みで既に稼働もしていたので、設定だけします。

# vi /etc/postfix/main.cf

以下のように修正
myhostname = www????.sakura.ne.jp
mydomain = www????.sakura.ne.jp
myorigin = $mydomain
inet_interfaces = all
#inet_interfaces = localhost
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP unknown

以下を追加(スパム対策)
disable_vrfy_command = yes
smtpd_helo_required = yes

以下を追加(バーチャルドメイン用)
virtual_alias_maps = hash:/etc/postfix/virtual

以下を追加(SMTP-Auth用)
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = cyrus
smtpd_sasl_path = smtpd
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

以下を追加(メールへの添付可能サイズを無制限にする)
message_size_limit = 0
mailbox_size_limit = 0

メール送信時にサブミッションポート(587)を使用します。

# vi /etc/postfix/master.cf

以下の行のコメントアウトを外す
submission inet n       -       n       -       -       smtpd
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING

設定をリロードします。

# service postfix reload

ネット上ではリロードだけで済むって書いてあったけど、maillog見たら再起動しろって警告が出てたので結局再起動。メール送れなくて悩んだよ……

# service postfix restart

Saslauthd(SASL認証)

SMTP認証のためにSaslauthdを使用します。アプリと認証処理を分離してくれるものらしい。

# vi /etc/sysconfig/saslauthd

Linuxユーザのパスワード(/etc/shadow)を使う
MECH=shadow

起動します。

# service saslauthd start
# chkconfig saslauthd on

Dovecot(受信)

Dovecotをインストールします。

# yum install dovecot

設定していきます。

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

以下の行のコメントアウトを外す
mail_location = maildir:~/Maildir
# vi /etc/dovecot/dovecot.conf

以下の行のコメントアウトを外す
protocols = imap pop3 lmtp
listen = *, ::
# vi /etc/dovecot/conf.d/10-auth.conf

パスワードを平文にする
disable_plaintext_auth = no
# vi /etc/dovecot/conf.d/10-ssl.conf

SSL接続しない
ssl = no

Dovecotを起動します。

# service dovecot start
# chkconfig dovecot on

メールアドレス作成

useradd時にメールボックス用のディレクトリを自動で作成されるようにします。

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

メールアカウント用のユーザをシェルログイン不可で作成します。

useradd -s /sbin/nologin hoge-info
passwd hoge-info

useraddしたらメールボックスはこのように作成されました。

/home/hoge-info/Maildir/new/
/home/hoge-info/Maildir/cur/
/home/hoge-info/Maildir/tmp/

メールアドレスとその振り分け処理を作成します。ドメインごとにanythingの行を入れないとメールが使用できません。入れ忘れて無駄に回り道した……

# vi /etc/postfix/virtual

hoge.com         anything
info@hoge.com    hoge-info
web@hoge.com     hoge-web

振り分けを反映させます。

# postmap /etc/postfix/virtual

これでメールの送受信が出来るようになりました。

ぐぐるとアカウントをMySQLで管理する方法があったりとか、色んな設定があるようで、目的の情報がなかなか見つからず苦労しました。

暗号化とかしてないので、セキュリティ的にはちょっと弱いかもしれませんが、とりあえずこれで。