メールサーバ(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 から出してみましたが、ちゃんと受け取れているようです。メールフォームからのメールも届きました。

 認証を強制しているので、スパムメールの一部はそれだけで弾かれているようです。

サーバ設定

Posted by sirius