0.Fedoraでメールサーバの構築手順(概要)

 メールサーバの構築はセキュリティーまで考えると結構大変(特にSMTPが大変)です。
なのでいっぺんに全ての設定をせず、順を追って設定していきます。
 暗号化の設定も各章で行っているので暗号化させるには何が必要かわかるようになっている想定です。
必要な設定手順のところでリンク先の設定方法を確認してください。

構築環境(前提条件)
メールサーバ構築の最終目標
設定順序(構築手順)

構築環境(前提条件)

 まずは私がメールサーバを構築した構築環境(前提条件)を記載します。
 参考にしてもらって設定しても環境が違えば設定内容や設定しなければいけない項目も変わりますからね。

  1. サーバは1台(グローバルIPが1つだけ)しかない。(IPv4のみ。IPv6は払い出されないサービスなので。)
  2. サーバはNICを2つ持っていて固定グローバルIPとローカルIPを設定している。
  3. DNSの設定が正しく完了されている。
  4. メール送信だけでなく、自ドメイン宛のメールを受信するSMTPサーバーとしても使い、同一サーバにPOPサーバも構築する。
  5. 使用するドメインは管理者自身しか使っていない。なので・・・
     ・設定するドメインを使ってのメール送信。
     ・設定するドメイン宛のメール受信。
    この2つの送受信は管理者自身だけができればよい。
  6. 項番1にかかわってきますが、
    グローバルセグメントにおいて、プロバイダがOutbound Port 25 Blocking(OB25B)を行っていない事。
  7. SSL証明書の発行が完了している事。
     → Let's Encryptで証明書取得

メールサーバ構築の最終目標

 前提条件を踏まえて構築するメールサーバの最終的なやりたい事を簡単な図にしてみました。

クライアント端末からの送受信

  • メール送信時に暗号化させて送信させたい(SMTPs)
  • メール受信(POP3)時も暗号化させたい(POP3s)
  • ローカルセグメントからだけでなく家の外から(外出時)もある程度セキュアにメールの送受信できるようにしたい(SMTP-Auth)

SMTPサーバ同士の送受信(外部SMTPサーバとの送受信)

設定順序

では設定の順序です。
始めから最終形体の設定をしようとするとうまくいかないので順を追って設定していきます。

  1. Postfixを使ってSMTPサーバの構築
     25番ポートを使用してPostfix構築
  2. Dovecotを使ってPOP3サーバの構築
     110番ポートを使用してDovecot構築
  3. DovecotでPOP3 サーバの暗号化
     POP3 over SSL/TLS(POP3s 995番ポート)対応
  4. Postfixを使ってSMTPサーバの暗号化するサーバとして
     STARTTLS(SMTPs)Submission(587番ポート)などの対応
  5. Postfixを使ってSMTPサーバを暗号化する(クライアントとして
     外部SMTPサーバへの送信時も暗号化対応
  6. Dovecotを使ったSMTP-Auth(外出時もメールの送受信)
     メール送信時認証
  7. sieveを使った細かい転送設定(POPサーバ側でのフィルタリング(今後公開)
  8. クライアントからSMTP接続要求を受けた際に適用するアクセス制限
     接続IPアドレスによってREJECT(拒否)する。(ある国からのアクセスは拒否とか・・・)(今後公開)

上記の設定順序をイメージ化してみました。
図の概要としてはメールサービスをPostfixとDovecotで構築します。
そしてそれぞれのサービスに関連するポートをローカル側とグローバル側でどう開閉するかを表しました。

1&2. SMTP と POP3 サーバの構築

1.Postfixを使ってSMTPサーバ構築(メール送信に25番ポート)。
2.Dovecotを使ってPOP3サーバ構築(メール受信に110番ポート)
 これによって外部から自ドメイン宛のメールも受信する事ができます。

3.POP3 サーバの暗号化(POP3 over SSL/TLS 995番ポート)

 ・3.Dovecotを使ってPOP3sサーバ構築
  まずは比較的簡単なPOP3(110)をPOP3s(995)にして暗号化します。

4.Postfixを使ってSMTPサーバの暗号化する(サーバとして) (smtp-submission 587番ポート)対応

4.Postfixを使ってSMTPサーバの暗号化する(サーバとして)(smtpd_tls_〇〇パラメータ)
  →(言い換えると)Postfixから見て サーバ自身に送られてくるメールの暗号化

 ローカルセグメントエリアは、SMTP(25)をSMTPs(465)ではなく、submissionポート(587)を開放し、STARTTLSコマンドを有効にしての暗号化を行います。
 また、グローバルセグメントエリアはSMTP(25)を閉じると暗号化に対応していないドメインからのメールサーバから受け取れなくなってしまう可能性がある為SMTP(25)を開放したままにしてSTARTTLS対応にします。
 465ポートはこの環境手順では設定しません。(詳細はリンク先で・・・)

5.Postfixを使ってSMTPサーバを暗号化する(クライアントとして

5.Postfixを使ってSMTPサーバを暗号化する(クライアントとして)(smtp_tls_〇〇パラメータ)
 上記の項番4の設定ではSMTPサーバとして受信する際に暗号化する設定(smtpd_tls_ パラメータ)でした。
ここではSMTPサーバがクライアントとして外部SMTPサーバにメールを送信する際に暗号化する設定(smtp_tls_ パラメータ)になります。

6.Dovecotを使ったSMTP-Auth(外出時もメールの送受信)

6.Dovecotを使ったSMTP-Auth(外出時もメールの送受信)
 グローバルセグメント(外出時など)からでも、送受信の際にSMTP-Auth認証を行う事である程度セキュアに送受信できるようにします。

※注釈

SMTPサーバの「サーバとして」「クライアントとして」とは・・・

 SMTPサーバを構築してメールの送受信ができるようになったとします。
そこでWindows端末のメーラー(クライアント)から、xxxxx@yahoo.co.jp宛にメールを送信したとします。その場合、送信されたメールは
1.Windows端末(クライアント)からメールを送信して、構築したSMTPサーバが(サーバとして)受信します。
2.構築したSMTPサーバから(クライアントとして)メールを送信して、yahoo.co.jpのSMTPサーバが(サーバとして)受信します。

いわゆるSMTPサーバはクライアントとしても動きます。
詳細は項番5のページに記載しますが、Postfixの設定で
「サーバとしてのパラメータ(smtpd_xxxxx = )」と
「クライアントとしてのパラメータ(smtp_xxxx = )」で分かれています。

どうでもいい余談・・・

っていうかなぜ新しいPostfix関連の書籍が発売されないんでしょうか?
Postfix関連の書籍を何冊か持ってはいる。
2002年初版のもので、検索したりしても2004年発売のものとかしか見つからない。

 所持している2002年の本には「暗号化」や「SSL」という単語はどこにも見当たらない。そりゃそうだ。当時は回線もINS64とかの時代。今みたいに個人情報が!とか全く言われてなかった時代。
ブラウザに「https://xxx」なんて入れた記憶もない。(w

 この書籍を購入した時はバージョンもPostfix1.0くらいかな・・・
 今やバージョン3も出ている。暗号化について記載された書籍を出してくれ。
 オライリーのPostfixは版数は上がっているけど改定はされてないんぢゃないかな??
 そりゃ多少の暗号化などについての記載はあったと思うが、新しいパラメータとかについては一切書いてないからね・・・なので買う気にならなかった・・・。