PostfixとDovecotで中継メールサーバ、受信サーバの検証環境を準備してみる

コンピュータ
スポンサーリンク

■メール関連の記事
Postfix(SMTP)とDovecot(POP)で中継メールサーバ、受信サーバの検証環境を準備してみる
Postfixのrelayhost、transport、fallbackに関して
Postfix(SMTPサーバ)のキューの再送間隔に関して
メールサーバのパフォーマンステスト(負荷テスト)で、大量にメールを送る方法
Postfix(SMTPサーバ)でドメイン単位で送信宛先を制限したい
Gmailの送信者ガイドラインに対応するため、TLS、SPF、DKIM、DMARCの動作確認や設定をしてみた(その1)

PostfixとDovecotを用い、簡易な中継メールサーバ(SMTP/MTA)、受信サーバの検証環境を構築する手順を記載いたします。 一通り眺めれば、使い方を覚えることができ、メール送受信の仕組みも理解できると思います。

準備する環境に関して

  • OSはRHEL(Linux)
  • 自ドメインはtest.local
  • 中継メールサーバと内部受信サーバ(POP)は同居させない
  • 中継メールサーバがtest.localを処理する際は、内部受信サーバへ転送
  • 中継メールサーバがtest.local以外のメールを受信した際はMX配送
  • 中継メールサーバは、自ネットワークのみ転送許可(オープンリレー対策)
  • 内部受信サーバがtest.local以外のメールを処理する際は、中継メールサバへ転送
  • 内部受信サーバはtest.localドメインのメールを受信し、POP(Dovecot)で開けるようにする

図で表すと、下図の通り。

スポンサーリンク

中継メールサーバの準備

Postfixのインストール

Postfixのパッケージ確認。既にインストールされているようだが、最新があるか確認。現在のサービスの状態確認

# rpm -qa | grep -i postfix  //パッケージ確認
postfix-3.5.8-2.el8.x86_64
postfix-perl-scripts-3.5.8-2.el8.x86_64
pcp-pmda-postfix-5.3.1-5.el8.x86_64


# dnf update postfix  //最新版があるか確認
サブスクリプション管理リポジトリーを更新しています。
メタデータの期限切れの最終確認: 19:28:24 時間前の 2021年12月18日 18時14分07秒 に実施しました。
依存関係が解決しました。
行うべきことはありません。
完了しました!


# systemctl status postfix.service  //サービスの状態確認
● postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/usr/lib/systemd/system/postfix.service; disabled; vendor preset: disabled)
   Active: inactive (dead)  //Postfixサービスは停止中

設定ファイル(main.cf、transport)の準備

main.cfファイルと、test.localドメインのメールを内部メールサーバへ転送するため、transportファイルを準備する。

# cd /etc/postfix/  //main.cfのディレクトリに移動


# ll  //ファイル確認
合計 220
-rw-r--r--. 1 root root 21111  9月  8  2019 access
-rw-r--r--. 1 root root 13194  6月  4  2018 canonical
-rw-r--r--. 1 root root    60  8月  5 19:08 dynamicmaps.cf
drwxr-xr-x. 2 root root     6  8月  5 19:08 dynamicmaps.cf.d
-rw-r--r--. 1 root root 10221  9月 17  2016 generic
-rw-r--r--. 1 root root 23802 10月  9  2016 header_checks
-rw-r--r--. 1 root root 29369  8月  5 19:08 main.cf
-rw-r--r--. 1 root root 29130  8月  5 19:08 main.cf.proto
-rw-r--r--. 1 root root  6372  8月  5 19:08 master.cf
-rw-r--r--. 1 root root  6372  8月  5 19:08 master.cf.proto
-rw-r--r--. 1 root root 20163  8月  5 19:08 postfix-files
drwxr-xr-x. 2 root root     6  8月  5 19:08 postfix-files.d
-rw-r--r--. 1 root root  6929  2月 14  2016 relocated
-rw-r--r--. 1 root root 13436  1月 11  2020 transport
-rw-r--r--. 1 root root 13963  6月  4  2018 virtual


# cp -p main.cf main.cf.org  //オリジナルファイルを避ける

※余談
以下のコマンドを覚えておくとよい
# postconf  //現在のパラーメタ一覧
# postconf -d  //デフォルトパラーメタ一覧
# postconf -n  //デフォルト値から変更したパラーメタ一覧


# vim main.cf //今回の要件を満たすため最低限の修正
--------------------------------
#myhostname = virtual.domain.tld
myhostname = relay.test.local  //中継メールサーバのFQDNを記載
--------------------------------
#mydomain = domain.tld
mydomain = test.local  //自ドメインに修正
--------------------------------
#myorigin = $mydomain
myorigin = $mydomain  //デフォルトmyhostnameのためmydomainに修正
--------------------------------
#inet_interfaces = localhost     //デフォルト「127.0.0.1:25」のため無効にする
inet_interfaces = 192.168.11.11  //25番ポートでListenするIPを記載
--------------------------------
#inet_protocols = all  //デフォIPv6でもListenしているため無効にする
inet_protocols = ipv4  //IPv4のみでListenさせるに修正。小文字です
--------------------------------
mynetworks = 192.168.11.0/24, 127.0.0.0/8   
//デフォはlocalhost。オープンリレーにならぬよう、必ずメールの中継を許可するアドレスを明記する
--------------------------------
transport_maps = hash:/etc/postfix/transport  //メール受信サーバへ転送するルールを明記するファイル

※transportの詳細は、こちらのページを参照


# diff main.cf.org main.cf  //修正箇所を比較すると以下の通り
95a96
> myhostname = relay.test.local
102a104
> mydomain = test.local
118a121
> myorigin = $mydomain
135c138,139
< inet_interfaces = localhost
---
> #inet_interfaces = localhost
> inet_interfaces = 192.168.11.11
138c142,143
< inet_protocols = all
---
> #inet_protocols = all
> inet_protocols = ipv4
285a291
> mynetworks = 192.168.11.0/24, 127.0.0.0/8
738a745
> transport_maps = hash:/etc/postfix/transport


# vim /etc/postfix/transport //受信メールサーバへtest.localを転送する設定を作成
test.local      smtp:192.168.11.12  //1行を追記するのみ


# postmap transport  //dbファイルの作成
# ll  //dbファイルが作成されていることを確認(★の部分)
合計 292
-rw-r--r--. 1 root root 29581 12月 19 14:20 1
-rw-r--r--. 1 root root 21111  9月  8  2019 access
-rw-r--r--. 1 root root 13194  6月  4  2018 canonical
-rw-r--r--. 1 root root    60  8月  5 19:08 dynamicmaps.cf
drwxr-xr-x. 2 root root     6  8月  5 19:08 dynamicmaps.cf.d
-rw-r--r--. 1 root root 10221  9月 17  2016 generic
-rw-r--r--. 1 root root 23802 10月  9  2016 header_checks
-rw-r--r--. 1 root root 29580 12月 19 14:22 main.cf
-rw-r--r--. 1 root root 29369  8月  5 19:08 main.cf.org
-rw-r--r--. 1 root root 29130  8月  5 19:08 main.cf.proto
-rw-r--r--. 1 root root  6372  8月  5 19:08 master.cf
-rw-r--r--. 1 root root  6372  8月  5 19:08 master.cf.proto
-rw-r--r--. 1 root root 20163  8月  5 19:08 postfix-files
drwxr-xr-x. 2 root root     6  8月  5 19:08 postfix-files.d
-rw-r--r--. 1 root root  6929  2月 14  2016 relocated
-rw-r--r--. 1 root root 13471 12月 19 14:18 transport
-rw-r--r--. 1 root root 12288 12月 19 14:23 transport.db  ★
-rw-r--r--. 1 root root 13963  6月  4  2018 virtual

起動設定の確認

サービス稼働の確認。active(running)で稼働の確認可能。Loadedが disabled になっているためOS再起動時はサービスが自動起動しないため enable へ変更する

# systemctl start postfix.service  //Postfixサービス起動


# systemctl status postfix.service  //Postfixサービスのステータス確認
● postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/usr/lib/systemd/system/postfix.service; disabled; vendor preset: disabled)
   Active: active (running) since Sun 2021-12-19 14:31:12 JST; 4s ago
  Process: 5503 ExecStart=/usr/sbin/postfix start (code=exited, status=0/SUCCESS)
  Process: 5501 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS)
  Process: 5497 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited, status=0/SUCCESS)
 Main PID: 5572 (master)
    Tasks: 3 (limit: 11228)
   Memory: 4.9M
   CGroup: /system.slice/postfix.service
           tq5572 /usr/libexec/postfix/master -w
           tq5573 pickup -l -t unix -u
           mq5574 qmgr -l -t unix -u


# systemctl enable postfix.service  //サービスの自動起動を有効にする
Created symlink /etc/systemd/system/multi-user.target.wants/postfix.service → /usr/lib/systemd/system/postfix.service.



# systemctl status postfix.service //enabledに変更されたことを確認
● postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor preset: disabled)
   Active: inactive (dead)

受信サーバの準備

Postfixのインストール

中継メールサーバと同様の手順となるため、省略

設定ファイル(main.cf)の準備

# cd /etc/postfix/  //main.cfのディレクトリに移動


# ll  //ファイル確認
合計 220
-rw-r--r--. 1 root root 21111  9月  8  2019 access
-rw-r--r--. 1 root root 13194  6月  4  2018 canonical
-rw-r--r--. 1 root root    60  8月  5 19:08 dynamicmaps.cf
drwxr-xr-x. 2 root root     6  8月  5 19:08 dynamicmaps.cf.d
-rw-r--r--. 1 root root 10221  9月 17  2016 generic
-rw-r--r--. 1 root root 23802 10月  9  2016 header_checks
-rw-r--r--. 1 root root 29369  8月  5 19:08 main.cf
-rw-r--r--. 1 root root 29130  8月  5 19:08 main.cf.proto
-rw-r--r--. 1 root root  6372  8月  5 19:08 master.cf
-rw-r--r--. 1 root root  6372  8月  5 19:08 master.cf.proto
-rw-r--r--. 1 root root 20163  8月  5 19:08 postfix-files
drwxr-xr-x. 2 root root     6  8月  5 19:08 postfix-files.d
-rw-r--r--. 1 root root  6929  2月 14  2016 relocated
-rw-r--r--. 1 root root 13436  1月 11  2020 transport
-rw-r--r--. 1 root root 13963  6月  4  2018 virtual


# cp -p main.cf main.cf.org  //オリジナルファイルを避ける

※余談
以下のコマンドを覚えておくとよい
# postconf     //現在のパラーメタ一覧
# postconf -d  //デフォルトパラーメタ一覧
# postconf -n  //デフォルト値から変更したパラーメタ一覧


# vim main.cf //今回の要件を満たすため最低限の修正
--------------------------------
#myhostname = virtual.domain.tld
myhostname = pop.test.local  //中継メールサーバのFQDNを記載
--------------------------------
#mydomain = domain.tld
mydomain = test.local  //自ドメインに修正
--------------------------------
#myorigin = $mydomain
myorigin = $mydomain  //デフォルトmyhostnameのためmydomainに修正
--------------------------------
#inet_interfaces = localhost  //デフォルト「127.0.0.1:25」のため無効にする
inet_interfaces = 192.168.11.12  //25番ポートでListenするIPを記載
--------------------------------
#inet_protocols = all  //デフォIPv6でもListenしているため無効にする
inet_protocols = ipv4  //IPv4のみでListenさせるに修正。小文字です
--------------------------------
mynetworks = 192.168.11.0/24, 127.0.0.0/8   
//デフォはlocalhost。オープンリレーにならぬよう、必ずメールの中継を許可するアドレスを明記する。中継機能が不要で、POP機能のみの場合は変更不要
--------------------------------
#mydestination = $myhostname, localhost.$mydomain, localhost  //受信するドメインを明記するため無効にする
mydestination = localhost, $mydomain  //To:がtest.localであるメールを受信ボックスに入れる(POPで受診するドメインを指定)
--------------------------------
relayhost = [192.168.11.11]  //To:がtest.local以外のメールは192.168.11.11の中継メールサーバへ転送


# diff main.cf.org main.cf  //修正箇所を比較すると以下の通り
95a96
> myhostname = pop.test.local
102a104
95a96
> myhostname = pop.test.local
102a104
> mydomain = test.local
118a121
> myorigin = $mydomain
135c138,139
< inet_interfaces = localhost
---
> #inet_interfaces = localhost
> inet_interfaces = 192.168.11.12
138c142,143
< inet_protocols = all
---
> #inet_protocols = all
> inet_protocols = ipv4
183c188,189
< mydestination = $myhostname, localhost.$mydomain, localhost
---
> #mydestination = $myhostname, localhost.$mydomain, localhost
> mydestination = localhost, $mydomain
285a292
> mynetworks = 192.168.11.0/24, 127.0.0.0/8
336a344
> relayhost = [192.168.11.11]

起動設定の確認

中継メールサーバと同様の手順となるため、省略

Dovecotのインストール

# rpm -qa | grep -i dovecot //パッケージ確認
dovecot-2.3.8-9.el8.x86_64


# dnf update dovecot  //最新版があるか確認
サブスクリプション管理リポジトリーを更新しています。
メタデータの期限切れの最終確認: 17:55:42 時間前の 2021年12月18日 21時06分51秒 に実施しました。
依存関係が解決しました。
行うべきことはありません。
完了しました!


# systemctl status dovecot  //サービスの状態確認
● dovecot.service - Dovecot IMAP/POP3 email server
   Loaded: loaded (/usr/lib/systemd/system/dovecot.service; disabled; vendor pr>
   Active: inactive (dead)
     Docs: man:dovecot(1)
           http://wiki2.dovecot.org/

POPの設定

/etc/passwdファイルでアカウント、パスワードを管理、受信メールはデフォルトのmailbox形式を想定とする。

# cd /etc/dovecot/
# ll
合計 20
drwxr-xr-x. 2 root root 4096 12月 10 20:53 conf.d
-rw-r--r--. 1 root root 4391 10月  8  2019 dovecot.conf

# cp -p dovecot.conf dovecot.conf.org  //オリジナルファイルを避ける


# vim dovecot.conf    //2か所修正
----------------------------------------------
#protocols = imap pop3 lmtp submission     //POPのみ有効インするため無効
protocols = pop3                           //POP3のみ明示的に有効
----------------------------------------------
#listen = *, ::
listen = 192.168.11.12                     //自身のアドレスのみでListenさせる


# vim /etc/dovecot/conf.d/10-auth.conf  //1か所修正
----------------------------------------------
#disable_plaintext_auth = yes  //コメントアウトする
disable_plaintext_auth = no  //plaintextを有効にする


# vim /etc/dovecot/conf.d/10-mail.conf  //1か所修正
----------------------------------------------
#mail_location =
mail_location = mbox:~/mail:INBOX=/var/mail/%u  //mailboxの場所を指定

起動設定の確認

# systemctl start dovecot  //Dovecotのサービス起動


# systemctl enable dovecot  //OS再起動時にサービスを自動起動にする
Created symlink /etc/systemd/system/multi-user.target.wants/dovecot.service → /usr/lib/systemd/system/dovecot.service.


# systemctl status dovecot  //Dovecotのステータス確認
● dovecot.service - Dovecot IMAP/POP3 email server
   Loaded: loaded (/usr/lib/systemd/system/dovecot.service; enabled; vendor pre>
   Active: active (running) since Sun 2021-12-19 15:11:34 JST; 12s ago
     Docs: man:dovecot(1)
           http://wiki2.dovecot.org/
 Main PID: 3352 (dovecot)
    Tasks: 4 (limit: 11228)
   Memory: 6.8M
   CGroup: /system.slice/dovecot.service
           tq3352 /usr/sbin/dovecot -F
           tq3354 dovecot/anvil
           tq3355 dovecot/log
           mq3356 dovecot/config

動作確認

動作確認の前に、以下の通り通信ができることを必ず確認してから実施する。

  • 192.168.11.11 ⇔ 192.168.11.12の双方向で25番ポートにアクセス可能か
  • 192.168.11.11 ⇒ 192.168.11.12に対し110番ポートにアクセス可能か

アクセスが可能かは、ncコマンドなどで確認すると良い。詳細はこちらの記事を参照

# nc 192.168.11.11 25  //中継メールサーバのPostfixにアクセスできる確認
220 relay.test.local ESMTP Postfix


# nc 192.168.11.12 25  //受信メールサーバのPostfixにアクセスできる確認
220 pop.test.local ESMTP Postfix


# nc 192.168.11.12 110  //受信メールサーバのDovecotにアクセスできるか確認
+OK Dovecot ready.

上記のアクセスがNGの場合は、Postfix/Dovecotサービスが起動していない、firewalldのサービスが邪魔している可能性があるため、適宜対応する。

firewalldのサービス停止は以下の通り。

# systemctl stop firewalld.service      //firewalldサービス停止
# systemctl disable firewalld.service   //firewalldサービスの自動起動無効

上記までの確認が終わったら、要件を満たす動きになっているか確認する。mailxコマンドがあると便利なため、中継/受信向けのメールサーバへ導入しておくとよい。

# dnf install mailx      //mailxコマンドを追加する
サブスクリプション管理リポジトリーを更新しています。
メタデータの期限切れの最終確認: 0:47:05 時間前の 2021年12月19日 14時51分40秒 に 実施しました。
依存関係が解決しました。
================================================================================
 パッケージ
           Arch       バージョン        リポジトリー                      サイズ
================================================================================
インストール:
 mailx     x86_64     12.5-29.el8       rhel-8-for-x86_64-baseos-rpms     257 k

トランザクションの概要
================================================================================
インストール  1 パッケージ

ダウンロードサイズの合計: 257 k
インストール後のサイズ: 491 k
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
mailx-12.5-29.el8.x86_64.rpm                    1.0 MB/s | 257 kB     00:00
--------------------------------------------------------------------------------
合計                                            1.0 MB/s | 257 kB     00:00
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                        1/1
  インストール中   : mailx-12.5-29.el8.x86_64                               1/1
  scriptletの実行中: mailx-12.5-29.el8.x86_64                               1/1
  検証             : mailx-12.5-29.el8.x86_64                               1/1
インストール済みの製品が更新されています。

インストール済み:
  mailx-12.5-29.el8.x86_64

完了しました!


# which mailx    //導入の確認
/usr/bin/mailx

中継メールサーバがtest.localを処理する際は、内部受信サーバへ転送

追加したmailxコマンドで、メールを送信してみる。

# echo "本文_test mail" | mailx -s "タイトル_title" -S smtp=smtp://192.168.11.11 -r relay@test.local user01@test.local

「中継メールサーバ」の /var/log/maillog を確認。
test.local宛てのメールを192.168.11.12へrelayし、「status=sent(250 2.0.0 Ok~」で正常に転送できたことを確認。

Dec 19 17:42:52 relay postfix/smtpd[4558]: connect from relay[192.168.11.11]
Dec 19 17:43:17 relay postfix/smtpd[4558]: 8A4C48AF7DB: client=relay[192.168.11.11]
Dec 19 17:43:21 relay postfix/cleanup[4565]: 8A4C48AF7DB: message-id=<20211219084317.8A4C48AF7DB@relay.test.local>
Dec 19 17:43:21 relay postfix/qmgr[4547]: 8A4C48AF7DB: from=<test@test.local>, size=299, nrcpt=1 (queue active)
Dec 19 17:43:21 relay postfix/smtp[4567]: 8A4C48AF7DB: to=<user01@test.local>, relay=192.168.11.12[192.168.11.12]:25, delay=14, delays=14/0.02/0.06/0.04, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 94EEA8AF7CF)
Dec 19 17:43:21 relay postfix/qmgr[4547]: 8A4C48AF7DB: removed

「受信メールサーバ」の /var/log/maillog を確認。
test.localのメールを192.168.11.11から受信し、「status=sent (delivered to~」でmailboxに受診できたことを確認。

Dec 19 17:43:21 pop postfix/smtpd[4227]: connect from unknown[192.168.11.11]
Dec 19 17:43:21 pop postfix/smtpd[4227]: discarding EHLO keywords: CHUNKING
Dec 19 17:43:21 pop postfix/smtpd[4227]: discarding EHLO keywords: CHUNKING
Dec 19 17:43:21 pop postfix/smtpd[4227]: 94EEA8AF7CF: client=unknown[192.168.11.11]
Dec 19 17:43:21 pop postfix/cleanup[4231]: 94EEA8AF7CF: message-id=<20211219084317.8A4C48AF7DB@relay.test.local>
Dec 19 17:43:21 pop postfix/qmgr[1729]: 94EEA8AF7CF: from=<test@test.local>, size=480, nrcpt=1 (queue active)
Dec 19 17:43:21 pop postfix/smtpd[4227]: disconnect from unknown[192.168.11.11] ehlo=2 starttls=1 mail=1 rcpt=1 data=1 quit=1 commands=7
Dec 19 17:43:21 pop postfix/local[4232]: 94EEA8AF7CF: to=<user01@test.local>, relay=local, delay=0.05, delays=0.03/0.02/0/0, dsn=2.0.0, status=sent (delivered to mailbox)
Dec 19 17:43:21 pop postfix/qmgr[1729]: 94EEA8AF7CF: removed

中継メールサーバがtest.local以外のメールを受信した際はMX配送

中継メールサーバに対し、以下コマンドでyahoo.co.jp宛てにメールを送ってみる。

# echo "本文_test mail" | mailx -s "タイトル_title" -S smtp=smtp://192.168.11.11 -r relay@test.local aaaabc@yahoo.co.jp

「中継メールサーバ」の /var/log/maillog を確認。
yahoo.co.jp宛てのメールを「 relay=mx3.mail.yahoo.co.jp[124.83.142.249]」で、yahooへrelayしようとしているのを確認できるが、検証環境のプロバイダにて直接tcp/25ポートのアウトバウンド向け通信が許可されていないため、送信失敗になる。外部と正常に通信できていれば、「status=sent(250 2.0.0 Ok~」で正常に転送できるはずである。とりま、DNSにてMXレコードを引いて配送を試みているのは確認ができている。

Dec 19 18:20:55 relay postfix/smtpd[5486]: connect from relay[192.168.11.11]
Dec 19 18:20:55 relay postfix/smtpd[5486]: 45E498BCBC0: client=relay[192.168.11.11]
Dec 19 18:20:55 relay postfix/cleanup[5489]: 45E498BCBC0: message-id=<61bef977.JqmZltnb/0uoc9L3%relay@test.local>
Dec 19 18:20:55 relay postfix/qmgr[4547]: 45E498BCBC0: from=<relay@test.local>, size=538, nrcpt=1 (queue active)
Dec 19 18:20:55 relay postfix/smtpd[5486]: disconnect from relay[192.168.11.11] helo=1 mail=1 rcpt=1 data=1 quit=1 commands=5
Dec 19 18:21:10 relay postfix/smtp[5490]: 45E498BCBC0: to=<aaaabc@yahoo.co.jp>, relay=mx3.mail.yahoo.co.jp[124.83.142.249]:25, delay=15, delays=0.06/0.02/0.12/15, dsn=5.0.0, status=bounced (host mx3.mail.yahoo.co.jp[124.83.142.249] said: 554 delivery error: dd This user doesn't have a yahoo.co.jp account (aaaabc@yahoo.co.jp) [-5] - mta767.mail.djm.yahoo.co.jp (in reply to end of DATA command))
Dec 19 18:21:10 relay postfix/cleanup[5489]: 5F1D78BCBC5: message-id=<20211219092110.5F1D78BCBC5@relay.test.local>

中継メールサーバは、自ドメインのネットワークのみ転送許可(オープンリレー対策)

「中継メールサーバ」の /var/log/maillog を確認。

192.168.11.0/24に所属していないクライアントより、中継メールサーバへメールを送ると、「 Relay access denied 」で、中継拒否さていることを確認できる。

Dec 19 18:36:11 relay postfix/smtpd[6268]: NOQUEUE: reject: RCPT from relay[192.168.11.11]: 454 4.7.1 <aaaabc@yahoo.co.jp>: Relay access denied; from=<relay@test.local> to=<aaaabc@yahoo.co.jp> proto=SMTP helo=<relay>

内部受信サーバがtest.local以外のメールを処理する際は、中継メールサバへ転送

「内部受信メールサーバ」の /var/log/maillog を確認。

内部受信メールサーバへ、yahoo.co.jp宛てのメールを送信すると、「 relay=192.168.11.11[192.168.11.11]:25, delay=0.15, delays=0.05/0.02/0.05/0.02, dsn=2.0.0, status=sent (250 2.0.0 Ok 」で、中継メールサーバへ転送していることを確認できる。

Dec 19 18:59:00 pop postfix/smtpd[6715]: connect from unknown[192.168.11.11]
Dec 19 18:59:00 pop postfix/smtpd[6715]: 143728AF7CB: client=unknown[192.168.11.11]
Dec 19 18:59:00 pop postfix/cleanup[6719]: 143728AF7CB: message-id=<61bf0263.qHNYnuwQUxUKQYw3%relay@test.local>
Dec 19 18:59:00 pop postfix/qmgr[6709]: 143728AF7CB: from=<relay@test.local>, size=514, nrcpt=1 (queue active)
Dec 19 18:59:00 pop postfix/smtpd[6715]: disconnect from unknown[192.168.11.11] helo=1 mail=1 rcpt=1 data=1 quit=1 commands=5
Dec 19 18:59:00 pop postfix/smtp[6720]: 143728AF7CB: to=<aaaabc@yahoo.co.jp>, relay=192.168.11.11[192.168.11.11]:25, delay=0.15, delays=0.05/0.02/0.05/0.02, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 19E4E8BCBC0)
Dec 19 18:59:00 pop postfix/qmgr[6709]: 143728AF7CB: removed

内部受信サーバはtest.localドメインのメールを受信し、POP(Dovecot)で開けるようにする

受信サーバには、テストメール「user01@test.local」を送信している前提とする。

# nc 192.168.11.12 110  //コマンドでPOP確認
+OK Dovecot ready.
user user01 //user名指定
+OK
pass user01  //パスワード指定
+OK Logged in.
list  //メッセージ数、サイズを確認
+OK 1 messages:
1 579
.
retr 1  //メッセージ番号を指定し、中身を確認
+OK 579 octets
Return-Path: <test@test.local>
X-Original-To: user01@test.local
Delivered-To: user01@test.local
Received: from relay.test.local (unknown [192.168.11.11])
        by pop.test.local (Postfix) with ESMTPS id 94EEA8AF7CF
        for <user01@test.local>; Sun, 19 Dec 2021 17:43:21 +0900 (JST)
Received: from l (relay [192.168.11.11])
        by relay.test.local (Postfix) with SMTP id 8A4C48AF7DB
        for <user01@test.local>; Sun, 19 Dec 2021 17:43:07 +0900 (JST)
Message-Id: <20211219084317.8A4C48AF7DB@relay.test.local>
Date: Sun, 19 Dec 2021 17:43:07 +0900 (JST)
From: test@test.local

aaaa
.

/var/mail/user01の権限次第で、確認がNGになる場合がある。その場合は、対象ユーザのmailboxの件権を以下の通り修正し、再度確認していただきた。

# ll /var/mail/user01
-rw-rw-rw-. 1 user01 mail 706 12月 19 20:15 /var/mail/user01

■メール関連の記事
Postfix(SMTP)とDovecot(POP)で中継メールサーバ、受信サーバの検証環境を準備してみる
Postfixのrelayhost、transport、fallbackに関して
Postfix(SMTPサーバ)のキューの再送間隔に関して
メールサーバのパフォーマンステスト(負荷テスト)で、大量にメールを送る方法
Postfix(SMTPサーバ)でドメイン単位で送信宛先を制限したい
Gmailの送信者ガイドラインに対応するため、TLS、SPF、DKIM、DMARCの動作確認や設定をしてみた(その1)

タイトルとURLをコピーしました