メールサーバを立ち上げる(1)

2021年4月22日

MyDNS.JPのサービスで、DDNSのサブドメインを取得し、そのドメイン名を使用したホストのアドレスをDNSサーバで管理するところまで記載しました。

次に試してみたかったのが、メールサーバの構築です。

※以降の記載は、あくまでも仕組みを理解するための試験的な運用です。セキュリティ面に関しては、責任を負いかねます。

メールサーバを設置する

ESXi7.0上に立てた仮想マシン CentOS 7 へのインストールになります。WEBサーバとして、Let’s Encryptの証明書を発行したサーバへの導入です。今回、使用するのは SMTPサーバとしての Postfix と IMAPサーバとしての Devecot です。これらは、同じ仮想マシンに設置します。

Postfix

CentOS 7では、標準でインストールされていますが、使用するにあたっての設定は必要です。

/etc/postfix/main.cf (変更箇所のみ)

myhostname = mail.●●●.live-on.net
mydomain = ●●●.live-on.net
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
local_recipient_maps = proxy:unix:passwd.byname $alias_maps
mynetworks = 192.168.0.0/24
relay_domains = $mydestination
relayhost =
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP

smtpd_tls_cert_file = /etc/letsencrypt/live/www.●●●.live-on.net/cert.pem
smtpd_tls_key_file = /etc/letsencrypt/live/www.●●●.live-on.net/privkey.pem
smtpd_tls_security_level = may

最後の3行は、追加となる行で、TLS/SSL証明書に関する記述です。

当初、自己証明書での設定を考えていたんですが、WebサーバでLet’s Encryptの証明書を設定しましたので、「サーバの証明書」なら、使えるんじゃないか、と、実験です。

これが、 mail.●●●.live-on.net を合わせて申請した理由です。メールサーバのサーバ名は、この名前で設定しています。

設定に問題がないかは、

# postfix check

で可能です。なにも表示されなければ、問題なし、です。

設定ファイルの変更の次に、ファイアウォールの設定変更が必要です。後で必要になるので、送受共に変更しておきましょう。

# firewall-cmd --add-service=smtp
success
# firewall-cmd --add-service=pop3
success
# firewall-cmd --add-service=imaps
success
# firewall-cmd --runtime-to-permanent
success

設定を有効にするため、Postfixのサービスを再起動します。サーバ起動時に起動されますので、常時起動等の設定は不要です。

# systemctl restart postfix.service

dovecot

postfoxの設定の次に、POP/IMAPサーバのdovecotの環境を整えます。

インストールします。

# yum install dovecot

設定ファイルを変更します。

/etc/dovecot/dovecot.conf (変更箇所のみ)

#protocols = imap pop3 lmtp
protocols = imap pop3

次に、メールの保存方法の設定(変更)を行います。

/etc/dovecot/conf.d/10-mail.conf (変更箇所のみ)

#mail_location =
mail_location = maildir:~/Maildir

postfixで行った設定を行うだけです。

次に、TLS/SSL証明書の設定です。

/etc/dovecot/conf.d/10-ssl.conf (変更箇所のみ)

ssl_cert = </etc/letsencrypt/live/www.●●●.live-on.net/cert.pem
ssl_key = </etc/letsencrypt/live/www.●●●.live-on.net/privkey.pem

これも、Let’s Encryptで、mailサーバの証明書として取得したものを使用します。

設定が完了しましたら、dovecotサービスを起動させます。

# systemctl start dovecot.service

自動起動の設定もやっておきます。

# systemctl enable dovecot.service

今回は、各サービスの起動が出来たところまで。

メールサーバを立ち上げる(2)に続きます。