序章
Mail-in-a-Box は、Ubuntuサーバーを複数のドメインのフルスタックメールソリューションに簡単に変換できるオープンソースソフトウェアバンドルです。
サーバーを保護するために、Mail-in-a-BoxはFail2banとSSL証明書(デフォルトでは自己署名)を利用します。 必要なすべてのポートを開いた状態でUFWファイアウォールを自動構成します。 そのスパム対策およびその他のセキュリティ機能には、グレーリスト、SPF、DKIM、DMARC、便宜的なTLS、強力な暗号、HSTS、およびDNSSEC(DANE TLSAを使用)が含まれます。
Mail-in-a-Boxは、SMTP、IMAP / POP、スパムフィルタリング、Webメール、さらにはDNSをオールインワンソリューションの一部として処理するように設計されています。 サーバー自体がDNSを処理しているため、メール用に最適化された既製のDNSソリューションを利用できます。 基本的に、これは、手動で調査して設定することなく、電子メールの高度なDNSレコード(SPFおよびDKIMレコードを含む)を取得できることを意味します。 後で必要に応じてDNS設定を微調整できますが、デフォルトは、自分のメールをホストしているほとんどのユーザーにとって非常にうまく機能するはずです。
このチュートリアルでは、Ubuntu14.04×86-64を実行しているDigitalOceanDropletでMail-in-a-Boxを設定する方法を示します。
前提条件
Mail-in-a-Boxは、利用可能なリソースに非常にこだわっています。 具体的には、次のものが必要です。
- Ubuntu14.04×86-64ドロップレット
- サーバーには少なくとも768MBのRAMが必要です(1 GBを推奨)
- サーバーがこのチュートリアルに記載されている手順に従って設定されていることを確認してください。これには、sudoユーザーの追加やrootユーザー(およびSSHキーが設定されている場合はすべてのユーザー)のパスワードSSHアクセスの無効化が含まれます。
- DigitalOcean Dropletを設定するときは、名前をbox.example.comに設定する必要があります。 ホスト名の設定については、このチュートリアルの後半で説明します
- 詳細については後で説明しますが、ドメインレジストラは、ドロップレットで独自のDNSをホストできるように、カスタムネームサーバーとグルーレコードの設定をサポートする必要があります。 バニティネームサーバーという用語が頻繁に使用されます
- (オプション)自己署名証明書の代わりに使用するSSL証明書を購入します。 これは実稼働環境に推奨されます
RAM要件では、RAM要件が満たされない場合、インストールスクリプトは次の出力で中止されます。
ErrorYour Mail-in-a-Box needs more memory (RAM) to function properly.
Please provision a machine with at least 768 MB, 1 GB recommended.
This machine has 513 MB memory
これに着手する前に、1GBのRAMを搭載したUbuntuサーバーがあることを確認してください。
この記事では、メールサーバーを設定するドメインがexample.comであると想定します。 もちろん、これを実際のドメイン名に置き換えることが期待されています。
手順1—ホスト名を構成する
このステップでは、ホスト名がまだ設定されていない場合に、ホスト名を正しく設定する方法を学習します。 次に、/etc/hosts
ファイルを変更して一致させます。
これ以降は、DigitalOceanアカウントにログインし、次を使用してSSH経由でsudoユーザーとしてサーバーにログインしていることを前提としています。
- ssh sammy@your_server_ip
公式には、サーバーのホスト名をbox.example.com
に設定することをお勧めします。 これは、DigitalOceanダッシュボードに表示されるドロップレットの名前でもある必要があります。 ドロップレットの名前がドメイン名だけに設定されている場合は、ドロップレットの名前をクリックして名前を変更し、[設定]>[名前の変更]をクリックします。
ドロップレットの名前を推奨どおりに設定した後、次のコマンドを入力して、/etc/hostname
ファイルに表示されるものと一致することを確認します。
- hostname
出力は次のようになります。
Outputbox.example.com
出力がDigitalOceanダッシュボードに表示される名前と一致しない場合は、次のように入力して修正します。
- sudo echo "box.example.com" > /etc/hostname
手順2— / etc/hostsファイルを変更する
/etc/hosts
ファイルは、ホスト名をサーバーのIPアドレスに関連付けるように変更する必要があります。 編集するには、nanoまたはお気に入りのエディターで次のコマンドを使用して開きます。
- sudo nano /etc/hosts
IPv4アドレスを変更して、次のようにします。
127.0.0.1 localhost.localdomain localhost
your_server_ip box.example.com box
localhost.localdomain localhost
行を正確にコピーできます。 2行目で独自のIPとドメインを使用します。
ファイルを保存して閉じます。
ステップ3—Glueレコードを作成する
ドメインレジストラによって提供されるような外部DNSサービスで、サーバーのすべてのDNS解決を処理することは可能ですが、DNSの責任をMail-in-a-Boxサーバーに委任することを強くお勧めします。
つまり、Mail-in-a-Boxを使用する場合は、グルーレコードを設定する必要があります。 グルーレコードを使用すると、サーバーを安全かつ正確に電子メール用にセットアップするのが簡単になります。 この方法を使用する場合、ターゲットドメインを使用しているアクティブなWebサイトがある場合でも、すべてのDNSの責任をMail-in-a-Boxサーバーに委任することが非常に重要です。
ドメインにアクティブなWebサイトがある場合は、Mail-in-a-Boxサーバーに適切な追加のDNSレコードを設定してください。 そうしないと、ドメインがWebサイトに解決されません。 既存のDNSレコードをコピーして、すべてが同じように機能することを確認できます。
グルーレコード(プライベートネームサーバー、バニティネームサーバー、子ネームサーバーとも呼ばれます)の設定は、ドメイン登録事業者で行う必要があります。
グルーレコードを設定するには、次のタスクを完了する必要があります。
-
接着剤の記録自体を設定します。 これには、サーバーの完全修飾ホスト名に加えて、ns1およびns2プレフィックスをそのIPアドレスに関連付けるカスタムネームサーバーアドレスの作成が含まれます。 これらは次のようになります。
- ns1.box。example.com your_server_ip
- ns2.box。example.com your_server_ip
-
DNSの責任をMail-in-a-Boxサーバーに転送します。
- example.com NSns1.box。example.com
- example.com NSns2.box。example.com
注:両方のタスクを正しく完了する必要があります。 そうしないと、サーバーはメールサーバーとして機能できなくなります。 (または、適切なMX、SPF、DKIMなどのすべてのレコードを別のネームサーバーに設定することもできます。)
このプロセスに含まれる正確な手順は、ドメインレジストラによって異なります。 この記事に記載されている手順がお客様の手順と一致しない場合は、ドメインレジストラのテクニカルサポートチームにご連絡ください。
例:Namecheap
まず、ドメインレジストラのアカウントにログインします。 ドメインレジストラのアカウントダッシュボードがどのように表示されるかは、使用しているドメインレジストラによって異なります。 この例ではNamecheapを使用しているため、このチュートリアルで使用されている手順と画像は、Namecheapアカウントをお持ちの場合とまったく同じです。 別のレジストラを使用している場合は、テクニカルサポートに電話するか、ナレッジベースを調べて、グルーレコードを作成する方法を学習してください。
ログイン後、管理しているドメインのリストを見つけて、ターゲットドメインをクリックします。 つまり、メールサーバーのセットアップに使用しようとしているものです。
ネームサーバーのアドレス情報を変更できるメニュー項目を探します。 Namecheapダッシュボードでは、そのメニュー項目は詳細オプションメニューカテゴリの下の NameserverRegistrationと呼ばれます。 次のようなインターフェイスが表示されます。
サーバー用に2つのグルーレコードを設定します。
- ns1.box.example.com
- ns2.box.example.com
カスタムフィールドは1つしか提供されていないため、順番に構成する必要があります。 次の画像に示すように、番号1が表示されている場所にns1.boxと入力し、[IPアドレス]フィールドにMail-in-a-BoxサーバーのIPアドレスを入力します(番号2で示されます)。 最後に、 Nameserversの追加ボタンをクリックして、レコード(番号 3 )を追加します。
同じドメイン名とIPアドレスとともにns2.boxを使用していることを確認して、他のレコードについても繰り返します。
両方のレコードが作成されたら、DNSをWebホストに転送という別のメニューエントリを探します。 下の画像に示すようなウィンドウが表示されます。 カスタムDNSオプションを選択し、最初の2つのフィールドに入力します。
- ns1.box.example.com
- ns2.box.example.com
クリックして変更を適用します。
注:ここで入力するカスタムDNSサーバーは、Nameserver登録用に指定したものと同じである必要があります。
DNSへの変更は、伝播するのに少し時間がかかります。 最大24時間かかる場合がありますが、テストドメインに加えられた変更が反映されるまでに約15分しかかかりませんでした。
whatsmydns.net にアクセスすると、DNSの変更が反映されていることを確認できます。 ターゲットドメインのAおよびMXレコードを検索します。 これらがこのステップで設定したものと一致する場合は、ステップ4に進むことができます。 それ以外の場合は、この手順をもう一度実行するか、レジストラに連絡して支援を求めてください。
ステップ4—Mail-in-a-Boxをインストールする
このステップでは、スクリプトを実行して、DropletにMail-in-a-Boxをインストールします。 Mail-in-a-Boxインストールスクリプトは、本格的な電子メールサーバーを実行するために必要なすべてのパッケージをインストールするため、簡単なコマンドを実行してプロンプトに従うだけです。
サーバーにまだログインしていると仮定して、ホームディレクトリに移動します。
- cd ~
Mail-in-a-Boxをインストールします。
- curl -s https://mailinabox.email/bootstrap.sh | sudo bash
スクリプトは、次の画像の紹介メッセージでプロンプトを表示します。 ENTER
を押します。
これで、最初の電子メールアドレスを作成するように求められます。このアドレスは、後でシステムにログインするために使用します。 contact@example.comまたはドメインの別のメールアドレスを入力できます。 提案されたメールアドレスを受け入れるか変更して、ENTER
を押します。 その後、メールアカウントのパスワードを指定して確認するように求められます。
電子メールの設定後、サーバーのホスト名を確認するように求められます。 手順1で設定したものと一致する必要があります。この例では、box.example.comです。 ENTER
を押します。
次に、国を選択するように求められます。 矢印キーを使用して上下にスクロールして選択します。 正しい選択をした後、ENTER
を押します。
ある時点で、次のプロンプトが表示されます。
OutputOkay. I'm about to set up contact@example.com for you. This account will also have access to the box's control panel.
password:
デフォルトの電子メールアカウントのパスワードを指定します。これは、デフォルトのWebインターフェイス管理者アカウントにもなります。
インストールが正常に完了すると、次のようなインストール後の出力が表示されます。
Outputmail user added
added alias hostmaster@box.example.com (=> administrator@box.example.com)
added alias postmaster@example.com (=> administrator@box.example.com)
added alias admin@example.com (=> administrator@box.example.com)
updated DNS: example.com
web updated
alias added
added alias admin@box.example.com (=> administrator@box.example.com)
added alias postmaster@box.example.com (=> administrator@box.example.com)
-----------------------------------------------
Your Mail-in-a-Box is running.
Please log in to the control panel for further instructions at:
https://your_server_ip/admin
You will be alerted that the website has an invalid certificate. Check that
the certificate fingerprint matches:
1F:C1:EE:C7:C6:2C:7C:47:E8:EF:AC:5A:82:C1:21:67:17:8B:0C:5B
Then you can confirm the security exception and continue.
ステップ5—Mail-in-a-Boxダッシュボードにログインする
次に、Mail-in-a-Boxの管理インターフェイスにログインして、新しい電子メールサーバーについて理解します。 管理インターフェースにアクセスするには、インストール後の出力で提供されるURLを使用します。 これは次のようになります。
https://your_server_ip/admin#
HTTPSと自己署名証明書が使用されたため、ブラウザウィンドウにセキュリティ警告が表示されます。 セキュリティ例外を作成する必要があります。 それがどのように行われるかは、使用しているブラウザによって異なります。
たとえば、Firefoxを使用している場合は、次の画像に示すおなじみの警告が表示されたブラウザウィンドウが表示されます。
証明書を受け入れるには、 I Understand the Risks ボタンをクリックしてから、 AddExceptionボタンをクリックします。
次の画面で、証明書のフィンガープリントがインストール後の出力のフィンガープリントと一致することを確認してから、セキュリティ例外の確認ボタンをクリックします。
例外が作成されたら、インストール時に作成された電子メールアカウントのユーザー名とパスワードを使用してログインします。 ユーザー名はcontact@example.com
のような完全なメールアドレスであることに注意してください。
ログインすると、システムステータスチェックが開始されます。 Mail-in-a-Boxは、グルーレコードを含むサーバーのすべての側面が正しく構成されていることを確認します。 trueの場合、SSL証明書に関連する部分を除いて、緑の海(および黄緑色)のテキストが表示されます。これは赤で表示されます。 再起動に関するメッセージが表示される場合もありますが、これは対処できます。
注:構成されたドメインのDNS MXレコードが正しくないことに関する出力が赤で表示されている場合は、手順3が正しく完了していません。 その手順に再度アクセスするか、レジストラの技術サポートチームに連絡して支援を求めてください。
表示される赤いテキストがSSL証明書によるものだけの場合は、おめでとうございます。 これで、Mail-in-a-Boxを使用して独自のメールサーバーを正常にセットアップできました。
このセクションに再度アクセスする場合(たとえば、DNSが伝播するのを待った後)、システム>ステータスチェックの下にあります。
ステップ6—ウェブメールにアクセスしてテストメールを送信する
ウェブメールインターフェースにアクセスするには、上部のナビゲーションバーから [メール]>[手順]をクリックし、そのページに表示されているURLにアクセスします。 次のようになります。
https://box.example.com/mail
以前に設定したメールアドレス( @ example.com の部分を含む)とパスワードでログインします。
Mail-in-a-boxは、ウェブメールアプリとしてRoundcubeを使用します。 テストメールを外部のメールアドレスに送信してみてください。 次に、Mail-in-a-Boxサーバーによって管理されているアドレスに新しいメッセージを返信または送信します。
送信メールはほぼすぐに受信されますが、Mail-in-a-Boxサーバーでグレーリストが有効になっているため、受信メールが表示されるまでに約15分かかります。
DNSが正しく設定されていない場合、これは機能しません。
テストメッセージの送信と受信の両方ができる場合は、独自の電子メールサーバーを実行しています。 おめでとう!
(オプション)ステップ7 —SSL証明書をインストールします
Mail-in-a-boxは、デフォルトで独自の自己署名証明書を生成します。 このサーバーを実稼働環境で使用する場合は、公式のSSL証明書をインストールすることを強くお勧めします。
まず、証明書を購入します。 または、無料の署名付きSSL証明書を作成する方法については、VPSチュートリアルで無料の署名付きSSL証明書を使用してApacheを設定する方法を参照してください。
次に、Mail-in-a-Box管理ダッシュボードから、上部のナビゲーションメニューからシステム>SSL証明書を選択します。
そこから、適切なドメインまたはサブドメインの横にある証明書のインストールボタンを使用します。 証明書とチェーン証明書をコピーして、提供されたテキストフィールドに貼り付けます。 最後にインストールボタンをクリックします。
これで、あなたとあなたのユーザーはブラウザの警告なしにウェブメールと管理パネルにアクセスできるはずです。
結論
Mail-in-a-Boxサーバーにドメインと追加の電子メールアドレスを追加し続けるのは簡単です。 新規または既存のドメインに新しいアドレスを追加するには、管理ダッシュボードのメール>ユーザーから別のメールアカウントを追加するだけです。 メールアドレスが新しいドメインにある場合、Mail-in-a-boxはそれに適切な新しい設定を自動的に追加します。
新しいドメインを追加する場合は、ドメインのネームサーバーをns1.box.example.comおよびns2.box.example.com(設定したものと同じ)に設定してください。ドメインレジストラで(最初のドメインの場合は先に)。 ドロップレットは、新しいドメインのすべてのDNSを処理します。
現在のDNS設定を確認するには、システム>外部DNSにアクセスしてください。 独自のエントリを追加するには、システム>カスタムDNSにアクセスしてください。
Mail-in-a-Boxは、この記事の範囲を超える機能も提供します。 これは、ownCloudの好意により、ホストされた連絡先およびカレンダーマネージャーとして機能できます。 静的なWebサイトをホストするためにも使用できます。
Mail-in-a-Boxの詳細については、プロジェクトのホームページを参照してください。