Extraire l'activité de l'expéditeur des journaux postfix pour l'audit de l'user

Nous avons un user de messagerie sur notre server postfix qui utilisait le courrier de l'entreprise pour envoyer des informations compromettantes à nos concurrents.

On m'a demandé de faire un rapport des actions pour cet user dans la dernière fois.

Il existe des outils tels que pflogsumm et d'autres qui peuvent extraire des données statistics, mais je n'ai pas encore trouvé d'utilité pour get toutes les informations pour un user car datatables sont en plusieurs lignes.

J'aimerais avoir quelque chose comme ça:

Pour le courrier envoyé

11/11/11 00:00:00 infractor@example.com -> user@anothercompany.com 11/11/11 00:00:01 infractor@example.com -> user2@anothercompany2.com 

Pour le courrier reçu

 10/10/11 00:00:00 user@anothercompany.com -> infractor@example.com 10/10/11 00:00:01 user2@anothercompany2.com -> infractor@example.com 

Je sais que je peux faire un script par moi-même, mais faire correspondre l'ID postfix pour chaque mail n'est pas quelque chose qui peut être fait avec un simple grep, et j'ai beaucoup d'historique de messagerie que je dois vérifier de nouveau entre différents files et donc sur.

Le journal source est le format postfix standard, par exemple celui-ci …

 Sep 13 16:15:57 server postfix/qmgr[18142]: B35CB5ED3D: from=<infractor@example.com, size=10755, nrcpt=1 (queue active) Sep 13 16:15:57 server postfix/smtpd[32099]: disconnect from localhost[127.0.0.1] Sep 13 16:15:57 server postfix/smtp[32420]: 58C3E5EC9C: to=<user@anothercompany.com>, relay=127.0.0.1[127.0.0.1]:10024, delay=1.4, delays=0.01/0/0/1.4, dsn=2.0.0, status=sent (250 2.0.0 Ok, id=32697-04, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as B35CB5ED3D) Sep 13 16:15:57 server postfix/qmgr[18142]: 58C3E5EC9C: removed Sep 13 16:15:57 server postfix/smtp[32379]: B35CB5ED3D: to=<user@anothercompany.com>, relay=mail.anothercompany.com[123.123.123.163]:25, delay=0.06, delays=0.03/0/0.01/0.02, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 77D0EB6C025) Sep 13 16:15:57 server postfix/qmgr[18142]: B35CB5ED3D: removed 

Téléchargez le script perl maillogconvert.pl et exécutez-le comme suit :

 perl maillogconvert.pl standard < /var/log/mail.log > result.log 

Usage:

 perl maillogconvert.pl [standard|vadmin] [year] < logfile > output 

Le premier paramètre spécifie quel format le file journal est: standard – le file journal est le format standard postfix, sendmail, qmail ou mdaemon vadmin – logfile est le format qmail avec vadmin multi-host support

Le deuxième paramètre spécifie l'année pour le file journal d'horodatage avec, si l'année en cours n'est pas la correcte (c.-à-d. 2002). Toujours utiliser 4 numbers. Si elle n'est pas spécifiée, l'année en cours est utilisée.

Si aucune sortie n'est spécifiée, elle se dirige vers la console (stdout).

Essayez "maillogconvert.pl" (perl script), qui est inclus dans AWStats ( http://www.awstats.org/ ).

J'ai créé un script Perl: https://github.com/brablc/postfix-tools/blob/master/pflogrep

Vous pouvez utiliser comme grep:

 pflogrep infractor@example.com /var/log/maillog 

Ou vous pouvez alimenter la sortie vers pflogsumm et get de belles statistics:

 pflogrep infractor@example.com /var/log/maillog | pflogsumm 

Pour le courrier envoyé

 11/11/11 00:00:00 infractor@example.com -> user@anothercompany.com 11/11/11 00:00:01 infractor@example.com -> user2@anothercompany2.com 
 # awk '/from=infractor@example.com/ { print $1, $2, $3, $7, $8 }' /var/log/maillog 

Pour le courrier reçu

 10/10/11 00:00:00 user@anothercompany.com -> infractor@example.com 10/10/11 00:00:01 user2@anothercompany2.com -> infractor@example.com 
 # awk '/infractor@example.com/ { print $1, $2, $3, $7, $8 }' /var/log/maillog