ここで説明されているように、各 SMTP トランザクションでメッセージ ID、クライアント IP アドレス、認証された送信者をログに記録したいと思います。
ソリューションを実装しましたが、認証を使用したトランザクションだけでなく、すべてのトランザクションがログに記録されます。認証が使用されたエントリのみをログに記録したいです。
私の目標は、ログ分析によってフィッシングされた電子メール アカウントを検出できるようにすることです。
保存しておきたいエントリは次のようになります。
Sep 23 06:31:40 mail sm-mta[20443]: r8NDVdM3020443: Authenticated-by:LOGIN,username,0,,[192.168.1.10]
スキップしたいエントリにメカニズムとユーザー名がありません (,,,,):
Sep 23 06:31:44 mail sm-mta[20475]: r8NDVh3m020475: Authenticated-by:,,,,messagent.computerdealernews.com.
私が主に探しているのは、メッセージ ID、認証ユーザー名、送信者の IP アドレスが 1 行にまとめられたものです。IP アドレスが正しくないようです。
これに関する参考情報があれば教えていただけると助かります。
動作構成
この構成では、必要なものが印刷されます。
Scheck_data
R$* $: <$&{auth_authen}> $1
R<$+> $* $: <$1> $2 $(log Authenticated-by: $&{auth_type}, $&{auth_authen}, $&{client_addr}, $&{f} $)
R<$*> $* $: $2
client_addrとその他のマクロは、IBM の sendmail サイト。
ありがとう。
答え1
以下のコードは、${auth_authen} が空でない場合にのみログ エントリを生成する必要があります。
警告:$の前にタブ(\t)を置く:[できませんでした]
LOCAL_RULESETS
Scheck_data
R$* $: <$&{auth_authen}> $1
R<$+> $* $: <$1> $2 $(log Authenticated-by: $&{auth_type}, $&{auth_authen}, $&{auth_ssf}, $&{auth_author}, $&{mail_mailer}, $&{mail_host}, $&{mail_addr} $)
R<$*> $* $: $2