メールサーバ(postfix, dovecot)
sirius10.dip.jp が不安定なのでそろそろメールサーバも移行しなければいけません。sirius10.dip.jp も sirius10.net も今は、同じ IP アドレスなので、両方のメールを扱えるようにします。
動かすなら前も動かしていた postfix にします。今回は、暗号化も合わせて設定していきます。また、OB25P 対策として、OCN のサーバをリレーして送信できるようにします。
インストール
$ sudo apt-get install -y postfix libsasl2-modules dovecot-core dovecot-imapd dovecot-pop3d mutt
どの様に設定するか聞かれますが、あとで設定するので、設定なしを選びます。

新規ユーザが作成されたとき、Maildir が自動で作成されるように /etc/skel にMaildir を作成しておきます。ユーザの追加は、adduser を使います。(useradd では、ホームディレクトリは作成されません。)
$ sudo mkdir -p /etc/skel/Maildir/{new,cur,tmp}
$ sudo chmod -R 700 /etc/skel/Maildir/
設定
設定ファイルは、/etc/postfix/mail.cf です。コピーして修正していきます。
$ sudo cd /etc/postfix
$ sudp cp main.cf.proto main.cf
$ sudo vi main.cf
以下を設定します。
mail_owner = postfix
myhostname = mail.sirius10.net
mydomain = sirius10.net
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP
sendmail_path = /usr/sbin/postfix
newaliases_path = /usr/sbin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = postdrop
# html_directory =
# manpage_directory =
# sample_directory =
# readme_directory =
追記します。
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_auth_enable = yes
smtp_sasl_mechanism_filter = login plain
smtp_sasl_security_options=noanonymous
smtp_tls_wrappermode = yes
smtp_tls_security_level = encrypt
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_use_tls = yes
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
smtpd_tls_cert_file = /etc/letsencrypt/live/sirius10.net/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/sirius10.net/privkey.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_sasl_local_domain = $mydomain
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
/etc/postfix/master.cf を編集します。smtps のコメントを外すだけです。
$ sudo vi /etc/postfix/master.cf
smtps inet n - y - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
OB25P 対応
main.cf に relayhost を設定し、認証用に、/etc/postfix/sasl_passwd を作ります。
$sudo vi /etc/postfix/main.cf
relayhost を設定します。
relayhost = [smtp.ocn.ne.jp]:465
認証用のファイルを作成します。
$sudo vi /etc/postfix/sasl_passwd
内容は次のとおりです。
[smtp.ocn.ne.jp]:465 アカウント:パスワード
ハッシュを作成します。
$ sudo postmap sasl_passwd
また、現在の OCN では、ヘッダーに OCN のアドレスが無いと弾かれるようです。次の設定も必要でした。main.cf に追記します。
$ sudo vi main.cf
local_header_rewrite_clients = permit_mynetworks
sender_canonical_classes = envelope_sender
sender_canonical_maps = regexp:/etc/postfix/sender_maps
sender_maps ファイルを作ります。
$ sudo vi sender_maps
/^.*$/ OCNのメールアドレス
仮想サイトの設定
昔のドメイン宛のメールも受け取れるように、擬似的に仮想サイトを作成します。設定したメールアドレスのみ受け取ります。仮想サイトの設定用のファイルを作成して、main.cf に追加します。
$ sudo vi /etc/postfix/virtual
必要な数分のメールアカウントを書きます。
sirius10.dip.jp anything
メールアカウント@sirius10.dip.jp アカウント
ハッシュを作成し、main.cf に追加します。
$ sudo postmap virtual
$ /etc/postfix/main.cf
次の 1 行を追加します。
virtual_alias_maps = hash:/etc/postfix/virtual
Dovecot の設定
imap, pop3 と外部からメール受信ができるように Dovecot を設定していきます。
$ sudo vi /etc/dovecot/conf.d/10-master.conf
imap, pop3, smtp-auth をセキュリティを強化するように設定します。
service imap-login {
inet_listener imap {
port = 0
}
inet_listener imaps {
port = 993
ssl = yes
}
...
}
service pop3-login {
inet_listener pop3 {
port = 0
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
$ sudo vi /etc/dovecot/dovecot.conf
listen = *, ::
$ sudo vi /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
:
auth_mechanisms = plain login
$ sudo vi /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir
$ sudo vi /etc/dovecot/conf.d/10-ssl.conf
ssl_cert = </etc/letsencrypt/live/sirius10.net/fullchain.pem
ssl_key = </etc/letsencrypt/live/sirius10.net/privkey.pem
最後に postfix と devcot を再起動します。
$ sudo service postfix reload
$ sudo service dovecot restart
ルータの設定で、port 25, 465, 993 をメールサーバに向けて開放しました。
mutt を使って gmail へメールを送信してみましたが、ちゃんと届きました。また、gmail と hotmail から出してみましたが、ちゃんと受け取れているようです。メールフォームからのメールも届きました。
認証を強制しているので、スパムメールの一部はそれだけで弾かれているようです。
ディスカッション
コメント一覧
まだ、コメントがありません