从后缀日志中提取发件人活动以供审计用户使用

我们的邮件用户在我们的postfix服务器上使用公司邮件向我们的竞争对手发送妥协信息。

我被要求在最后一次为该用户做出行动报告。

有像pflogsumm和其他可以提取统计数据的工具,但是到目前为止,我还没有发现任何有用的东西来获取用户的所有信息,因为数据是多行的。

我想得到这样的东西:

对于发送的邮件

11/11/11 00:00:00 [email protected] -> [email protected] 11/11/11 00:00:01 [email protected] -> [email protected] 

为收到的邮件

 10/10/11 00:00:00 [email protected] -> [email protected] 10/10/11 00:00:01 [email protected] -> [email protected] 

我知道我可以自己做一个脚本,但是为每个邮件匹配postfix ID是不是可以用简单的grep做的事情,我有很多邮件历史,我必须重新检查分布在不同的文件,所以上。

源日志是标准的后缀格式,例如这个…

 Sep 13 16:15:57 server postfix/qmgr[18142]: B35CB5ED3D: from=<[email protected], 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=<[email protected]>, 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=<[email protected]>, 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 

下载Perl脚本maillogconvert.pl并执行它:

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

用法:

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

第一个参数指定邮件日志文件的格式:标准 – 日志文件是标准后缀,sendmail,qmail或mdaemon日志格式vadmin – 日志文件是带有vadmin多主机支持的qmail日志格式

如果当前年份不正确(即2002),则第二个参数指定date文件的年份。 始终使用4位数字。 如果未指定,则使用当前年份。

如果没有指定输出,则转到控制台(stdout)。

尝试使用“maillogconvert.pl”(perl脚本),它包含在AWStats( http://www.awstats.org/ )中。

我已经创build了一个Perl脚本: https : //github.com/brablc/postfix-tools/blob/master/pflogrep

你可以用grep来作为:

 pflogrep [email protected] /var/log/maillog 

或者你可以将输出提供给pflogsumm并获得很好的统计信息:

 pflogrep [email protected] /var/log/maillog | pflogsumm 

对于发送的邮件

 11/11/11 00:00:00 [email protected] -> [email protected] 11/11/11 00:00:01 [email protected] -> [email protected] 
 # awk '/[email protected]/ { print $1, $2, $3, $7, $8 }' /var/log/maillog 

为收到的邮件

 10/10/11 00:00:00 [email protected] -> [email protected] 10/10/11 00:00:01 [email protected] -> [email protected] 
 # awk '/[email protected]/ { print $1, $2, $3, $7, $8 }' /var/log/maillog