Ich möchte die Nachrichten-ID, die Client-IP-Adresse und den authentifizierten Absender bei jeder SMTP-Transaktion protokollieren, und zwar so, wie hier beschrieben:
Authentifizierungsinformationen in Sendmail protokollieren
Ich habe die Lösung implementiert, allerdings protokolliert sie alle Transaktionen, nicht nur die, bei denen eine Authentifizierung verwendet wurde. Ich würde lieber nur Einträge protokollieren, bei denen eine Authentifizierung verwendet wurde.
Mein Ziel ist es, Phishing-E-Mail-Konten durch Protokollanalyse erkennen zu können.
Einträge, die ich behalten möchte, sehen folgendermaßen aus:
Sep 23 06:31:40 mail sm-mta[20443]: r8NDVdM3020443: Authenticated-by:LOGIN,username,0,,[192.168.1.10]
Bei den Einträgen, die ich überspringen möchte, fehlen der Mechanismus und der Benutzername (,,,,):
Sep 23 06:31:44 mail sm-mta[20475]: r8NDVh3m020475: Authenticated-by:,,,,messagent.computerdealernews.com.
Ich suche hauptsächlich nach der Nachrichten-ID, dem Authentifizierungsbenutzernamen und der IP-Adresse des Absenders in einer Zeile. Es scheint nicht die richtige IP-Adresse zu sein.
Es wäre hilfreich, wenn Sie mir diesbezüglich Referenzinformationen geben könnten.
Arbeitskonfiguration
Diese Konfiguration druckt aus, was ich will.
Scheck_data
R$* $: <$&{auth_authen}> $1
R<$+> $* $: <$1> $2 $(log Authenticated-by: $&{auth_type}, $&{auth_authen}, $&{client_addr}, $&{f} $)
R<$*> $* $: $2
Ich fand die client_addr und andere Makros auf einemIBM Sendmail-Site.
Danke.
Antwort1
Der folgende Code sollte nur dann Protokolleinträge generieren, wenn ${auth_authen} nicht leer ist.
WARNUNG:Setzen Sie Tabulatoren (\t) vor $: [Ich konnte es nicht tun]
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