Postfix、Dovecotの構築やログの見方などメールサーバ関連の情報をまとめています。
この記事の目次です。
1. maillogとは
2. maillogのフォーマット
3. maillogを見るために必要なPostfixのプロセスの知識とログの見方
4. 異変に気づいたときなどの参考情報
maillogとは、Postfixなどメールサーバがログ出力するログファイルの名前です。初めに少しPostixと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]: (キュー番号): 処理内容
Webサーバのログと比べると、maillogの見方は難しいといえると思います。 とくにPostfixの場合、複数のプロセスが連携してメールの処理を行っているので、ログの意味を理解するには各プロセスの役割を知っている必要があります。 Postfixの代表的なプロセスと、そのプロセスが出力するログについて簡単にまとめておきます。
システムに常駐している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
システムに常駐し、maildropキューに新しいメールが入っているかを監視するプロセスです。入っていればcleanupプロセスに渡します。
maildropキューに入るのはPostfixが動作しているシステムのローカルユーザが配送を依頼したメールのみです。ですのでログにはuidとユーザ名が出力されます。
maillogのpickupプロセスのログ出力例)
maildropキューに入ったメールの配送処理の開始
Aug 17 16:11:23 xxxxxxxxxx postfix/pickup[7670]: AC0FF40D8B58: uid=48 from=<root>
SMTPデーモンに相当するプロセスです。外部のホストからメール配送の要求があった場合に、その接続を受け付けます。受信したメッセージはcleanupプロセスに渡します。
外部からの接続を受け付けるプロセスであるため、様々なログを出力します。
maillogのsmtpdプロセスのログ出力例)
外部のSMTPサーバからの接続を受信
Aug 19 12:04:03 xxxxxxxxxx postfix/smtpd[17521]: connect from XXXXX@XXX.XX.XX[XXX.XXX.XXX.XXX]
pickupプロセスやsmtpdプロセス経由で入ってきたメールをincomingキューに入れ、qmgrプロセスにその到着を通知します。
maillogのcleanupプロセスのログ出力例)
配送受付メールについてヘッダ情報を付加してincomingキューにつなげる
Aug 19 12:04:03 xxxxxxxxxx postfix/cleanup[17530]: 3ED5B4029F76: message-id=<xxxxx@xxxx.xxx.xx>
システムに常駐し、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
ローカルユーザ宛のメールの配送を行います。
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)
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)
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を見ていて、メールアカウントが乗っ取られスパムメールが配信されている場合、IPやドメインがブラックリスト登録されているか確認しておいた方がいいです。 メールアカウントのパスワードを変更し、もしブラックリストに登録されてしまっている場合は、リストが広がらないように削除申請が必要です。 放っておくとメールが送信できないだけではなく、ドメインのサイトを検索エンジンやセキュリティソフトで表示する際に「このサイトは・・・」と警告表示される恐れがあります。
ブラックリストの例
ブラックリスト検索サイトをいくつか調べてみました。
上記がブラックリストの例です。疑いがある場合は、まずは、簡単にチェックできるSPAMHAUS当たりからチェックしてみるといいかもです。 挙げたものだけではなく、たくさんあるようです(少なくとも20~30はあるようです)が、もし登録されて入れもメインどころで拒否されなければ打撃は少ないのではと思います。 広がらないようにする必要はありますが。
SPAMHAUSの場合、以下のURLの「XXX.XXX.XXX.XXX」を調べたいサーバのIPにすれば確認できます。赤字で「Listed」となったらブラックリストに登録されていることになります。
https://www.spamhaus.org/query/ip/XXX.XXX.XXX.XXX
Postfix、Dovecotの構築やログの見方などメールサーバ関連の情報をまとめています。
スポンサーリンク
サイト内のページ
言語
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インフラセキュリティ
公開サーバーのセキュリティ
SI
ホームページの作り方
スポンサーリンク
関連サイト内検索ツール
zealseedsおよび関連サイト内のページが検索できます。
IPアドレス確認ツール
あなたのグローバルIPアドレスは以下です。
18.97.9.175
HTMLの表示色確認ツール
パスワード生成ツール
文字数のプルダウンを選択して、取得ボタンを押すと「a~z、A~Z、0~9」の文字を ランダムに組み合わせた文字列が表示されます。
ここに生成されます。
スポンサーリンク
Copyright (C) 2007-2024 zealseeds. All Rights Reserved. Loarding…