CentOS7でメールサーバを構築する

ドメインを契約すれば,メールサーバを構築して自分だけのメールアドレスを運用することができます.(G Suite を利用する手も...)

設定すること

  • Postfix
  • Dovecot
  • SMTP
  • ファイアウォール
  • SSL/TLS (+ cron)
  • DNS

細かい設定方法は下のほうにあります.

Postfix, Dovecot

メールの送受信に使います.

SMTP

迷惑メールなどの踏み台にされることが増えたため,メールを送信する際に SMTP 認証で送信元ユーザーを認証するようになりました.

以前は TCP 25 番ポートを利用してメールを送信してましたが,最近は上記理由により TCP 587 番ポート (サブミッションポートというらしい) を使うことが増えているようです.

ファイアウォール

通常サーバは不要なポートを閉じてセキュリティを高めているので,メールの送受信に使うポートは自分で開放しておく必要があります.

Web サーバ

  • TCP 80: HTTP
  • TCP 443: HTTPS

SSL/TLS 通信に使う証明書を Web サーバを介して発行するときなどで必要です.

Postfix

  • TCP 25: SMTP (OP25B で弾かれる?)
  • TCP 587: SMTP
  • TCP 465: SMTPS

SSL/TLS なしでは 25, 587 を使います.

SSL/TLS ありでは 587 は閉じ,465 を使います.25 は使うので閉じてはいけません.

Dovecot

  • TCP 110: POP3
  • TCP 143: IMAP
  • TCP 995: POP3S
  • TCP 993: IMAPS

SSL/TLS 通信には下二つのポート開放が必要です.

SSL/TLS

証明書なしでもメールの送受信はできますが,セキュリティは大切なので設定しておきたいところです.

証明書は自作のもの (いわゆるオレオレ証明書) と各機関が発行する証明書があります.

有料で購入するものですが,Let's Encrypt の無料証明書も使えるようです.その場合は 3 か月で期限が切れるため,cron で自動更新を設定するといいでしょう.

DNS

正しく設定しないとメールサーバを認識してもらえません.私は @mktia.com で利用するために次のように設定しています.

エントリ タイプ データ
@ A 123.456.789.012
MX 10 @
mail CNAME @

設定方法は以下の記事がわかりやすいです.

ウェブとメールを別々のサーバで運営したい?・・・それ,ゾーン設定で出来ます! | さくらのナレッジ

サーバの各種設定

詳しくは参考記事を見てください.(丸投げ)

最後に

なお,この通り設定した結果,なぜかメールが受信できない模様.Postfix でエラーがでてるのはなんだろうか.