トップ ITインフラ サーバー メールサーバー maillogの見方

maillogの見方―Postfix、Dovecotが出力するログの見方

Postfix、Dovecotの構築やログの見方などメールサーバ関連の情報をまとめています。

▲記事トップへ

目次

この記事の目次です。

1. maillogとは
2. maillogのフォーマット
3. maillogを見るために必要なPostfixのプロセスの知識とログの見方
4. 異変に気づいたときなどの参考情報

もっと知識を広げるための参考
更新履歴

1. maillogとは

maillogとは、Postfixなどメールサーバがログ出力するログファイルの名前です。初めに少しPostixとmaillogとはどのようなものか触れておきます。

2. maillogのフォーマット

本記事では、CentOS7が出力する/var/log/maillogの例となります。他のディストリビューションでも基本的に変わらないと思います。

Aug 19 12:04:03 xxxxxxxxxx postfix/qmgr[2504]: 3ED5B4029F76: from=<maillog@xxxxxxxx.xxx>, size=7161, nrcpt=2 (queue active)

各項目は次のとおりに対応しています。

(日時)(ホスト名) postfix/プロセス名[プロセスID]: (キュー番号): 処理内容

3. maillogを見るために必要なPostfixのプロセスの知識とログの見方

Webサーバのログと比べると、maillogの見方は難しいといえると思います。 とくにPostfixの場合、複数のプロセスが連携してメールの処理を行っているので、ログの意味を理解するには各プロセスの役割を知っている必要があります。 Postfixの代表的なプロセスと、そのプロセスが出力するログについて簡単にまとめておきます。

postfixの内部構造とメールの流れ

masterプロセスのログの見方

システムに常駐しているPostfixのマスタープロセスです。以降で記載している大部分のプロセスを統括している重要なプロセスっです。ログに登場するのは起動/停止くらいです。

maillogのmasterプロセスのログ出力例)
Postfixの停止

Aug 19 15:02:59 xxxxxxxxxx postfix/master[2356]: terminating on signal 15

maillogのmasterプロセスのログ出力例)
Postfixの起動

Aug 19 15:03:00 xxxxxxxxxx postfix/master[2502]: daemon started -- version 2.10.1, configuration /etc/postfix

pickupプロセスのログの見方

システムに常駐し、maildropキューに新しいメールが入っているかを監視するプロセスです。入っていればcleanupプロセスに渡します。

maildropキューに入るのはPostfixが動作しているシステムのローカルユーザが配送を依頼したメールのみです。ですのでログにはuidとユーザ名が出力されます。

maillogのpickupプロセスのログ出力例)
maildropキューに入ったメールの配送処理の開始

Aug 17 16:11:23 xxxxxxxxxx postfix/pickup[7670]: AC0FF40D8B58: uid=48 from=<root>

smtpdプロセスのログの見方

SMTPデーモンに相当するプロセスです。外部のホストからメール配送の要求があった場合に、その接続を受け付けます。受信したメッセージはcleanupプロセスに渡します。

外部からの接続を受け付けるプロセスであるため、様々なログを出力します。

maillogのsmtpdプロセスのログ出力例)
外部のSMTPサーバからの接続を受信

Aug 19 12:04:03 xxxxxxxxxx postfix/smtpd[17521]: connect from XXXXX@XXX.XX.XX[XXX.XXX.XXX.XXX]

cleanupプロセスのログの見方

pickupプロセスやsmtpdプロセス経由で入ってきたメールをincomingキューに入れ、qmgrプロセスにその到着を通知します。

maillogのcleanupプロセスのログ出力例)
配送受付メールについてヘッダ情報を付加してincomingキューにつなげる

Aug 19 12:04:03 xxxxxxxxxx postfix/cleanup[17530]: 3ED5B4029F76: message-id=<xxxxx@xxxx.xxx.xx>

qmgrプロセスのログの見方

システムに常駐し、incomingキューに入ったメールの配送処理を行います。qmgrは、Queue Managerの略です。

配送先がローカルユーザの場合はlocalプロセスを、外部のメールシステムを経由する場合はsmtpプロセスを呼び出します。

maillogのqmgrプロセスのログ出力例)
incomingキューに入ったメールの配送処理を実施

Aug 19 12:04:03 xxxxxxxxxx postfix/qmgr[2504]: 3ED5B4029F76: from=<xxxxx@xxxx.xxx.xx>, size=7161, nrcpt=2 (queue active)
Aug 19 12:04:03 xxxxxxxxxx postfix/qmgr[2504]: 3ED5B4029F76: removed

localプロセスのログの見方

ローカルユーザ宛のメールの配送を行います。

maillogのlocalプロセスのログ出力例)
通常配信された場合

Jul 19 06:57:17 xxxxxxxxxx postfix/local[32468]: 0A74E40B3727: to=<root@XXX.XXX.XXX.XXX>, orig_to=<root>, relay=local, delay=0.03, delays=0.02/0.01/0/0, dsn=2.0.0, status=sent (delivered to maildir)

smtpプロセスのログの見方

qmgrから依頼を受けて、外部へのメッセージの転送を行います。smtpdと同様に外部とのインタフェースになるプロセスです。接続先のホストの状態に合わせてさまざまなログを出力します。

maillogのsmtpプロセスのログ出力例)
正常配信された場合

Aug 19 12:04:03 xxxxxxxxxx postfix/smtp[17533]: 3ED5B4029F76: to=<xxxx@xxxx.xx.xx>, orig_to=<xxxx@xxxx.xxx>, relay=xxx.xxxx.xx.xx[xxx.xxx.xxx.xxx]:25, delay=0.41, delays=0.1/0.01/0.01/0.29, dsn=2.0.0, status=sent (250 Message received: xxxxxxxxxxx@xxxxxx.xxxxxx.xx.xx)

4. 異変に気づいたときなどの参考情報

maillogを見ていて、異変に気づいたときなどの参考情報を追記していきます。

maillogを見ていて海外メールをはじきたい場合

即席で怪しい海外の英文メールをはじきたい場合、タイムゾーンでフィルタすると効果的です。Postfixの設定手順は以下です。

①main.cnfに以下を追加

header_checks = regexp:/etc/postfix/header_checks

②header_checksに以下を追加

日本(+0900)以外全部フィルタする設定です。必要に応じて、除外を特定のタイムゾーンをコメントアウトするのも楽です。

/^Date:.*-0900/ REJECT
/^Date:.*0000/ REJECT
/^Date:.*0100/ REJECT
/^Date:.*0200/ REJECT
/^Date:.*0300/ REJECT
/^Date:.*0400/ REJECT
/^Date:.*0500/ REJECT
/^Date:.*0600/ REJECT
/^Date:.*0700/ REJECT
/^Date:.*0800/ REJECT
/^Date:.*1000/ REJECT
/^Date:.*1100/ REJECT
/^Date:.*1200/ REJECT
/^Date:.*1300/ REJECT
/^Date:.*1400/ REJECT
/^Date:.*0030/ REJECT
/^Date:.*0130/ REJECT
/^Date:.*0230/ REJECT
/^Date:.*0330/ REJECT
/^Date:.*0430/ REJECT
/^Date:.*0530/ REJECT
/^Date:.*0630/ REJECT
/^Date:.*0730/ REJECT
/^Date:.*0830/ REJECT
/^Date:.*0930/ REJECT
/^Date:.*1030/ REJECT
/^Date:.*1130/ REJECT
/^Date:.*1230/ REJECT
/^Date:.*1330/ REJECT
/^Date:.*1430/ REJECT
/^Date:.*0045/ REJECT
/^Date:.*0145/ REJECT
/^Date:.*0245/ REJECT
/^Date:.*0345/ REJECT
/^Date:.*0445/ REJECT
/^Date:.*0545/ REJECT
/^Date:.*0645/ REJECT
/^Date:.*0745/ REJECT
/^Date:.*0845/ REJECT
/^Date:.*0945/ REJECT
/^Date:.*1045/ REJECT
/^Date:.*1145/ REJECT
/^Date:.*1245/ REJECT
/^Date:.*1345/ REJECT
/^Date:.*1445/ REJECT

③postfix再起動

# systemctl restart postfix

maillogを見ていてスパム送信している恐れに気づいた場合

maillogを見ていて、メールアカウントが乗っ取られスパムメールが配信されている場合、IPやドメインがブラックリスト登録されているか確認しておいた方がいいです。 メールアカウントのパスワードを変更し、もしブラックリストに登録されてしまっている場合は、リストが広がらないように削除申請が必要です。 放っておくとメールが送信できないだけではなく、ドメインのサイトを検索エンジンやセキュリティソフトで表示する際に「このサイトは・・・」と警告表示される恐れがあります。

ブラックリストの例

ブラックリスト検索サイトをいくつか調べてみました。

上記がブラックリストの例です。疑いがある場合は、まずは、簡単にチェックできるSPAMHAUS当たりからチェックしてみるといいかもです。 挙げたものだけではなく、たくさんあるようです(少なくとも20~30はあるようです)が、もし登録されて入れもメインどころで拒否されなければ打撃は少ないのではと思います。 広がらないようにする必要はありますが。

SPAMHAUSの場合、以下のURLの「XXX.XXX.XXX.XXX」を調べたいサーバのIPにすれば確認できます。赤字で「Listed」となったらブラックリストに登録されていることになります。

https://www.spamhaus.org/query/ip/XXX.XXX.XXX.XXX

もっと知識を広げるための参考

更新履歴

戻る

スポンサーリンク

サイト内のページ

言語
C・C++ /HTML /Java /JavaScript /PHP /シェルスクリプト

開発環境
Ant /Burp /Eclipse /Fiddler /gcc /gdb /Git /g++ /JDK /JMeter /JUnit /Teraterm /ZAP

技術・仕様
Ajax /CORBA /Jakarta EE(旧称J2EE、Java EE) /JNI

ライブラリ/Framework/CMS
bootstrap /jQuery /FuelPHP /Lucene /MyBatis /Seasar2 /Spring /Struts /WordPress

Web API
Google Maps

ITインフラOSとミドルウェア
Linux /Windows /シェル
ActiveMQ /Tomcat /MariaDB /MySQL /Nagios /Redis /Solr

ITインフラサーバー
公開Webサーバー

ITインフラネットワーク
プログラミング /構築

ITインフラセキュリティ
公開サーバーのセキュリティ

PC製品
ZOTAC

SI
ホームページの作り方

その他
IT用語 /ITスキル体系

スポンサーリンク

関連サイト内検索ツール

zealseedsおよび関連サイト内のページが検索できます。

IPアドレス確認ツール

あなたのグローバルIPアドレスは以下です。

18.189.185.63

HTMLの表示色確認ツール

パスワード生成ツール

文字数のプルダウンを選択して、取得ボタンを押すと「a~z、A~Z、0~9」の文字を ランダムに組み合わせた文字列が表示されます。

ここに生成されます。

スポンサーリンク