PostfixとDovecotによるメールサーバの構築 その1

Tablet PC deals and Promotion
メール

前回まではWordPressのサイトをお名前.com VPSに移転したことを紹介しました。

これまではWordPressなどWebサーバ系のネタが多かったのですが、今回はメールサーバの構築についてメモを残しておきたいと思います。

今回の環境

今回メールサーバを構築する環境は次の通りです。

  • VPS: お名前.com VPS
  • OS: Debian GNU/Linux Jessie 64bit
  • IPアドレス: a.b.c.d
  • ホスト名: example.comとexample.net
    (ホスト名とIPアドレスは説明のための仮の名前とアドレスです。)

お名前.com VPSだと提供されるIPアドレスは1個です。しかし私はドメイン名を二つ持っているので、それぞれのドメイン名でメールを受信したいと思っています。

また、今回の環境ではホスト名=ドメイン名となってしまっています。

目標

今回構築するメールサーバでは次のような状況を実現したいと考えています。

  • example.com
    • 外部からfoo@example.comにメールが送信できること
    • 外部からfoo@example.comのメールが取得できること
    • foo@example.comからメールが送信できること
    • foo@example.comから送信したメールは送信元のホストがexample.comになっていること
    • bar@example.com宛のメールをfoo@example.comで受信できること
    • foo@example.com宛のメールを他のメールアドレスでも受信できること
  • example.net
    • 外部からbuz@example.netにメールが送信できること
    • 外部からbuz@example.netのメールが取得できること
    • buz@example.netからメールが送信できること
    • buz@example.netから送信したメールは送信元のホストがexample.netになっていること
    • qux@example.net宛のメールをbuz@example.netで受信できること
    • buz@example.net宛のメールを他のメールアドレスでも受信できること
  • localhost
    • foo@example.comにメールが送信できること
    • buz@example.netにメールが送信できること
    • 外部のメールアドレスにメールが送信できること

また、外部とexample.com, 外部とexample.netの通信はTLSで暗号化して保護するものとします。

DNSの設定内容

事前設定として自分のドメインを管理している業者(お名前.comなど)でDNSの設定を変更します。ポイントはMXレコードを設定すること、TXTレコードを使ってSPFレコードを設定することです。

MXレコード

MXレコードは、どのアドレスのメールをどのホストに配送すればよいのかを示す設定です。今回の例では@example.com宛のメールはexample.comに配送するので

example.com. 3600 IN MX 10 example.com.

というMXレコードが必要になります。一番左の列が「@example.com」宛のメールに関する設定だということを示し、一番右の列が配送先はexample.comであることを示しています。いずれも最後に「.」を付けるのを忘れないようにしましょう。

今回はexample.netというドメインも取り扱うので、example.netのDNSの設定でも同様に

example.net. 3600 IN MX 10 example.net.

のように設定しておきます。

SPFレコード

SPFレコードはメールの送信アドレス偽装を防止する手段の一つです。このメールサーバがどのIPアドレスからのメールを送信するかを宣言します(ほかにもいろいろ宣言できるのですが、今回はIPアドレスの宣言のみです)。

SPFレコードはTXTレコードの形で次のように設定します。

example.com. 3600 IN TXT "v=spf +ip:a.b.c.d -all"

一番左の列が、送信元アドレスの「@example.com」の場合の設定だということを示し、「+ip:a.b.c.d」でアドレスa.b.c.dから送信するということを示しています。最後の「-all」はそれ以外のすべてのIPアドレスは怪しいので無視してよい、ということをつたています。

今回はexample.netというドメインも取り扱うので、example.netのDNSの設定でも同様に

example.net. 3600 IN TXT "v=spf +ip:a.b.c.d -all"

のように設定しておきます。

実際の設定方法(お名前.com)

お名前.comでドメインを取得した場合の例で実際の設定方法を説明します。まずはお名前.com(http://www.onamae.com)にアクセスしてトップページに右上からログインを選択します。

お名前.com

するとドメインNaviのログイン画面になるので、お名前.comの会員IDとパスワードでログインします。

ドメインNaviログイン

ログインすると取得しているドメインが一覧で出ますので設定を変更したいドメインの一番右のボタン(「変更する」)を選択します。

ドメイン一覧

次の画面では左側にメニューがずらっと出てきてちょっと焦りますが、中段ぐらいにある「DNS関連機能の設定」を選択します。

ネームサーバの設定

これで設定画面にうるつと思いきやなぜかもう一度ドメインの選択を行います。

ドメインの選択

やっとこれでDNSレコードの設定メニューが出てきます。

DNSレコードの設定を選択

上記でDNSレコード設定を利用するの隣の「設定する」を選択すると、次のような画面になります。

DNSレコードの設定画面

この下にずらずらっと設定項目が続きますが、以降で説明します。

MXレコードの設定

やっとMXレコードの設定に入ります。

先ほどの「DNSレコード設定」の画面で「入力」という欄がありますので、ここを設定します。

MXレコードの設定

まず初めに「TYPE」の列で「MX」を選択します。

「ホスト名」の列はこのMXレコードがどのドメイン(メールアドレスの@マーク以降の文字)のメールの設定行っているのかを指定します。今回は「@example.com」のメールの設定なのでここは空欄のままとしておきます。

「VALUE」の列は、ホスト名の列で指定したドメインのメールをどのホストが処理するかを設定します。今回はexample.comがメールサーバのホスト名でもあるので「example.com」を入力します。

「優先」の列はとりあえず「10」で問題ありません。

ここまで入力したら「追加」」ボタンを押しておきます。

追加ボタンを押すと「追加」の欄にいま入力した内容が反映されます。

MXレコードの追加内容

次にSPFレコードの設定に進みます。

SPFレコードの設定

MXレコードの場合と同様に「入力」の欄で設定します。

SPFレコードの設定

今度ははず初めに「TYPE」の列で「TXT」を選択します。

「ホスト名」の列はこのSPFレコードがどのドメインから送信されるメールの設定を行っているかを設定します。今回はメールサーバがexample.comなので空欄のままとしておきます。

VALUEの列は重要です。このメールサーバから出ていくメールの送信元アドレスのドメインに関するルールを記載します。今回は送信元アドレスはすべてこのメールサーバのIPアドレスのはずなので、「v=spf +ip:a.b.c.d -all」と入力します。

ここまで入力したら「追加」」ボタンを押しておきます。

追加ボタンを押すと「追加」の欄にいま入力した内容が反映されます。

まとめ

今回はメールサーバの構築に必要なMXレコードの設定を行いました。

これはメールサーバを構築する前準備という感じです。この後はメールサーバのソフトウェアをインストールして行くのですが、長くなりそうなので記事を分割したいと思います。

次回はメールの送信を担うpostfixをインストールします。