CentOSでメールサーバーを構築。Postfix/Dovecotでメールの送受信を行う(メールサーバー構築 2)

2018/10/25 CentOS, Dovecot, Linux, Postfix, サーバー構築

mail-postfix02-top2
前回の記事ではCentOSにインストールしたPostfixでメールを送信できるようにするところまでの設定手順を紹介しました。今回は同じ環境を使ってメールの送受信ができるところまで設定を行います。勿論、外部からのメールを受け取ることもできる構成です。
この段階まで設定頂くと、メールサーバーとしての運用が出来る状態になります。
メールサーバーというと、設定にやや敷居が高いように思われがちですが、意外と簡単に構築することが出来ます。段階的に構築を進めていきますので、先ずはこの段階まで、設定を行ってみて下さい。

スポンサーリンク

目次

1.送受信できるメールサーバーを設定する環境

今回の記事で構築を行う環境は、基本的に送信専用のメールサーバーを設定した前回の記事
>「CentOSとPostfixで送信専用のメールサーバーを構築する。(メールサーバー構築 1)」
を踏襲しています。前回の記事では以下の前提条件を元に設定を行いました。確認の意味で再度、記載しておきます。

  • サーバーが配置されているネットワークはインターネット上として、グローバルの固定IPが割り当てられています。
  • ドメインはtestdom.comを利用します。
  • ホスト名にはmailを設定しています。
  • メールサーバーは配送専用として、リレーなどは出来ない構成とします。

メールサーバーについては、配送専用として設定されていますので、これを送受信可能な状態に設定を行っていきます。

1-1.MX(Mail Exchanger)レコードの設定確認

メールサーバーでメールを送受信するためには利用するドメインにMXレコード(Mail Exchanger)が設定されている必要があります。本記事の環境ではtestdomのMXレコードとしてmail.testdom.comを設定しています。
※ドメインのMXレコード設定は、ご利用のドメイン業者やDNSサーバーによって異なるため、本記事では割愛しています。

1-1-1.hostコマンドによる正引きの確認(Linux)

LinuxではhostコマンドによるMXレコードの確認が可能です。使い方はhostコマンドにドメイン名を付けて実行します。
尚、hostコマンドはデフォルトでインストールされていないので、必要に応じてyumコマンドでbind-utilsをインストールします。

bind-utilsがインストールされると、hostコマンドが利用できるようになります。”testdom.com”のMXレコードを確認する場合、以下のようにコマンドを実行します。

上記のようにドメイン名に対して設定したMXレコードが表示されれば、DNSの設定は完了しています。
もしホスト名が見つからないという警告が表示された場合には、ご利用のDNS設定を見直して下さい。ここでは正常に確認ができたという前提で先へ進めていきます。

2.メール受信用とSMTP認証用パッケージ dovecotのインストール

本章ではメールの受信(POP3/IMAP4)に必要なパッケージ”dovecot”の導入手順について説明していきます。本記事ではメールを受信する際に認証を行うように設定しますが、送信時に認証を行うSMTP認証(以下、SMTP-AUTH)でもdovecotの認証機能が利用できます。
Postfixの認証機能についてはcyrus-saslという認証用サービスを利用する方式と、dovecotによるSASL方式が用意されていますが、本記事では追加のパッケージ導入が不要なdovecotのSASL認証機能を利用する前提です。
尚、送信の際にSMTP-AUTHを設定していないサーバーは、あっという間にスパムメールや迷惑メール用の配信サーバーとして利用されてしまいます。

テスト環境でも、インターネットへ公開する前に必ずSMTP-AUTHの設定を完了させて下さい。
POP3/IMAP4については、特定のネットワークからのみ接続を行う場合にはファイヤーウォールで接続制限を設定することが出来ますが、本記事では、全てのネットワークから接続を許可する前提で設定を行います。

2-1.POP3/IMAP4サービス用パッケージの詳細を確認

メールの受信を行うPOP3/IMAP4サービスを動作させるのに必要となる追加パッケージ名はdovecotになります。認証を行う情報は暗号化することが望ましいのですが、(平文だとスニッファなどでパスワードが分かってしまう可能性があるため)本構成では、次の記事でPOP3/IMAP4通信をSSL/TLSで暗号化することから平文での認証を設定します。
※SSL/TLSで通信全体を暗号化することで、平文の情報も暗号化されます。

2-2.dovecotパッケージの詳細を確認

インストール前にパッケージの内容に間違いないか、念のためにdovecotパッケージ詳細を確認します。”yum info”コマンドを以下のように実行します。

表示された説明からdovecotパッケージがPOP3/IMAP4サービスに必要であることが確認できましたので、このパッケージをインストールします。

2-3.yumコマンドによるdovecotパッケージのインストール

dovecotパッケージはyumコマンドにinstallオプションを付けることでインストールすることができます。必要な2つのパッケージが確認できましたので、以下のようにインストールを実行します。

yumコマンドに-yオプションを付けることでインストール時の確認応答を省いています。パッケージを複数インストールする場合はスペースを入れてパッケージ名を列記します。コマンドを実行すると、以下のようにインストールが開始されます。

エラーの出力がなく”完了しました!”と表示されれば、dovecotパッケージは正常にインストールされています。

2-4.dovecotインストール後の確認

dovecotパッケージがインストールされたことを確認します。インストールされているパッケージは”yum list installed”コマンドで確認できます。以下のようにyumを実行して、dovecotパッケージがインストールされていることを確認します。

出力結果に、dovecotパッケージが表示されることを確認します。

上記の結果からdovecotパッケージがインストールされたことが確認できました。これでdovecotパッケージのインストールと確認が終了しました。

2-5.dovecot 起動の確認

続いてインストールしたdovecotが起動することを確認します。CentOSでは7系からsystemctlコマンドでサービスの起動・停止を行います。以下のようにsystemctlを実行することで起動できます。

エラーが出力されなければ、dovecotは起動しています。
続いて、サービスの状態を確認します。systemctlコマンドにstatusオプションを付けて実行することで、起動したサービスの状態について、詳細な情報を取得することができます。
以下が実行例です。

上記では分かり難いかもしれませんが、黒丸(●)の部分が正常な起動状態の場合、緑色で表示されます。dovecotのActive項目に(running)と表示されていますので、起動されていることが確認できます。

2-6.dovecot 自動起動の設定

サーバーの再起動や停止の復旧時に、dovecotが自動的に起動するように設定します。サービスの自動起動を設定するにもsystemctlコマンドを利用します。自動起動は以下のようにsystemctlコマンドを実行します。

エラーが出力されなければ、自動起動は設定が完了しています。
続いて自動起動が設定されたことを確認します。こちらもsystemctlコマンドから確認できます。以下のように実行します。

実行結果として “enabled”と表示されれば自動起動の設定は完了です。

3.dovecotの設定

項目2.でdovecotパッケージの導入が完了しました。続いてdovecotでPOP3/IMAP4を利用できるように設定の変更を行っていきます。設定変更についての前提条件は以下の通りになります。

  • POP3/IMAP4両方のプロトコルが利用できるようにします。
  • 接続時の認証情報はLinuxのユーザーアカウントを利用して行います。
  • POP3/IMAP4接続時のパスワードは平文でやり取りします。
  • SSLによる暗号化は次の記事で設定します。本記事では暗号化無しで設定します。
  • SMTP-AUTHの際に認証機能を提供するように設定します。

この前提条件に合わせて、dovecotの設定を行っていきます。

3-1.dovecot.confの変更

dovecotの基本的な設定は/etc/dovecot以下にあるdovecot.confファイルで行います。dovecot.confの設定変更前に、既存のファイルをバックアップしておきます。具体的には以下の手順でコピーを行います。

バックアップの完了後、エディタでdovecot.confファイルを開いて変更を行います。本環境ではOSの標準的なエディタである、viエディタを利用しています。

doevcot.confファイルが開きます。具体的は変更ポイントは以下になります。

3-1-1.protocolsパラメータ

protocolsパラメータはdovecotで有効にするプロトコルを指定します。本記事ではPOP3とIMAP4を有効にしますので、デフォルトの設定値を以下のように変更します。

このパラメータからコメントを外します。lmtpは利用しないため、削除します。

変更後、ファイルを保存します。これでdovecot.confの変更は完了です。

3-2.10-auth.confファイルの変更

続いて、認証に関する設定の変更を行います。dovecotの詳細な設定に関する設定ファイルは”/etc/dovecot/conf.d”に配置されています。conf.dには以下のファイルが含まれています。

認証に関する設定ファイルは上記のディレクトリに含まれる”10-auth.conf”になります。このファイルを変更していきます。
10-auth.confの設定変更前に、既存のファイルをバックアップしておきます。具体的には以下の手順でコピーを行います。

バックアップの完了後、エディタで10-auth.confファイルを開いて変更を行います。本環境ではOSの標準的なエディタである、viエディタを利用しています。

10-auth.confファイルが開きます。設定の変更が必要なパラメータは以下になります。

3-2-1.disable_plaintext_authパラメータ

disable_plaintext_authパラメータはdovecotの認証で、平文での認証を無効化するパラメータになります。デフォルトでは平文の認証は無効になっていますので、これを有効にするように変更します。

このパラメータをコメントを外して、設定値を”no”に変更します。

3-2-2.auth_mechanismsパラメータ

認証時のメカニズムを指定します。plainに加えて”login”を追加します。

パラメータにloginを追加します。

2点の変更が完了したら、ファイルを保存します。

3-3.10-mail.confファイルの変更

次に受信したメールに関する設定の変更を行います。認証に関する設定ファイルは”/etc/dovecot/conf.d”ディレクトリの中に含まれる10-mail.confになります。このファイルを変更していきます。
10-mail.confの設定変更前に、既存のファイルをバックアップしておきます。具体的には以下の手順でコピーを行います。

バックアップの完了後、エディタで設定ファイルを開いて変更を行います。本環境ではOSの標準的なエディタである、viエディタを利用しています。

10-mail.conファイルが開きます。具体的は変更ポイントは以下になります。

3-3-1.mail_locationパラメータ

mail_locationパラメータは配送されたメールの保存先を指定します。このパラメータはPostfixに設定した設定値と合わせるようにします。今回はMaildir形式になりますので、以下のように変更します。

デフォルトでは全てコメントされています。この中の”maildir”形式の記載がある部分についてコメントを外します。

変更後にファイルを保存します。これで10-mail.confの変更は完了です。

3-4.10-ssl.confファイルの変更

次にSSLに関する設定の変更を行います。SSLに関する設定ファイルは”/etc/dovecot/conf.d”ディレクトリの中に含まれる10-ssl.confになります。このファイルを変更していきます。
10-ssl.confの設定変更前に、既存のファイルをバックアップしておきます。具体的には以下の手順でコピーを行います。

バックアップの完了後、エディタで設定ファイルを開いて変更を行います。本環境ではOSの標準的なエディタである、viエディタを利用しています。

10-ssl.conf設定ファイルが開きます。変更ポイントは以下になります。

3-4-1.sslパラメータ

sslパラメータは受信の接続時にSSLを必要とするかの設定です。次の記事でSSLの設定を行いますが、本記事では、まだSSLは設定しないので、以下のように変更します。

デフォルトでは上記のように”ssl = required”と設定されています。この設定の場合、SSLが必須となります。これを以下のように変更します。

変更後にファイルを保存します。これで10-ssl.confの変更は完了です。

3-5.10-master.confファイルの変更

次にSMTP認証を行う際に、dovecot-saslを利用するための設定を行います。dovecotのSASLに関する設定ファイルは”/etc/dovecot/conf.d”ディレクトリの中に含まれる10-master.confになります。このファイルを変更していきます。
10-master.confの設定変更前に、既存のファイルをバックアップしておきます。具体的には以下の手順でコピーを行います。

バックアップの完了後、エディタで設定ファイルを開いて変更を行います。本環境ではOSの標準的なエディタである、viエディタを利用しています。

10-mail.conファイルが開きます。具体的は変更ポイントは以下になります。

3-5-1.Postfix smtp-auth設定

PostfixでSMTP-AUTHを行うための設定項目は10-master.confに予め用意されています。”Postfix smtp-auth”ディレクティブを変更します。

デフォルトでは上記のようにコメントされています。この部分について

に変更します。変更後にファイルを保存します。これで10-master.confの変更は完了です。

3-6.dovecotの設定チェック

dovecotには設定チェック用としてコマンド”doveconf”が用意されています。デフォルトのパラメータとは異なる設定のみを明示的に表示する”-n”オプションを付与します。以下のように実行します。

出力結果を確認して、設定を変更した内容が正常に反映されていることを確認します。間違いや不足があった場合には、修正を行います。これでdovecotの設定確認は完了です。

3-7.dovecot 設定の反映

dovecot用設定ファイルの変更が完了しましたので、変更した設定を反映するためにdovecotを再起動します。systemctlコマンドを以下のように実行します。

エラーが無ければ、正常に再起動は実行されています。再起動後にPostfixのステータスを確認します。

表示された上記のステータスから、dovecotが正常に起動していることが確認できました。
dovecotの再起動後にPOP3用の110番ポートとIMAP4用の143番ポートがオープンしていることを確認します。”netstat”コマンドを実行します。

netstatの結果から110番ポートと143番ポートがLISTENしていることが確認できました。これでdovecotの設定は完了です。

4.PostfixのSMTP-AUTH設定

項目3.の手順でdovecot側のSMTP-AUTH設定までが完了しました。次にPostfix側でSMTP-AUTHを行うように設定の変更を行っていきます。設定変更についての前提条件は以下の通りになります。

  • SMTP-AUTHの認証はdovecotのSASL機能を利用します。
  • SMTP-AUTHのパスワードは平文でやり取りします。
  • SMTP-AUTHの認証情報はLinuxのユーザーアカウントを利用して行います。
  • OP25B対応としてサブミッションポート(ポート587番)を利用するように設定します。
  • メールの保存方式としてメールディレクトリを設定します。
  • メールボムなどの攻撃を回避するために、メールの容量を10MBに制限します。
  • SMTP接続時にMTAのバージョンを表示しないように設定します。

この前提条件に合わせて、Postfixの設定を行っていきます。

4-1.Postfixの認証機能確認

Postfix側で対応している認証機能の確認を行います。認証機能の確認は”postconf”コマンドに-aオプションを付与して実行します。
以下のように実行します。

cyrusとdovecotが認証方法として表示されることを確認します。本記事ではdovecotのSASL認証を利用します。

4-2.main.cfの変更

Postfixの設定は/etc/postfix以下にあるmain.cfファイルで行います。main.cfの設定変更前に、既存のファイルをバックアップしておきます。具体的には以下の手順でコピーを行います。(.orgファイルは前の記事で作成していますので、本記事では.org2としています。)

バックアップの完了後、エディタでmain.cf設定ファイルを開いて変更を行います。本環境ではOSの標準的なエディタである、viエディタを利用しています。

main.cf設定ファイルが開きます。具体的は変更ポイントは以下になります。尚、変更点でコメントを付ける、外すという記載がありますが、以下のような意味合いになります。

  • コメントを外す => 行頭の”#”を削除する。
  • コメントにする => 行頭に”#”を付ける。

4-2-1.inet_interfacesパラメータ

inet_interfacesパラメータはメールを受け取りインターフェイスを指定します。デフォルトの設定はlocalhostとなり、この場合にはlocalhost(自分自身)からのメールのみ受け取る設定になります。メールを配送するためには、このパラメータをallに設定します。
変更点は以下のようになります。

上記のinet_interfaces設定パラメータを変更します。

4-2-2.mydestinationパラメータ

mydestinationパラメータは、メールを受け取るドメイン名やホスト名を指定ます。ここに指定されたパラメータ以外からのメールを受け取りません。
デフォルトの設定では以下のようになっています。

このパラメータを変更します。$mydomainを有効にしてドメイン宛てのメールを受け取るようにします。

スポンサーリンク

4-2-3.local_recipient_mapsパラメータ

local_recipient_mapsパラメータは、ローカルに存在しないユーザーのメールを受け取らないための設定です。
デフォルトの設定では、以下のようになっています。

このパラメータを、以下のように変更します。(Linuxユーザーが存在する場合のみメールを受け取る)

4-2-4.home_mailboxパラメータ

home_mailboxパラメータは、メールボックスの形式です。デフォルトの設定ではメールを一つのファイルに保存する”Mailbox”形式が指定されています。メールの扱いやすさや、imapを利用することを考えて、1メールを1ファイルとして保存する”Maildir”形式を指定します。
デフォルトの設定では以下のように設定されています。

この設定を変更します。

4-2-5.smtpd_bannerパラメータ

smtpd_bannerパラメータはSMTP接続した際に表示されるバナーの設定です。デフォルトではMTAの名前(Postfix)が表示されますが、セキュリティ対策として、MTA名を表示しないように設定を変更します。デフォルトでは設定はコメントアウトされています。

この設定を以下のように変更します。

4-2-6.message_size_limitパラメータ

message_size_limitは送受信できるメールの最大サイズを設定します。デフォルト値は10MBになります。今回の前提条件ではメールは10MBのサイズ指定を行う形になります。デフォルト値から変更がないため、パラメータの記載は不要です。
※本パラメータのサイズは、メール本文、ヘッダー情報、添付ファイルなどの全ての情報を含んだサイズとなります。
変更が必要な場合は、以下のように設定します。(例:メールの最大サイズを20MBに変更したい場合)

4-2-7.SMTP-AUTH用パラメータ

SMTP-AUTH用の設定パラメータは、設定ファイルに項目として用意されていないため、main.cfの最下行に追記します。
メールのリレーを許可する接続を記載する”smtpd_recipient_restrictions”パラメータとsmtpの接続時にSASLを利用して認証を行うかを指定する”smtpd_sasl_auth_enable”(smtpではなくsmtpdになります。)
SMTP-AUTHの認証形式を指定する”smtpd_sasl_type”、認証用のソケットファイルを指定する”smtpd_sasl_path”を追記します。”broken_sasl_auth_clients”は古いクライアントプログラム向けのパラメータです。
まだOutlook Expressや古いOutlook等のクライアントプログラムを利用している環境があるかもしれませんので、記載しています。

smtpd_recipient_restrictionsに設定したパラメータは

  • permit_mynetworksパラメータに指定されているネットワークからはリレーを許可。
  • permit_sasl_authenticated SMTP-AUTHで認証を通過した接続はリレーを許可。
  • reject_unauth_destination SMTP-AUTHで認証が通らなかったものはリレーを拒否。

という内容になります。追記が終わったら、ファイルを保存します。これでmain.cfの設定は完了です。

4-3.設定ファイルのチェック

設定ファイルのチェック用としてコマンド”postconf”を実行します。デフォルトパラメーターとは異なる設定のみを明示的に表示する”-n”オプションを付与します。以下のように実行します。

出力された内容を確認して、変更した部分が反映されていることを確認します。
またPostfixには設定ファイルの誤りをチェックするためのコマンド”postfix check”が用意されています。このコマンドで設定ファイルのチェックも行っておきます。

エラーが表示されなければ、main.cf設定ファイルには問題がありませんので、確認は完了です。

5.Postfixのサブミッションポート設定

次にOP25B(Outbound Port 25 Blocking)に対応するため、サブミッションポートの設定を行います。
OP25Bは多くのISPが採用している迷惑メール対策設定で、ISP側で用意したメールサーバー以外のSMTP接続をブロックする設定になります。OP25B対策されているISPの場合にはSMTP接続の25番ポートがブロックされているため、サブミッションポートと呼ばれる587番ポートを利用します。ここではPostfixが587番ポートで接続できるように変更する手順を説明します。

5-1.master.cfの変更

サブミッションポートの設定は/etc/postfix以下にあるmaster.cfファイルで行います。master.cfはメールクライアントがPostfixに接続する方法や、サービスが要求された際に実行されるプログラムの設定を行うファイルです。master.cfの設定変更前に、既存のファイルをバックアップしておきます。具体的には以下の手順でコピーを行います。

バックアップの完了後、エディタでmaster.cf設定ファイルを開いて変更を行います。本環境ではOSの標準的なエディタである、viエディタを利用しています。

master.cf設定ファイルが開きます。デフォルトのmaster.cfは以下のようになっています。

サブミッションポートを有効にするために、”#submission inet n …”部分のコメントを外します。以下のように変更します。

変更できたら、ファイルを保存します。これでPostfixのサブミッションポート設定は完了です。

6.main.cf、master.cfファイル、変更点の反映

設定ファイルの変更が完了しましたので、変更した設定を反映するためにPostfixを再起動します。systemctlコマンドを以下のように実行します。

エラーが無ければ、正常に再起動は実行されています。再起動後にPostfixのステータスを確認します。

表示された上記のステータスから、Postfixが正常に起動していることが確認できました。
Postfixの再起動後に587番ポートがオープンしていることを確認します。LISTENしているポートを確認するために”netstat”コマンドを実行します。TCPポートのみを確認します。

上記のように587番ポートがLISTENしていることが確認できました。これでPostfixの設定は完了です。

7.SMTP-AUTHとサブミッションポートの動作確認

ここまででSMTP-AUTHの設定とサブミッションポートの設定が完了しましたので、一度、設定した部分について確認を行います。

7-1.テストユーザーの作成

SMTP-AUTHの認証テスト用にテストユーザーを作成します。このユーザーは送受信のテストにも利用します。本記事のSMTP-AUTH認証はLinuxのユーザー情報を利用する設定になっていますので、Linuxにユーザーを追加します。useraddコマンドを実行します。

ユーザーの作成後、パスワードを設定します。

パスワードについては”password”を指定しています。(実際の設定には、推測されにくいパスワードを設定してください)これでテスト用ユーザーの作成が完了しました。

7-2.SMTPとサブミッションポートの接続テスト

SMTPの25番とサブミッションポートの587番ポートにtelnetコマンドで接続テストを行います。
事前に利用するユーザー名(testuser01)とパスワード(password)をBASE64でエンコードします。本環境の場合は以下のようにperlを実行します。

文字列”dGVzdHVzZXIwMQB0ZXN0dXNlcjAxAHBhc3N3b3Jk”がエンコードされたユーザー名とパスワードになります。これでテストの準備ができましたので、25番ポートから接続してみます。

応答待ちになります。EHLOコマンドを入力します。

再度、応答待ちになります。”AUTH PLAIN”コマンドに続いてエンコードした情報を入力して下さい。

応答として”235 2.7.0 Authentication successful”が返ってくれば、SMTP-AUTHで認証が出来ています。quitコマンドを入力して、SMTP接続をクローズします。

587番ポートについても同じように接続テストを行います。

応答として”235 2.7.0 Authentication successful”が返ってくれば、587番ポートでもSMTP-AUTHで認証が出来ています。これで接続テストは完了です。quitコマンドを何度か入力して、SMTP接続をクローズします。
これで接続テストは完了です。

8.ファイアウォールへの接続許可設定

メールの送受信では接続方法によって、幾つかの接続ポートを利用します。本記事では暗号化を利用しないSMTPとPOP3及びIMAP4が利用する以下のTCPポートをオープンします。尚、ファイアウォールはCentOSのデフォルトであるfirewall-cmdを利用している前提となります。

送信用ポート(SMTP/SMTP-Submission)

  • SMTP 25番ポート
  • SMTP-Submission 587番ポート

受信用ポート(POP3/IMAP4)

  • POP3 110番ポート
  • IMAP4 143番ポート

8-1.現状のファイアウォール設定を確認

先ず、現状の設定を確認していきます。メールの送受信に利用するポートは、全てのネットワークに開放するため、インターフェイスに適用されているゾーン、”public”ゾーンの設定を確認します。

デフォルトでは上記のようにsshのみ許可されています。

8-2.メール送受信サービスの接続許可設定

項目8-1.で確認した”public”ゾーンの接続許可サービスにSMTP、SMTP-Submission、POP3、IMAP4の4サービスを追加します。追加はfirewall-cmdで以下のように行います。

”success”と表示されれば追加は完了です。設定を反映するためにファイアウォールの設定をリロードします。

”success”と表示されれば設定のリロードは完了です。

8-3.メール送受信サービスの設定確認

設定した内容が正常に反映されているかを確認します。確認は以下のように行います。

”services”の項目に”smtp smtp-submission pop3 imap”が表示されていれば、ファイヤーウォール設定の確認は完了です。ここまででファイアウォールの接続許可は完了です。

9.テストメールの配信(ローカル)

メールを送受信するための設定が完了しましたので、実際にメールを配信してみます。先ずはメールサーバー自身でメールを配信します。利用するユーザーは項目6-1.で作成したユーザー”testuser01”になります。

9-1.mailコマンドによるメールの配信

CentOSではメールを配送するための”mail”コマンドが用意されています。特にオプションを付与せず、ユーザー名のみ指定して実行します。

対話モードに入りますので、Subject(件名)と内容を入力します。

これでテストメールの配信が完了しました。

9-2.メールログの確認

メールが配送されたことをログから確認します。メールのログは”/var/log/maillog”になります。このファイルへ送受信の記録が出力されます。
lessコマンドでログファイルを開きます。

以下のようにログが出力されています。

確認する点は”from(送信元アドレス)”と”to(送信先アドレス)”、及び”to”のstatusになります。上記の場合では

  • from:root@testdom.com(送信元)
  • to:testuser01@mail.testdom.com(送信先)
  • status:sent (delivered to maildir)

となります。上記のログではstatusがsentとなっていることから、メールが配送されたことが分かります。

9-3.メールディレクトリの確認

メールの保存先は、各ユーザーのホームディレクトリ以下にある”Maildir”ディレクトリになります。このディレクトリはメールが配送されると自動的に作成されます。先ほどのテストメールでディレクトリが作成されているかを確認します。

上記のようにMaildirが作成されて、その配下に幾つかのディレクトリが作成されていることが確認できました。
これでローカルでのメール配送テストとメールディレクトリの確認は完了です。

10.メールクライアントからの動作確認

次は外部からメールの送受信を行い、メールの送受信ができることを確認します。メールクライアントとしてthunderbirdを利用しました。

10-1.メールクライアントの設定と送受信テスト(SMTP-AUTHとPOP3)

メールクライアントであるthunderbirdにメールアカウントを設定します。手動設定で以下のように設定してしました。
設定値は実際の環境に合わせて変更してください。
postfix-smtp-auth-11-1-1
接続すると、以下のような警告画面が表示されます。これは通信がSSL/TLSで暗号化されていないためです。次の記事で暗号化しますが、ここはリスクを承認して、次へ進みます。
postfix-smtp-auth-11-1-2
正常に設定ができると、画面のようにアカウントが追加されます。
postfix-smtp-auth-11-1-3
メールアカウントの追加ができましたので、メールの受信を行います。先ほどローカルで配送されたメールが受信できます。
postfix-smtp-auth-11-1-4-2
メールサーバー側に出力されているログは以下のようになります。

ログからも接続できたことが確認できました。
続いて、SMTP-AUTHを利用してメールを外部にリレー配送してみます。配送先はGoogleのメールサービスGmailのアカウントです。
postfix-smtp-auth-11-1-5-2
正常に認証を通過して配送ができました。配送時のメールログは以下になります。

メールログからもSMTP認証を通過してメールが配送されたことを確認できます。

10-2.メールクライアントの設定(SMTP-AUTHとIMAP4)

メールクライアントであるthunderbirdにメールアカウントを設定します。今回はIMAP4で接続するためのアカウントを設定します。手動設定で以下のように設定してしました。設定値は実際の環境に合わせて変更してください。
postfix-smtp-auth-11-2-1
接続すると、以下のような警告画面が表示されます。これは通信がSSL/TLSで暗号化されていないためです。次の記事で暗号化しますが、ここはリスクを承認して、次へ進みます。
postfix-smtp-auth-11-2-2
正常に設定ができると、画面のようにアカウントが追加されます。
postfix-smtp-auth-11-2-3
メールの受信を行います。ログは以下のようになります。

上記のようにログからもimap4で接続できていることが確認できました。
これでimap4での確認は完了です。

11.まとめ

今回の記事では、メールサーバーとして送受信が機能するところまで設定を行いました。このままだと暗号化されていないため、ネットワークスニッファなどで認証情報が盗聴されてしまう可能性がありますが、先ずはメールの送受信を行うまでの段階まで設定して、動作を確認してみて下さい。
メールがどのようなシステムでやり取りされているかを理解することが出来るかと思います。
また意外と簡単にメールサーバーの構築が出来ることも分かります。
次回の記事ではLet’s Encryptで取得したサーバー証明書を利用してSMTPとPOP3、IMAP4の接続を暗号化していきます。

関連する記事


Facebookでのご購読が便利です。

Twitter・Feedlyでもご購読できます。

Twitterでフォローする Feedlyでフォローする

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  • スポンサーリンク