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 @ | |
CNAME | @ |
設定方法は以下の記事がわかりやすいです.
ウェブとメールを別々のサーバで運営したい?・・・それ,ゾーン設定で出来ます! | さくらのナレッジ
サーバの各種設定
詳しくは参考記事を見てください.(丸投げ)
- メールサーバー構築 (Postfix+Dovecot) | CentOS で自宅サーバ構築
- メールサーバー間通信内容暗号化 (Postfix+Dovecot+OpenSSL+Certbot) | CentOS で自宅サーバ構築
最後に
なお,この通り設定した結果,なぜかメールが受信できない模様.Postfix でエラーがでてるのはなんだろうか.