前回の記事ではCentOSにインストールしたPostfixでメールを送信できるようにするところまでの設定手順を紹介しました。今回は同じ環境を使ってメールの送信と受信ができるところまでの設定手順を紹介します。
-
CentOSとPostfixを使って送信専用のメールサーバーを構築する方法
こんにちは、ITエンジニアのKomuraです。 最近ではクラウドでのSaaSによるメールサービス(GoogleのG SuiteやMicrosoftのOffice365など)が一般的になり、以前ほどメールサーバーを構築する機会も少なりましたが ...
外部からのメールを受け取ることもできますので、この段階まで設定頂くと基本的なメールサーバーとしての運用が出来る状態になります。
メールサーバーというと設定にやや敷居が高いように思われがちですが、意外と簡単に構築することが出来ます。是非、本記事を含むメールサーバー 構築の基礎(全4回)で、メールサーバーを構築して、メールシステムについての理解を深めて下さい。最終的にはセキュアなメールサーバーの構築をゴールとしています。
メールサーバー 構築の基礎 全4回
-
1
-
CentOSとPostfixを使って送信専用のメールサーバーを構築する方法
2023/3/30 メールサーバー構築
こんにちは、ITエンジニアのKomuraです。 最近ではクラウドでのSaaSによるメールサービス(GoogleのG SuiteやMicrosoftのOffice365など)が一般的になり、以前ほどメールサーバーを構築する機会も少なりましたが ...
-
2
-
CentOSのPostfixとDovecotで送受信ができるメールサーバーを構築
2021/9/25 メールサーバー構築
前回の記事ではCentOSにインストールしたPostfixでメールを送信できるようにするところまでの設定手順を紹介しました。今回は同じ環境を使ってメールの送信と受信ができるところまでの設定手順を紹介します。 外部からのメールを受け取ることも ...
-
3
-
CentOSのPostfixとDovecotにSSLを設定して安全に通信を行う
2021/9/22 メールサーバー構築
前回の記事ではメールサーバーとしての基本的な機能である送信(SMTP)と受信(POP3/IMAP)を行うことが出来るように設定を行いました。 この状態でも運用には問題ありませんが、メールサーバーとクライアント間で通信が平文になっていますので ...
-
4
-
CentOSのPostfixで迷惑メール判定されないようDKIMを設定する
2023/10/19 メールサーバー構築
構築したメールサーバーから送信したメールが迷惑メールとして識別されたことはありませんか?このような場合は、送信したメールが経由するメールサーバーのなりすましメール対策に引っかかっている場合が殆どです。(まれに迷惑メールのブラックリストに登録 ...
2回目になる本記事では送信と受信ができるメールサーバーの構築手順を紹介していきます。段階的に機能を実装する手順を紹介していきますので、お付き合いください。
本記事では一般ユーザーでの実行が可能なコマンドについてはプロンプトとして"$"、rootユーザーでの実行が必要なコマンドについては"#"を記載しています。
1. 送受信できるメールサーバーを設定する環境
今回の記事で構築を行う環境は、送信専用のメールサーバーを設定した前回の記事を踏襲しています。
-
CentOSとPostfixを使って送信専用のメールサーバーを構築する方法
こんにちは、ITエンジニアのKomuraです。 最近ではクラウドでのSaaSによるメールサービス(GoogleのG SuiteやMicrosoftのOffice365など)が一般的になり、以前ほどメールサーバーを構築する機会も少なりましたが ...
前回の記事では以下の前提条件を元に設定を行いました。
Postfixを導入した環境
- サーバーにはグローバルの固定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をインストールします。
command
# yum -y install bind-utils
bind-utilsがインストールされると、hostコマンドが利用できるようになります。”testdom.com”のMXレコードを確認する場合、以下のようにコマンドを実行します。
command
$ host -t mx testdom.com
testdom.com mail is handled by 10 mail.testdom.com.
上記のようにドメイン名に対して設定した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”コマンドを以下のように実行します。
command
$ yum info dovecot.x86_64
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
利用可能なパッケージ
名前 : dovecot
アーキテクチャー : x86_64
エポック : 1
バージョン : 2.2.10
リリース : 8.el7
容量 : 3.2 M
リポジトリー : base/7/x86_64
要約 : Secure imap and pop3 server
URL : http://www.dovecot.org/
ライセンス : MIT and LGPLv2
説明 : Dovecot is an IMAP server for Linux/UNIX-like systems, written with
: security primarily in mind. It also contains a small POP3 server. It
: supports mail in either of maildir or mbox formats.
:
: The SQL drivers and authentication plug-ins are in their subpackages.
表示された説明からdovecotパッケージがPOP3/IMAP4サービスに必要であることが確認できましたので、このパッケージをインストールします。
2-3. yumコマンドによるdovecotパッケージのインストール
dovecotパッケージはyum installコマンドでインストールすることができます。必要なパッケージが確認できましたので、以下のようにインストールを実行します。
command
# yum -y install dovecot
yumコマンドに-yオプションを付けることでインストール時の確認応答を省いています。パッケージを複数インストールする場合はスペースを入れてパッケージ名を列記します。コマンドを実行すると、以下のようにインストールが開始されます。
log
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ dovecot.x86_64 1:2.2.10-8.el7 を インストール依存性を解決しましたインストール中:
dovecot x86_64 1:2.2.10-8.el7 base 3.2 M
依存性関連でのインストールをします:
clucene-core x86_64 2.3.3.4-11.el7 base 528 kトランザクションの要約
インストール 1 パッケージ (+1 個の依存関係のパッケージ)総ダウンロード容量: 3.7 M
インストール容量: 12 M
Downloading packages:
(1/2): clucene-core-2.3.3.4-11.el7.x86_64.rpm | 528 kB 00:00:00
(2/2): dovecot-2.2.10-8.el7.x86_64.rpm | 3.2 MB 00:00:00
合計 5.5 MB/s | 3.7 MB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : clucene-core-2.3.3.4-11.el7.x86_64 1/2
インストール中 : 1:dovecot-2.2.10-8.el7.x86_64 2/2
検証中 : clucene-core-2.3.3.4-11.el7.x86_64 1/2
検証中 : 1:dovecot-2.2.10-8.el7.x86_64 2/2インストール:
dovecot.x86_64 1:2.2.10-8.el7
依存性関連をインストールしました:
clucene-core.x86_64 0:2.3.3.4-11.el7
完了しました!
エラーの出力がなく「完了しました!」と表示されればdovecotパッケージは正常にインストールされています。
2-4. dovecotインストール後の確認
dovecotパッケージがインストールされたことを確認します。インストールされているパッケージは”yum list installed”コマンドで確認できます。以下のようにyumを実行して、dovecotパッケージがインストールされていることを確認します。
command
$ yum list installed | grep dovecot
出力結果に、dovecotパッケージが表示されることを確認します。
log
dovecot.x86_64 1:2.2.10-8.el7 @base
上記の結果からdovecotパッケージがインストールされたことが確認できました。これでdovecotパッケージのインストールと確認が終了しました。
2-5. dovecot 起動の確認
続いてインストールしたdovecotが起動することを確認します。CentOSでは7系からsystemctlコマンドでサービスの起動・停止を行います。以下のようにsystemctlを実行することで起動できます。
command
# systemctl start dovecot
エラーが出力されなければ、dovecotは起動しています。
続いて、サービスの状態を確認します。systemctlコマンドにstatusオプションを付けて実行することで、起動したサービスの状態について、詳細な情報を取得することができます。
以下が実行例です。
command $ systemctl status dovecot ● dovecot.service - Dovecot IMAP/POP3 email server Loaded: loaded (/usr/lib/systemd/system/dovecot.service; disabled; vendor preset: disabled) Active: active (running) since 金 2018-10-19 17:05:40 JST; 4s ago Process: 2603 ExecStartPre=/usr/libexec/dovecot/prestartscript (code=exited, status=0/SUCCESS) Main PID: 2609 (dovecot) CGroup: /system.slice/dovecot.service tq2609 /usr/sbin/dovecot -F tq2612 dovecot/anvil tq2613 dovecot/log mq2615 dovecot/config
上記では分かり難いかもしれませんが、丸(●)の部分が正常な起動状態の場合、緑色で表示されます。dovecotのActive項目に(running)と表示されていますので、起動されていることが確認できます。
2-6. dovecot 自動起動の設定
サーバーの再起動や停止の復旧時に、dovecotが自動的に起動するように設定します。サービスの自動起動を設定するにもsystemctlコマンドを利用します。自動起動は以下のようにsystemctlコマンドを実行します。
command
# systemctl enable dovecot
Created symlink from /etc/systemd/system/multi-user.target.wants/dovecot.service to /usr/lib/systemd/system/dovecot.service.
エラーが出力されなければ、自動起動は設定が完了しています。
続いて自動起動が設定されたことを確認します。こちらもsystemctlコマンドから確認できます。以下のように実行します。
command
$ systemctl is-enabled dovecot
enabled
実行結果として “enabled”と表示されれば自動起動の設定は完了です。
3. dovecotの設定
項目2. でdovecotパッケージの導入が完了しました。続いてdovecotでPOP3/IMAP4を利用できるように設定の変更を行っていきます。設定変更についての前提条件は以下の通りになります。
dovecotを設定する前提条件
- POP3/IMAP4両方のプロトコルが利用できる
- 接続時の認証情報はLinuxのユーザーアカウントを利用して行う
- POP3/IMAP4接続時のパスワードは平文でやり取り
- SSLによる暗号化は次の記事で設定します。本記事では暗号化無しで設定
- SMTP-AUTHの際に認証機能を提供するように設定
この前提条件に合わせて、dovecotの設定を行っていきます。
3-1. dovecot.confの変更
dovecotの基本的な設定は/etc/dovecot以下にあるdovecot.confファイルで行います。dovecot.confの設定変更前に、既存のファイルをバックアップしておきます。具体的には以下の手順でコピーを行います。
command
# cp -p /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.org
バックアップの完了後、エディタでdovecot.confファイルを開いて変更を行います。本環境ではOSの標準的なエディタである、viエディタを利用しています。
command
# vi /etc/dovecot/dovecot.conf
doevcot.confファイルが開きます。具体的は変更ポイントは以下になります。
3-1-1. protocolsパラメータ
protocolsパラメータはdovecotで有効にするプロトコルを指定します。本記事ではPOP3とIMAP4を有効にしますので、デフォルトの設定値を以下のように変更します。
code
#protocols = imap pop3 lmtp
このパラメータからコメントを外します。lmtpは利用しないため、削除します。
code
protocols = imap pop3
変更後、ファイルを保存します。これでdovecot.confの変更は完了です。
3-2. 10-auth.confファイルの変更
続いて、認証に関する設定の変更を行います。dovecotの詳細な設定に関する設定ファイルは”/etc/dovecot/conf.d”に配置されています。conf.dには以下のファイルが含まれています。
10-director.conf 20-lmtp.conf auth-ldap.conf.ext
10-logging.conf 20-pop3.conf auth-master.conf.ext
10-mail.conf 90-acl.conf auth-passwdfile.conf.ext
10-master.conf 90-plugin.conf auth-sql.conf.ext
10-ssl.conf 90-quota.conf auth-static.conf.ext
15-lda.conf auth-checkpassword.conf.ext auth-system.conf.ext
15-mailboxes.conf auth-deny.conf.ext auth-vpopmail.conf.ext
認証に関する設定ファイルは上記のディレクトリに含まれる”10-auth.conf”になります。このファイルを変更していきます。
10-auth.confの設定変更前に、既存のファイルをバックアップしておきます。具体的には以下の手順でコピーを行います。
command
# cp -p /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.org
バックアップの完了後、エディタで10-auth.confファイルを開いて変更を行います。本環境ではOSの標準的なエディタである、viエディタを利用しています。
command
# vi /etc/dovecot/conf.d/10-auth.conf
10-auth.confファイルが開きます。設定の変更が必要なパラメータは以下になります。
3-2-1. disable_plaintext_authパラメータ
disable_plaintext_authパラメータはdovecotの認証で、平文での認証を無効化するパラメータになります。デフォルトでは平文の認証は無効になっていますので、これを有効にするように変更します。
code
#disable_plaintext_auth = yes
このパラメータをコメントを外して、設定値を”no”に変更します。
code
disable_plaintext_auth = no
3-2-2. auth_mechanismsパラメータ
認証時のメカニズムを指定します。plainに加えて”login”を追加します。
code
#auth_mechanisms = plain
パラメータにloginを追加します。
code
auth_mechanisms = plain login
2点の変更が完了したら、ファイルを保存します。
3-3. 10-mail.confファイルの変更
次に受信したメールに関する設定の変更を行います。認証に関する設定ファイルは”/etc/dovecot/conf.d”ディレクトリの中に含まれる10-mail.confになります。このファイルを変更していきます。
10-mail.confの設定変更前に、既存のファイルをバックアップしておきます。具体的には以下の手順でコピーを行います。
command
# cp -p /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.org
バックアップの完了後、エディタで設定ファイルを開いて変更を行います。本環境ではOSの標準的なエディタである、viエディタを利用しています。
command
# vi /etc/dovecot/conf.d/10-mail.conf
10-mail.conファイルが開きます。具体的は変更ポイントは以下になります。
3-3-1. mail_locationパラメータ
mail_locationパラメータは配送されたメールの保存先を指定します。このパラメータはPostfixに設定した設定値と合わせるようにします。今回はMaildir形式になりますので、以下のように変更します。
code
# See doc/wiki/Variables.txt for full list. Some examples:
#
# mail_location = maildir:~/Maildir
# mail_location = mbox:~/mail:INBOX=/var/mail/%u
# mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
デフォルトでは全てコメントされています。この中の”maildir”形式の記載がある部分についてコメントを外します。
code # See doc/wiki/Variables.txt for full list. Some examples: # # mail_location = maildir:~/Maildir mail_location = maildir:~/Maildir コメントを外す # mail_location = mbox:~/mail:INBOX=/var/mail/%u # mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
変更後にファイルを保存します。これで10-mail.confの変更は完了です。
3-4. 10-ssl.confファイルの変更
次にSSLに関する設定の変更を行います。SSLに関する設定ファイルは”/etc/dovecot/conf.d”ディレクトリの中に含まれる10-ssl.confになります。このファイルを変更していきます。
10-ssl.confの設定変更前に、既存のファイルをバックアップしておきます。具体的には以下の手順でコピーを行います。
command
# cp -p /etc/dovecot/conf.d/10-ssl.conf /etc/dovecot/conf.d/10-ssl.conf.org
バックアップの完了後、エディタで設定ファイルを開いて変更を行います。本環境ではOSの標準的なエディタである、viエディタを利用しています。
command
# vi /etc/dovecot/conf.d/10-ssl.conf
10-ssl.conf設定ファイルが開きます。変更ポイントは以下になります。
3-4-1. sslパラメータ
sslパラメータは受信の接続時にSSLを必要とするかの設定です。次の記事でSSLの設定を行いますが、本記事では、まだSSLは設定しないので、以下のように変更します。
code
# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
# disable plain pop3 and imap, allowed are only pop3+TLS, pop3s, imap+TLS and imaps
# plain imap and pop3 are still allowed for local connections
ssl = required
デフォルトでは上記のように”ssl = required”と設定されています。この設定の場合、SSLが必須となります。これを以下のように変更します。
code
# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
# disable plain pop3 and imap, allowed are only pop3+TLS, pop3s, imap+TLS and imaps
# plain imap and pop3 are still allowed for local connections
ssl = no
変更後にファイルを保存します。これで10-ssl.confの変更は完了です。
3-5. 10-master.confファイルの変更
次にSMTP認証を行う際に、dovecot-saslを利用するための設定を行います。dovecotのSASLに関する設定ファイルは”/etc/dovecot/conf.d”ディレクトリの中に含まれる10-master.confになります。このファイルを変更していきます。
10-master.confの設定変更前に、既存のファイルをバックアップしておきます。具体的には以下の手順でコピーを行います。
command
# cp -p /etc/dovecot/conf.d/10-master.conf /etc/dovecot/conf.d/10-master.conf.org
バックアップの完了後、エディタで設定ファイルを開いて変更を行います。本環境ではOSの標準的なエディタである、viエディタを利用しています。
command
# vi /etc/dovecot/conf.d/10-master.conf
10-mail.conファイルが開きます。具体的は変更ポイントは以下になります。
3-5-1. Postfix smtp-auth設定
PostfixでSMTP-AUTHを行うための設定項目は10-master.confに予め用意されています。”Postfix smtp-auth”ディレクティブを変更します。
code
# Postfix smtp-auth
# unix_listener /var/spool/postfix/private/auth {
# mode = 0666
# }
デフォルトでは上記のようにコメントされています。この部分について
code # Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { コメントを外す mode = 0666 コメントを外す user = postfix 追記 group = postfix 追記 }
に変更します。変更後にファイルを保存します。これで10-master.confの変更は完了です。
3-6. dovecotの設定チェック
dovecotには設定チェック用としてコマンド”doveconf”が用意されています。デフォルトのパラメータとは異なる設定のみを明示的に表示する”-n”オプションを付与します。以下のように実行します。
command
# doveconf -n
# 2.2.10: /etc/dovecot/dovecot.conf
# OS: Linux 3.10.0-862.14.4.el7.x86_64 x86_64 CentOS Linux release 7.5.1804 (Core)
auth_mechanisms = plain login
disable_plaintext_auth = no
first_valid_uid = 1000
mail_location = maildir:~/Maildir
mbox_write_locks = fcntl
namespace inbox {
inbox = yes
location =
mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Trash {
special_use = \Trash
}
prefix =
}
passdb {
driver = pam
}
protocols = imap pop3
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0666
user = postfix
}
}
ssl = no
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
userdb {
driver = passwd
}
出力結果を確認して、設定を変更した内容が正常に反映されていることを確認します。間違いや不足があった場合には、修正を行います。これでdovecotの設定確認は完了です。
3-7. dovecot 設定の反映
dovecot用設定ファイルの変更が完了しましたので、変更した設定を反映するためにdovecotを再起動します。systemctlコマンドを以下のように実行します。
command
# systemctl restart dovecot
エラーが無ければ、正常に再起動は実行されています。再起動後にPostfixのステータスを確認します。
command $ systemctl status dovecot ● dovecot.service - Dovecot IMAP/POP3 email server Loaded: loaded (/usr/lib/systemd/system/dovecot.service; enabled; vendor preset: disabled) Active: active (running) since 木 2018-10-18 19:14:39 JST; 4 days ago Process: 32189 ExecStartPre=/usr/libexec/dovecot/prestartscript (code=exited, status=0/SUCCESS) Main PID: 32195 (dovecot) CGroup: /system.slice/dovecot.service tq32195 /usr/sbin/dovecot -F tq32197 dovecot/anvil mq32198 dovecot/log
表示された上記のステータスから、dovecotが正常に起動していることが確認できました。
dovecotの再起動後にPOP3用の110番ポートとIMAP4用の143番ポートがオープンしていることを確認します。”netstat”コマンドを実行します。
command $ netstat -nat Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
netstatの結果から110番ポートと143番ポートがLISTENしていることが確認できました。これでdovecotの設定は完了です。
4. PostfixのSMTP-AUTH設定
項目3. の手順でdovecot側のSMTP-AUTH設定までが完了しました。次にPostfix側でSMTP-AUTHを行うように設定の変更を行っていきます。設定変更についての前提条件は以下の通りになります。
Postfixを設定するための前提条件
- SMTP-AUTHの認証はdovecotのSASL機能を利用
- SMTP-AUTHのパスワードは平文でやり取り
- SMTP-AUTHの認証情報はLinuxのユーザーアカウントを利用して行う
- OP25B対応としてサブミッションポート(ポート587番)を利用するように設定
- メールの保存方式としてメールディレクトリを設定
- メールボムなどの攻撃を回避するために、メールの容量を10MBに制限
- SMTP接続時にMTAのバージョンを表示しないように設定
この前提条件に合わせて、Postfixの設定を行っていきます。
4-1. Postfixの認証機能確認
Postfix側で対応している認証機能の確認を行います。認証機能の確認は”postconf”コマンドに-aオプションを付与して実行します。
以下のように実行します。
command # postconf -a cyrus dovecot
cyrusとdovecotが認証方法として表示されることを確認します。本記事ではdovecotのSASL認証を利用します。
4-2. main.cfの変更
Postfixの設定は/etc/postfix以下にあるmain.cfファイルで行います。main.cfの設定変更前に、既存のファイルをバックアップしておきます。具体的には以下の手順でコピーを行います。(.orgファイルは前の記事で作成していますので、本記事では.org2としています。)
command
# cp -p /etc/postfix/main.cf /etc/postfix/main.cf.org2
バックアップの完了後、エディタでmain.cf設定ファイルを開いて変更を行います。本環境ではOSの標準的なエディタである、viエディタを利用しています。
command
# vi /etc/postfix/main.cf
main.cf設定ファイルが開きます。具体的は変更ポイントは以下になります。尚、変更点でコメントを付ける、外すという記載がありますが、以下のような意味合いになります。
- コメントを外す 行頭の”#”を削除する
- コメントにする 行頭に”#”を付ける
4-2-1. inet_interfacesパラメータ
inet_interfacesパラメータはメールを受け取りインターフェイスを指定します。デフォルトの設定はlocalhostとなり、この場合にはlocalhost(自分自身)からのメールのみ受け取る設定になります。メールを配送するためには、このパラメータをallに設定します。
変更点は以下のようになります。
code
#inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
inet_interfaces = localhost
上記のinet_interfaces設定パラメータを変更します。
code inet_interfaces = all コメントを外す #inet_interfaces = $myhostname #inet_interfaces = $myhostname, localhost #inet_interfaces = localhost コメントにする
4-2-2. mydestinationパラメータ
mydestinationパラメータは、メールを受け取るドメイン名やホスト名を指定ます。ここに指定されたパラメータ以外からのメールを受け取りません。
デフォルトの設定では以下のようになっています。
code
mydestination = $myhostname, localhost.$mydomain, localhost
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
# mail.$mydomain, www.$mydomain, ftp.$mydomain
このパラメータを変更します。$mydomainを有効にしてドメイン宛てのメールを受け取るようにします。
code #mydestination = $myhostname, localhost.$mydomain, localhost コメントにする mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain コメントを外す #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, # mail.$mydomain, www.$mydomain, ftp.$mydomain
4-2-3. local_recipient_mapsパラメータ
local_recipient_mapsパラメータは、ローカルに存在しないユーザーのメールを受け取らないための設定です。
デフォルトの設定では、以下のようになっています。
code
#local_recipient_maps = unix:passwd.byname $alias_maps
#local_recipient_maps = proxy:unix:passwd.byname $alias_maps
#local_recipient_maps =
このパラメータを、以下のように変更します。(Linuxユーザーが存在する場合のみメールを受け取る)
code local_recipient_maps = unix:passwd.byname $alias_maps コメントを外す #local_recipient_maps = proxy:unix:passwd.byname $alias_maps #local_recipient_maps =
4-2-4. home_mailboxパラメータ
home_mailboxパラメータは、メールボックスの形式です。デフォルトの設定ではメールを一つのファイルに保存する”Mailbox”形式が指定されています。メールの扱いやすさや、imapを利用することを考えて、1メールを1ファイルとして保存する”Maildir”形式を指定します。
デフォルトの設定では以下のように設定されています。
code
#home_mailbox = Mailbox
#home_mailbox = Maildir/
この設定を変更します。
code #home_mailbox = Mailbox home_mailbox = Maildir/ コメントを外す
4-2-5. smtpd_bannerパラメータ
smtpd_bannerパラメータはSMTP接続した際に表示されるバナーの設定です。デフォルトではMTAの名前(Postfix)が表示されますが、セキュリティ対策として、MTA名を表示しないように設定を変更します。デフォルトでは設定はコメントアウトされています。
code
#smtpd_banner = $myhostname ESMTP $mail_name
#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
この設定を以下のように変更します。
code #smtpd_banner = $myhostname ESMTP $mail_name #smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) smtpd_banner = $myhostname ESMTP この行を追記
4-2-6. message_size_limitパラメータ
message_size_limitは送受信できるメールの最大サイズを設定します。デフォルト値は10MBになります。今回の前提条件ではメールは10MBのサイズ指定を行う形になります。デフォルト値から変更がないため、パラメータの記載は不要です。
※本パラメータのサイズは、メール本文、ヘッダー情報、添付ファイルなどの全ての情報を含んだサイズとなります。
変更が必要な場合は、以下のように設定します。(例:メールの最大サイズを20MBに変更したい場合)
code ### MAIL SIZE message_size_limit = 20971520
4-2-7. SMTP-AUTH用パラメータ
SMTP-AUTH用の設定パラメータは、設定ファイルに項目として用意されていないため、main.cfの最下行に追記します。
追記する項目は以下のパラメーターになります。
- smtpd_sasl_auth_enable = yes smtpの接続時にSASLを利用して認証を行う
- smtpd_sasl_type = dovecot SMTP-AUTHの認証形式を指定
- smtpd_sasl_path = private/auth 認証用のソケットファイルを指定
- broken_sasl_auth_clients = yes Outlook Expressや古いOutlookクライアント用
smtpd_sasl_auth_enableパラメーターはsmtpではなくsmtpdになりますので注意して下さい。
smtp認証のリレーを制御する"smtpd_recipient_restrictions"に設定するパラメータは
- permit_mynetworks 指定されているネットワークからはリレーを許可
- permit_sasl_authenticated SMTP-AUTHで認証を通過した接続はリレーを許可
- reject_unauth_destination SMTP-AUTHで認証が通らなかったものはリレーを拒否
になります。以下をmain.cfに追記します。
code
### SMTP-AUTH
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
追記が終わったら設定ファイルを保存します。これでmain.cfの設定は完了です。
4-3. 設定ファイルのチェック
設定ファイルのチェック用としてコマンド”postconf”を実行します。デフォルトパラメーターとは異なる設定のみを明示的に表示する”-n”オプションを付与します。以下のように実行します。
command
$ postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
inet_protocols = all
local_recipient_maps = unix:passwd.byname $alias_maps
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
masquerade_domains = testdom.com
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydomain = testdom.com
myhostname = mail.testdom.com
newaliases_path = /usr/bin/newaliases.Postfix
queue_directory = /var/spool/Postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_banner = $myhostname ESMTP
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_type = dovecot
unknown_local_recipient_reject_code = 550
出力された内容を確認して、変更した部分が反映されていることを確認します。
またPostfixには設定ファイルの誤りをチェックするためのコマンド”postfix check”が用意されています。このコマンドで設定ファイルのチェックも行っておきます。
command
# 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の設定変更前に、既存のファイルをバックアップしておきます。具体的には以下の手順でコピーを行います。
command
# cp -p /etc/postfix/master.cf /etc/postfix/master.cf.org
バックアップの完了後、エディタでmaster.cf設定ファイルを開いて変更を行います。本環境ではOSの標準的なエディタである、viエディタを利用しています。
command
# vi /etc/postfix/master.cf
master.cf設定ファイルが開きます。デフォルトのmaster.cfは以下のようになっています。
code
# ================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ================================================================
smtp inet n - n - - smtpd
#smtp inet n - n - 1 postscreen
#smtpd pass - - n - - smtpd
#dnsblog unix - - n - 0 dnsblog
#tlsproxy unix - - n - 0 tlsproxy
#submission inet n - n - - smtpd
# -o syslog_name=Postfix/submission
# -o smtpd_tls_security_level=encrypt
# -o smtpd_sasl_auth_enable=yes
サブミッションポートを有効にするために、”#submission inet n ...”部分のコメントを外します。以下のように変更します。
code # =================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # =================================================================== smtp inet n - n - - smtpd #smtp inet n - n - 1 postscreen #smtpd pass - - n - - smtpd #dnsblog unix - - n - 0 dnsblog #tlsproxy unix - - n - 0 tlsproxy submission inet n - n - - smtpd コメントを外す # -o syslog_name=Postfix/submission # -o smtpd_tls_security_level=encrypt # -o smtpd_sasl_auth_enable=yes
変更できたら、ファイルを保存します。これでPostfixのサブミッションポート設定は完了です。
6. main.cf、master.cfファイル、変更点の反映
設定ファイルの変更が完了しましたので、変更した設定を反映するためにPostfixを再起動します。systemctlコマンドを以下のように実行します。
command
# systemctl restart postfix
エラーが無ければ、正常に再起動は実行されています。再起動後にPostfixのステータスを確認します。
command # systemctl status postfix ● Postfix.service - Postfix Mail Transport Agent Loaded: loaded (/usr/lib/systemd/system/Postfix.service; enabled; vendor preset: disabled) Active: active (running) since 金 2018-10-19 16:08:49 JST; 6s ago Process: 1827 ExecStop=/usr/sbin/postfix stop (code=exited, status=0/SUCCESS) Process: 1840 ExecStart=/usr/sbin/postfix start (code=exited, status=0/SUCCESS) Process: 1838 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS) Process: 1836 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited, status=0/SUCCESS) Main PID: 1912 (master) CGroup: /system.slice/postfix.service tq1912 /usr/libexec/postfix/master -w tq1913 pickup -l -t unix -u mq1914 qmgr -l -t unix -u
表示された上記のステータスから、Postfixが正常に起動していることが確認できました。
Postfixの再起動後に587番ポートがオープンしていることを確認します。LISTENしているポートを確認するために”netstat”コマンドを実行します。TCPポートのみを確認します。
command
# netstat -nat
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
上記のように587番ポートがLISTENしていることが確認できました。これでPostfixの設定は完了です。
7. SMTP-AUTHとサブミッションポートの動作確認
ここまででSMTP-AUTHの設定とサブミッションポートの設定が完了しましたので、一度、設定した部分について確認を行います。
7-1. テストユーザーの作成
SMTP-AUTHの認証テスト用にテストユーザーを作成します。このユーザーは送受信のテストにも利用します。本記事のSMTP-AUTH認証はLinuxのユーザー情報を利用する設定になっていますので、Linuxにユーザーを追加します。useraddコマンドを実行します。
command
# useradd testuser01
ユーザーの作成後、パスワードを設定します。
command # passwd testuser01 ユーザー testuser01 のパスワードを変更。 新しいパスワード: パスワードを入力 新しいパスワードを再入力してください: パスワードを入力 passwd: すべての認証トークンが正しく更新できました。
パスワードについては”password”を指定しています。(実際の設定には、推測されにくいパスワードを設定してください)これでテスト用ユーザーの作成が完了しました。
7-2. SMTPとサブミッションポートの接続テスト
SMTPの25番とサブミッションポートの587番ポートにtelnetコマンドで接続テストを行います。
事前に利用するユーザー名(testuser01)とパスワード(password)をBASE64でエンコードします。本環境の場合は以下のようにperlを実行します。
command
# perl -MMIME::Base64 -e 'print encode_base64("testuser01\0testuser01\0password");'
dGVzdHVzZXIwMQB0ZXN0dXNlcjAxAHBhc3N3b3Jk
文字列”dGVzdHVzZXIwMQB0ZXN0dXNlcjAxAHBhc3N3b3Jk”がエンコードされたユーザー名とパスワードになります。これでテストの準備ができましたので25番ポートから接続してみます。
command
$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.testdom.com
応答待ちになります。EHLOコマンドを入力します。
command ehlo testdom.com 入力 ドメイン名は環境に合わせて下さい 250-mail.testdom.com 250-PIPELINING 250-SIZE 10485760 250-VRFY 250-ETRN 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN
再度、応答待ちになります。”AUTH PLAIN”コマンドに続いてエンコードした情報を入力して下さい。
command AUTH PLAIN 入力 334 dGVzdHVzZXIwMQB0ZXN0dXNlcjAxAHBhc3N3b3Jk 入力 235 2.7.0 Authentication successful
応答として”235 2.7.0 Authentication successful”が返ってくればSMTP-AUTHで認証が出来ています。quitコマンドを入力して、SMTP接続をクローズします。
command
quit
221 2.0.0 Bye
Connection closed by foreign host.
サブミッション用の587番ポートについても同じように接続テストを行います。
command # telnet localhost 587 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 mail.testdom.com ESMTP ehlo testdom.com 入力 250-mail.testdom.com 250-PIPELINING 250-SIZE 10485760 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN AUTH PLAIN 入力 334 dGVzdHVzZXIwMQB0ZXN0dXNlcjAxAHBhc3N3b3Jk 入力 235 2.7.0 Authentication successful
応答として”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”ゾーンの設定を確認します。
command
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
デフォルトでは上記のようにsshのみ許可されています。
8-2. メール送受信サービスの接続許可設定
項目8-1. で確認した”public”ゾーンの接続許可サービスにSMTP、SMTP-Submission、POP3、IMAP4の4サービスを追加します。追加はfirewall-cmdで以下のように行います。
command
# firewall-cmd --zone=public --add-service={smtp,smtp-submission,pop3,imap} --permanent
success
「success」と表示されれば追加は完了です。設定を反映するためにファイアウォールの設定をリロードします。
command
# firewall-cmd --reload
success
「success」と表示されれば設定のリロードは完了です。
8-3. メール送受信サービス用ファイアウォールの設定確認
設定した内容が正常に反映されているかを確認します。確認は以下のように行います。
command # firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens33 sources: services: dhcpv6-client ssh smtp smtp-submission pop3 imap ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
「services」の項目に「smtp smtp-submission pop3 imap」が表示されていれば、ファイヤーウォール設定の確認は完了です。ここまででファイアウォールの接続許可は完了です。
9. テストメールの配信(ローカル)
メールを送受信するための設定が完了しましたので、実際にメールを配信してみます。先ずはメールサーバー自身でメールを配信します。利用するユーザーは項目6-1. で作成したユーザー”testuser01”になります。
9-1. mailコマンドによるメールの配信
CentOSではメールを配送するための”mail”コマンドが用意されています。特にオプションを付与せず、ユーザー名のみ指定して実行します。
command
$ mail testuser01
対話モードに入りますので、Subject(件名)と内容を入力します。
command Subject: test 任意の件名を入力 test 本文を入力 . 本文を入力が終わったら、”.(ドット)”を入力します。 EOT
これでテストメールの配信が完了しました。
9-2. メールログの確認
メールが配送されたことをログから確認します。メールのログは”/var/log/maillog”になります。このファイルへ送受信の記録が出力されます。
lessコマンドでログファイルを開きます。
command
# less /var/log/maillog
以下のようにログが出力されています。
Oct 19 17:15:51 mail postfix/cleanup[2844]: 4AC726DAC7: message-id=<20181019081551.4AC726DAC7@mail.testdom.com>
Oct 19 17:15:51 mail postfix/qmgr[2839]: 4AC726DAC7: from=<root@testdom.com>, size=426, nrcpt=1 (queue active)
Oct 19 17:15:51 mail postfix/local[2846]: 4AC726DAC7: to=<testuser01@mail.testdom.com>, orig_to=, relay=local, delay=0.04, delays=0.03/0.01/0/0, dsn=2.0.0, status=sent (delivered to maildir)
Oct 19 17:15:51 mail postfix/qmgr[2839]: 4AC726DAC7: removed
確認する点は”from(送信元アドレス)”と”to(送信先アドレス)”、及び”to”のstatusになります。上記の場合では
- from:root@testdom.com(送信元)
- to:testuser01@mail.testdom.com(送信先)
- status:sent (delivered to maildir)
となります。上記のログではstatusがsentとなっていることから、メールが配送されたことが分かります。
9-3. メールディレクトリの確認
メールの保存先は、各ユーザーのホームディレクトリ以下にある”Maildir”ディレクトリになります。このディレクトリはメールが配送されると自動的に作成されます。先ほどのテストメールでディレクトリが作成されているかを確認します。
command
# ls -al /home/testuser01/Maildir/
合計 16
drwx------ 5 testuser01 testuser01 4096 10月 19 17:10 .
drwx------ 3 testuser01 testuser01 73 10月 19 17:10 ..
drwx------ 2 testuser01 testuser01 6 10月 19 17:10 cur
-rw------- 1 testuser01 testuser01 51 10月 19 17:10 dovecot-uidlist
-rw------- 1 testuser01 testuser01 8 10月 19 17:10 dovecot-uidvalidity
-r--r--r-- 1 testuser01 testuser01 0 10月 19 17:10 dovecot-uidvalidity.5bc9915b
-rw------- 1 testuser01 testuser01 168 10月 19 17:10 dovecot.index.log
-rw------- 1 testuser01 testuser01 0 10月 19 17:10 maildirfolder
drwx------ 2 testuser01 testuser01 49 10月 19 17:15 new
drwx------ 2 testuser01 testuser01 6 10月 19 17:15 tmp
上記のようにMaildirが作成されて、その配下に幾つかのディレクトリが作成されていることが確認できました。
これでローカルでのメール配送テストとメールディレクトリの確認は完了です。
10. メールクライアントからの動作確認
次は外部からメールの送受信を行い、メールの送受信ができることを確認します。メールクライアントとしてthunderbirdを利用しました。
10-1. メールクライアントの設定と送受信テスト(SMTP-AUTHとPOP3)
メールクライアントであるthunderbirdにメールアカウントを設定します。手動設定で以下のように設定してしました。
設定値は実際の環境に合わせて変更してください。
接続すると、以下のような警告画面が表示されます。これは通信がSSL/TLSで暗号化されていないためです。次の記事で暗号化しますが、ここはリスクを承認して、次へ進みます。
正常に設定ができると、画面のようにアカウントが追加されます。
メールアカウントの追加ができましたので、メールの受信を行います。先ほどローカルで配送されたメールが受信できます。
メールサーバー側に出力されているログは以下のようになります。
Oct 19 17:18:15 mail dovecot: pop3(testuser01): Disconnected: Logged out top=0/0, retr=1/545, del=0/1, size=529
ログからも接続できたことが確認できました。
続いて、SMTP-AUTHを利用してメールを外部にリレー配送してみます。配送先はGoogleのメールサービスGmailのアカウントです。
正常に認証を通過して配送ができました。配送時のメールログは以下になります。
Oct 19 17:19:57 mail postfix/smtpd[2891]: 36F0C6DAC7: client=unknown[110.21.5.10], sasl_method=PLAIN, sasl_username=testuser01
Oct 19 17:19:57 mail postfix/cleanup[2894]: 36F0C6DAC7: message-id=<1ebc0c43-60a5-1aca-1ff4-1ce7da186d3b@testdom.com>
Oct 19 17:19:57 mail postfix/qmgr[2839]: 36F0C6DAC7: from=<testuser01@testdom.com>, size=613, nrcpt=1 (queue active)
Oct 19 17:19:57 mail postfix/smtpd[2891]: disconnect from unknown[110.21.5.10]
Oct 19 17:19:59 mail postfix/smtp[2895]: 36F0C6DAC7: to=<sup@remsys.co.jp>, relay=aspmx.l.google.com[74.125.204.26]:25, delay=2.4, delays=0.11/0.1/1.6/0.61, dsn=2.0.0, status=sent (250 2.0.0 OK 1539937199 x22-v6si24643699pgi.367 - gsmtp)
Oct 19 17:19:59 mail postfix/qmgr[2839]: 36F0C6DAC7: removed
メールログからもSMTP認証を通過してメールが配送されたことを確認できます。
10-2. メールクライアントの設定(SMTP-AUTHとIMAP4)
メールクライアントであるthunderbirdにメールアカウントを設定します。今回はIMAP4で接続するためのアカウントを設定します。手動設定で以下のように設定してしました。設定値は実際の環境に合わせて変更してください。
接続すると、以下のような警告画面が表示されます。これは通信がSSL/TLSで暗号化されていないためです。次の記事で暗号化しますが、ここはリスクを承認して、次へ進みます。
正常に設定ができると、画面のようにアカウントが追加されます。
メールの受信を行います。ログは以下のようになります。
Oct 19 17:27:32 mail dovecot: imap-login: Login: user=, method=PLAIN, rip=110.21.5.10, lip=110.20.3.145, mpid=2924, session=
Oct 19 17:27:32 mail dovecot: imap(testuser01): Disconnected: Logged out in=8 out=395
Oct 19 17:27:44 mail dovecot: imap-login: Login: user=, method=PLAIN, rip=110.21.5.10, lip=110.20.3.145, mpid=2926, session=
上記のようにログからもimap4で接続できていることが確認できました。
これでimap4での確認は完了です。
11. まとめ
今回の記事では、メールサーバーとして送受信が機能するところまで設定を行いました。このままだと暗号化されていないため、ネットワークスニッファなどで認証情報が盗聴されてしまう可能性がありますが、先ずはメールの送受信を行うまでの段階まで設定して動作を確認してみて下さい。メールがどのようなシステムでやり取りされているかを理解することが出来るかと思います。また意外と簡単にメールサーバーの構築が出来ることも分かります。
次回の記事ではLet's Encryptで取得したサーバー証明書を利用してSMTPとPOP3、IMAP4の接続を暗号化していきます。
-
CentOSのPostfixとDovecotにSSLを設定して安全に通信を行う
前回の記事ではメールサーバーとしての基本的な機能である送信(SMTP)と受信(POP3/IMAP)を行うことが出来るように設定を行いました。 この状態でも運用には問題ありませんが、メールサーバーとクライアント間で通信が平文になっていますので ...