今回はメールログ調査の流れについてご紹介させていただきます。
postfixとは
postfixはメール転送エージェントとなっております。
postfixを使用する事でメール配送等を行う事が出来ます。
OSSとして開発されており、サーバー業界でも高いシェア率を誇っております。
調査の流れ
初めにログ調査を行う流れをご紹介いたします。
大まかな流れは以下となっております。
1. ログファイルの場所を確認する
2. ログファイルからキューIDを絞り込む
3. 配送ステータスを確認する
ログファイルの場所を確認する
初めにログファイルの場所を確認する必要がございます。
既にログのパスを知っている方はスキップして大丈夫です!
postfixのデフォルトでのログは以下のパスに出力されます。
/var/log/maillog
上記パスにログが無い場合、ログ出力の指定が行われている可能性がございます。
下記設定ファイル等を確認しパスを確認してください。
/etc/postfix/main.cf
ログファイルからキューIDを絞り込む
次にログファイルからキューIDを絞り込みます。
下記は「test01@example.com」から「test02@example.com」へメールを送信した際の例となります。
Jan 15 12:34:56 hostname postfix/pickup[12345]: ABC123DEF456: uid=1000 from=<test01@example.com>
Jan 15 12:34:56 hostname postfix/cleanup[12346]: ABC123DEF456: message-id=<20230115123456.12345.test01@example.com>
Jan 15 12:34:56 hostname postfix/qmgr[12347]: ABC123DEF456: from=<test01@example.com>, size=1234, nrcpt=1 (queue active)
Jan 15 12:34:57 hostname postfix/smtp[12348]: ABC123DEF456: to=<test02@example.com>, relay=mail.example.com[192.0.2.1]:25, delay=1.2, delays=0.1/0.1/0.5/0.5, dsn=2.0.0, status=sent (250 2.0.0 OK)
Jan 15 12:34:57 hostname postfix/qmgr[12347]: ABC123DEF456: removed
上記例でのキューIDは「ABC123DEF456」となっております。
その他の細かい説明は省かせて頂きますがキューIDにてログの表示条件を絞る事で一連の流れを確認する事が出来ます。
FROM情報からキューIDを絞り込む
FROM情報からキューIDを絞り込む場合は以下の様にgrepを使用して絞りこむ事が出来ます。
cat /var/log/maillog |grep "from=<メールアドレス名>"
今回の例を使用すると以下となります。
#コマンド
cat /var/log/maillog |grep "from=<test01@example.com>"
#結果
Jan 15 12:34:56 hostname postfix/qmgr[12347]: ABC123DEF456: from=<test01@example.com>, size=1234, nrcpt=1 (queue active)
TO情報からキューIDを絞り込む
TO情報からキューIDを絞り込む場合も先程同様の手順でgrepを使用して絞りこむ事が出来ます。
cat /var/log/maillog |grep "to=<メールアドレス名>"
今回の例を使用すると以下となります。
#コマンド
cat /var/log/maillog |grep "to=<test02@example.com>"
#結果
Jan 15 12:34:57 hostname postfix/smtp[12348]: ABC123DEF456: to=<test02@example.com>, relay=mail.example.com[192.0.2.1]:25, delay=1.2, delays=0.1/0.1/0.5/0.5, dsn=2.0.0, status=sent (250 2.0.0 OK)
その他にも日付や時間、メッセージID、IPアドレス等の情報を組み合わせる事でキューIDの絞り込みを行う事が出来ます。
配送ステータスを確認する
先程の手順でキューIDの絞り込みが完了したら配送ステータスを確認します。
配送ステータスは「to=<メールアドレス名>」が記載された行の「status」項目で確認する事が出来ます。
status=ステータス名
ステータス一覧は以下となります。
ステータス名 | 説明 |
---|---|
sent | 配送成功 |
bounced | 配送失敗 |
deferred | 一時的に配送不可 |
今回の例のログは以下となります。
Jan 15 12:34:57 hostname postfix/smtp[12348]: ABC123DEF456: to=<test02@example.com>, relay=mail.example.com[192.0.2.1]:25, delay=1.2, delays=0.1/0.1/0.5/0.5, dsn=2.0.0, status=sent (250 2.0.0 OK)
「status=sent」となっている為、正常に配送された事が分かります。
以上の手順でメールログ調査を行う事が出来ます。