なぜ、メールサーバー構築は「最難関」なのか
こんにちは!「リナックス先生」です。
今回から始まる新連載は、Linuxサーバー構築のラスボスとも言える「自作メールサーバー」への挑戦です。
- 第1回(今回):設計・DNS編 – Gmailに届くインフラ作り
- 第2回:送信編 (Postfix) – 不正中継を防ぐ鉄壁の送信サーバー
- 第3回:受信編 (Dovecot) – 盗聴不可能なIMAP環境
- 第4回:信頼性編 – SPF・DKIM・DMARCフル装備
- 第5回:防衛編 – スパムとウイルスを撃ち落とす
先生、ついに来ましたね!kou-kun@linux-koubou.com みたいな自分専用のメールアドレスを持つのが夢だったんです。
でも、ネットで調べると「自作メールサーバーはやめておけ」「届かないから無駄だ」って意見ばかりで…。
初心者には無理なんでしょうか?
諦めるのは早いわ。
確かに昔と違って、今はGmailやOutlookの「スパム判定」が非常に厳しくなっているから、ただソフトを入れただけでは1通も届かないわ。
でも、「プロバイダが求めているセキュリティ要件」を一つずつクリアしていけば、初心者でも必ず信頼性の高いメールサーバーは作れるの。
この連載では、その要件を全て満たす「最強のサーバー」を作るわよ!
1. 全体像を理解する:メールが届く仕組み
作業を始める前に、今回構築するシステムの全体像を頭に入れましょう。
メールサーバーは主に2つのソフトウェアで構成されます。
登場人物(ソフトウェア)
- Postfix (ポストフィックス):
メールの「送信」と「転送」を担当するソフトです。郵便局の配送トラックのような役割です。
専門用語では MTA (Mail Transfer Agent) と呼びます。 - Dovecot (ダブコット):
届いたメールをユーザーのポストに入れ、スマホやPCから「受信」できるようにするソフトです。
専門用語では MDA (Mail Delivery Agent) と呼びます。 - DNS (Domain Name System):
メールの宛先(住所)を特定するための電話帳です。ここが間違っていると、メールは迷子になります。
2. 運命を分ける「VPS選び」の2大条件
メールサーバー構築において、最も重要なのが「どこのサーバー(VPS)を借りるか」です。
不適切なVPSを選んでしまうと、どれだけ完璧に設定してもメールを送ることができません。
必ず以下の2点を確認してください。
条件①:25番ポート(Outbound Port 25)が使えるか?
メールサーバー同士が通信する際、「25番ポート」という扉を使います。
しかし、世の中のスパムメールの大半はこのポートから送られるため、多くのクラウド事業者(AWS, GCP, Azureの初期状態など)や家庭用プロバイダは、このポートを封鎖しています(OP25B)。
【対策】
「メールサーバー構築OK」「25番ポート開放可能」と明記されている国内VPSを選びましょう。
※多くのVPSでは、契約直後は塞がれていても、サポートに申請すれば開放してくれるケースがあります。
条件②:逆引き設定(PTRレコード)ができるか?
ここが初心者最大の鬼門です。
通常、ドメイン名からIPアドレスを調べるのを「正引き」と言いますが、メールの世界では「IPアドレスからドメイン名を調べる(逆引き)」ことが非常に重要視されます。
なぜ逆引きが必要?
Gmailなどの受信サーバーは、メールを受け取った時、「こいつは名乗っているドメインと、IPアドレスの持ち主が一致しているか?」を確認します。
もし逆引き設定がされていないと、「身元不明の怪しいサーバー」として即座にブロックされます。
【対策】
VPSの管理画面から、IPアドレスに対するホスト名(逆引きホスト名)を自由に変更できる業者を選んでください。
3. DNSレコードの設定(インターネット上の身分証明)
VPSを契約し、独自ドメイン(例:linux-koubou.com)を取得したら、まずはDNSの設定を行います。
これはサーバー内部の設定ではなく、ドメイン管理会社(お名前.com、Cloudflare、Xserverドメインなど)の管理画面で行う作業です。
前提条件:
ドメイン:example.com
VPSのIPアドレス:203.0.113.10
① Aレコード(サーバーの住所)
メールサーバー自身の名前(FQDN)を決めます。慣例的に mail というサブドメインを使います。
| ホスト名 | 種別 | 値 (IPアドレス) | TTL |
| A | 203.0.113.10 | 3600 |
② MXレコード(郵便局の指定)
「@example.com 宛てのメールは、どのサーバーに届ければいいか」を世界中に知らせる設定です。
| ホスト名 | 種別 | 値 (配送先サーバー名) | 優先度 |
| @ (空欄) | MX | mail.example.com | 10 |
※値にはIPアドレスではなく、Aレコードで設定したドメイン名(mail.example.com)を指定するのがルールです。
③ PTRレコード(逆引き設定)
これはドメイン管理会社ではなく、VPSのコントロールパネルで行います。
「IPアドレス:203.0.113.10」の逆引きホスト名を mail.example.com に設定してください。
設定確認コマンド
設定が反映されたか確認しましょう。WindowsのコマンドプロンプトやMacのターミナルで実行します。
# 正引きの確認(IPが返ってくればOK) nslookup mail.example.com # MXレコードの確認 nslookup -type=mx example.com # 逆引きの確認(ドメイン名が返ってくればOK) # Linuxの場合 dig -x 203.0.113.10 # Windowsの場合 nslookup 203.0.113.10
4. サーバーの初期設定(ホスト名の確定)
DNSの伝播を待つ間に、サーバー(VPS)内部の設定を進めます。
SSHでログインして、以下の作業を行ってください。
ホスト名の設定
サーバー自身に「自分の名前は mail.example.com だ」と認識させます。
これがDNSの設定と食い違っていると、Postfixがエラーを起こします。
# ホスト名を設定 hostnamectl set-hostname mail.example.com # 確認 hostname # -> mail.example.com と表示されればOK
Hostsファイルの編集
自分自身の名前解決を高速化するため、/etc/hosts を編集します。
vi /etc/hosts
以下のように、自分のIPアドレスとホスト名を追記してください。
127.0.0.1 localhost localhost.localdomain ::1 localhost localhost.localdomain # ここを追加 203.0.113.10 mail.example.com mail
保存したら、ping mail.example.com を実行して、自分自身に応答があるか確認しましょう。
5. SSL証明書の取得(通信の暗号化)
かつてのメールは平文(暗号化なし)で送受信されていましたが、今はSSL/TLS暗号化が必須です。
暗号化されていないメールサーバーには、iPhoneのメールアプリなどが接続を拒否することさえあります。
無料で使える「Let’s Encrypt」を使って、公的な証明書を取得しておきましょう。
Certbotのインストール
OSによってコマンドが異なります。
AlmaLinux / Rocky Linux / RHEL系:
dnf install epel-release dnf install certbot
Ubuntu / Debian系:
apt update apt install certbot
証明書の取得(Standaloneモード)
まだWebサーバーが動いていないこの段階では、Certbot自身が一時的なWebサーバーとなって認証を行う「Standaloneモード」が最も簡単です。
※Firewallで80番ポートが閉じている場合は、一時的に開ける必要があります。
# Firewallで80番を開ける(AlmaLinuxの場合) firewall-cmd --add-service=http --permanent firewall-cmd --reload # 証明書の取得 certbot certonly --standalone -d mail.example.com
メールアドレスの登録などを求められるので入力して進めます。Congratulations! と表示されれば成功です。
取得したファイルの確認
以下の場所に証明書が保存されています。メモしておきましょう。
- 証明書(フルチェーン):
/etc/letsencrypt/live/mail.example.com/fullchain.pem - 秘密鍵:
/etc/letsencrypt/live/mail.example.com/privkey.pem
この2つのファイルパスは、次回以降のPostfixとDovecotの設定で必ず使います。
第1回まとめ:見えない「信頼」を築く
お疲れ様でした!
まだメールを送ることはできませんが、これで世界中のメールサーバーと対等に付き合うための「身分証明書」が揃いました。
【本日の成果チェックリスト】
- VPS選定: 25番ポートが使えて、逆引き設定ができるVPSを用意した。
- DNS設定:
mail.example.comのAレコードとMXレコードを設定した。 - 逆引き設定: VPS管理画面でIPアドレスとホスト名を紐付けた。
- ホスト名設定: サーバーの
hostnameをDNSと一致させた。 - SSL証明書: Let’s Encryptで正規の証明書を取得した。
なるほど…。
「メールサーバーを作る」っていうから、いきなりソフトをインストールするのかと思ってました。
でも、このDNS設定や逆引き設定がないと、そもそも相手に届かない「怪しいサーバー」になっちゃうんですね。
下準備の大切さがわかりました!
その通りよ、コウ君。
家を建てる時の「基礎工事」と同じで、ここがしっかりしていないと、後で何をしても崩れてしまうの。
さて、次回はいよいよ送信サーバーソフト「Postfix」のインストールよ!
黒い画面での設定ファイル編集が続くけど、私がついてるから大丈夫。楽しみにしていなさい!
▼メールサーバー構築のプロが選ぶVPS
逆引き設定(PTRレコード)が管理画面から即時反映され、安定した通信品質でGmailへの到達率も高い、Linux工房推奨のVPSはこちらです。



コメント