Ubuntu 14.04でPostfixを送信専用SMTPサーバーとしてインストールおよび設定する方法

前書き

PostfixはMTA(Mail Transfer Agent)、電子メールの送受信に使用されるアプリケーションです。 このチュートリアルでは、ローカルアプリケーション、つまりPostfixがインストールされているのと同じサーバーにインストールされているアプリケーションのみでメールを送信できるように、Postfixをインストールして構成します。

なぜそれをしたいのですか?

既にメールの送受信にサードパーティのメールプロバイダーを使用している場合は、もちろん、独自のメールサーバーを実行する必要はありません。 ただし、電子メール通知を送信する必要があるアプリケーションをインストールしたクラウドサーバーを管理する場合、ローカルの送信専用SMTPサーバーを実行することは、サードパーティの電子メールサービスプロバイダーを使用するか、本格的なSMTPサーバーを実行する代わりに適しています。

電子メール通知を送信するアプリケーションの例はOSSECで、これは設定された電子メールアドレスに電子メールアラートを送信します(https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-ossec- security-notifications-on-ubuntu-14-04 [Ubuntu 14.04でOSSECセキュリティ通知をインストールおよび構成する方法])。 OSSECまたはその他の種類のアプリケーションは、サードパーティのメールプロバイダーのSMTPサーバーを使用してメールアラートを送信できますが、ローカル(送信専用)SMTPサーバーを使用することもできます。

このチュートリアルでは、Postfixを送信専用SMTPサーバーとしてインストールおよび設定する方法について学習します。

_ _ *注意:*ユースケースが単一のアドレスでサーバーから通知を受信する場合、スパムとしてマークされているメールはホワイトリストに登録できるため、重要な問題ではありません。

ユースケースが潜在的なサイトユーザーにメールを送信することである場合(掲示板のサインアップの確認メールなど)、サーバーのメールが正当と見なされる可能性が高くなるように、必ずステップ5 *を実行する必要があります。 サーバーのメールがスパムとしてマークされるという問題が引き続き発生する場合は、自分でさらにトラブルシューティングを行う必要があります。 _ _

前提条件

以下の前提条件を完了してください。

  • Ubuntu 14.04ドロップレット

  • https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-14-04 [初期セットアップ]をご覧ください。 つまり、 `+ sudo +`特権を持つ標準ユーザーアカウントが必要です。

  • * example.com *などのドロップレットを指す有効なドメイン名を持っている

  • サーバーのホスト名はこのドメインまたはサブドメインと一致する必要があります。 サーバーのホスト名を確認するには、コマンドプロンプトで「+ hostname +」と入力します。 出力は、* example.com *など、作成時にドロップレットに付けた名前と一致する必要があります。

すべての前提条件が満たされている場合、このチュートリアルの最初のステップの準備ができています。

ステップ1-Postfixをインストールする

このステップでは、Postfixのインストール方法を学びます。 メールのテストに必要なPostfixやその他のプログラムをインストールする最も効率的な方法は、次のように入力して `+ mailutils +`パッケージをインストールすることです。

sudo apt-get install mailutils

mailtuilsをインストールすると、Postfixがインストールされるだけでなく、Postfixが機能するために必要な他のいくつかのプログラムもインストールされます。 そのコマンドを入力すると、次のような出力が表示されます。

The following NEW packages will be installed:
guile-2.0-libs libgsasl7 libkyotocabinet16 libltdl7 liblzo2-2 libmailutils4 libmysqlclient18 libntlm0 libunistring0 mailutils mailutils-common mysql-common postfix ssl-cert

0 upgraded, 14 newly installed, 0 to remove and 3 not upgraded.
Need to get 5,481 kB of archives.
After this operation, 26.9 MB of additional disk space will be used.
Do you want to continue? [Y/n]

Enterキーを押してインストールします。 インストールプロセスの終わり近くに、次の画像のようなウィンドウが表示されます。 デフォルトのオプションは*インターネットサイト*です。 これがこのチュートリアルの推奨オプションです。Tabキーを押してからEnterキーを押します。

image:https://assets.digitalocean.com/articles/postfix_sendonly/1.png [メニューからインターネットサイトを選択し、TABを押して<Ok>を選択し、ENTER]

その後、次の画像のような別のウィンドウが表示されます。 システムメール名*は、作成時にドロップレットに割り当てた名前と同じである必要があります。 * mars.example.com *のようなサブドメインが表示されている場合は、 example.com *に変更します。 完了したら、Tabキーを押してからEnterキーを押します。

image:https://assets.digitalocean.com/articles/postfix_sendonly/2.png [ドメイン名を入力し、TABを押して<Ok>を選択し、ENTER]

インストールが正常に完了したら、ステップ2に進みます。

ステップ2-Postfixを構成する

この手順では、Postfixが実行されているサーバー、つまり* localhost *からのみメールを送信するリクエストを処理するようにPostfixを設定する方法を読みます。 そのためには、サーバーが内部通信に使用する仮想ネットワークインターフェースである_loopback interface_でのみリッスンするようにPostfixを設定する必要があります。 変更するには、nanoエディターを使用してメインのPostfix構成ファイルを開きます。

sudo nano /etc/postfix/main.cf

ファイルを開いた状態で、このコードブロックに表示されるエントリが表示されるまで下にスクロールします。

mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

「+ inet_interfaces = all」という行を「+ inet_interfaces = loopback-only」に変更します。 完了すると、ファイルの同じセクションが次のようになります。

mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces =

`+ loopback-only `の代わりに、 ` localhost +`を使用することもできます。これにより、変更されたセクションも読み取ることができます。

mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces =

ファイルの編集が完了したら、保存して閉じます(CTRL + Xを押し、続いてYを押し、次にENTERを押します)。 その後、次のように入力してPostfixを再起動します。

sudo service postfix restart

手順3-SMTPサーバーが電子メールを送信できることをテストする

このステップでは、Postfixが任意の外部メールアカウントにメールを送信できるかどうかをテストする方法を読みます。 手順1でインストールした `+ mailutils `パッケージの一部である ` mail +`コマンドを使用します。

テストメールを送信するには、次のように入力します。

echo "This is the body of the email" | mail -s "This is the subject line"

独自のテストを実行する際には、本文と件名のテキストをそのまま使用するか、好みに合わせて変更できます。 ただし、*の代わりに、ドメイン部分が gmail.com fastmail.com yahoo.com *、または使用する他のメールサービスプロバイダーになる有効なメールアドレスを使用します。

次に、テストメッセージを送信したメールアドレスを確認します。

受信ボックスにメッセージが表示されます。 そうでない場合は、スパムフォルダを確認してください。

注意:*この設定では、送信するテストメールの From フィールドのアドレスは*[email protected]*になります。 sammy *はLinuxユーザー名で、ドメイン部分はサーバーのホスト名です。 ユーザー名を変更すると、*差出人*アドレスも変更されます。

手順4-システムメールの転送

最後に設定するのは転送です。そのため、システムの* root *に送信されるメールは、個人の外部メールアドレスになります。

システムが生成したメールがあなたのメールアドレスに送信されるようにPostfixを設定するには、 `+ / etc / aliases +`ファイルを編集する必要があります。

sudo nano /etc/aliases

Ubuntu 14.04のデフォルトインストールでのファイルの全内容は、次のコードブロックに示されています。

# See man 5 aliases for format
postmaster:    root

この設定では、システムが生成した電子メールがルートユーザーに送信されます。 あなたがしたいのは、それらのメールがあなたのメールアドレスに転送されるように編集することです。 そのためには、ファイルを編集して次のようにします。

# See man 5 aliases for format
postmaster:    root
root:

*[email protected]*を個人のメールアドレスに置き換えます。 完了したら、ファイルを保存して閉じます。 変更を有効にするには、次のコマンドを実行します。

sudo newaliases

次のコマンドを使用してルートアカウントにメールを送信することで、動作することをテストできます。

echo "This is the body of the email" | mail -s "This is the subject line" root

あなたのメールアドレスでメールを受信する必要があります。 そうでない場合は、スパムフォルダを確認してください。

(オプション)ステップ5-ドメインをスパマーから保護する

このステップでは、スパムへの使用からドメインを保護するのに役立つ記事へのリンクが表示されます。 これはオプションですが、強く推奨される手順です。これは、正しく構成されている場合、ドメインから発信されたと思われるアドレスでスパムを送信することが困難になるためです。

これらの追加の構成手順を実行すると、一般的なメールプロバイダーは、スパムとしてマークするのではなく、サーバーからのメールを正当なメールとして見る可能性が高くなります。

2番目の記事はDebian Wheezy向けに書かれていますが、Ubuntu 14.04にも同じ手順が適用されます。

Related