2010年5月22日

[postfix-jp: 3772]ポート番号を記録する方法

荻野です。いつもお世話になっております。

Postfix の smtpd が、メールをある Queue ID で受信したとき、使用された送
信元 TCP ポート番号を知る方法を探しているのですが見つからないでおります。

Postfix のログか、または他の方法でも良いのですが、なにか方法がありました
らお教えください。ソースコードに手を入れる以外の方法があり難いです。


main.cf で debug_peer_level=3 や、master.cf で smtpd -v でも(ログが多す
ぎて常用できませんが)記録されないようです。

SMTPD POLICY README を読んでもポート番号は無いようです。queue_id と
client_address があるので、netstat の結果とともにログを書くスクリプトは
書けそうですが、同じクライアントから複数同時に接続されたときの区別が問題
のように思います。

SMTP ポート宛全部を tcpdump でキャプチャして 250 2.0.0 Ok: queued as
xxxxxxx を探すという究極の力技は思いつきますが…


背景:

ウイルスチェック機能のある UTM を導入することになったのですが、これがウ
イルスを検出するとその場で通信を止めてしまうという機能しかないため、おそ
らく SMTP ではずっと再送がされてしまうと思うので、うまくありません。

この UTM にはもうひとつ、ウイルスを検出しても何も通信には手を加えずにレ
ポートを出すという機能があるようで、これを利用して事後的に処理ができない
かと考えました。が、この機能では TCP の送信元、宛先それぞれの IP アドレ
スとポート番号の組しか分からないようです。

元々メールのウイルスチェックは別に Trendmicro IMSS があるのですが、これ
をすり抜けるものがたびたびあり、これを補完・検証するためにこの検出だけの
モードが使用できないかと考えています。


おまけ:

受信ポート番号を記録する方法も、SMTP ポートでの待ち受けのログなのか
Submission ポートの方なのかなどを識別するために有用なように思いますが、
こちらも見つかりません。

もっとも待ち受けするポートは決まっているので、master.cf で -o
syslog_name=postfix/submission などと指定することで識別することはできま
した。


よろしくお願いいたします。

--
荻野 充 (おぎの みつる) ... 「萩(はぎ)」にあらず
Key fingerprint = 7F26 5414 1805 F31B 1617 10B7 C117 07AE 1691 9BD1

_______________________________________________
Postfix-jp-list mailing list
Postfix-jp-list@xxxxx
http://lists.sourceforge.jp/mailman/listinfo/postfix-jp-list


投稿者 xml-rpc : 2010年5月22日 12:47
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/95894
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。