Назад | Перейти на главную страницу

Извлечь активность отправителя из журналов postfix для аудита пользователя

У нас есть почтовый пользователь на нашем почтовом сервере, который использовал корпоративную почту для отправки компрометирующей информации нашим конкурентам.

Меня попросили составить отчет о действиях этого пользователя в последний раз.

Существуют такие инструменты, как pflogsumm и другие, которые могут извлекать статистические данные, но я пока не нашел ничего полезного для получения всей информации для пользователя, потому что данные находятся в нескольких строках.

Хотелось бы получить примерно такое:

За отправленную почту

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

За полученную почту

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

Я знаю, что могу сделать сценарий сам, но сопоставление идентификатора постфикса для каждой почты - это не то, что можно сделать с помощью простого grep, и у меня много почтовой истории, которую мне нужно перепроверить, распределенной между разными файлами, и на.

Исходный журнал - это стандартный постфиксный формат, например этот ...

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

Скачать скрипт perl maillogconvert.pl и выполните его как:

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

Использование:

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

Первый параметр указывает формат файла журнала почты: стандартный - файл журнала - стандартный формат журнала postfix, sendmail, qmail или mdaemon; vadmin - файл журнала - формат журнала qmail с поддержкой нескольких узлов vadmin.

Второй параметр указывает, с каким годом ставить отметку о времени в файле журнала, если текущий год не правильный (например, 2002). Всегда используйте 4 цифры. Если не указано, используется текущий год.

Если вывод не указан, он переходит в консоль (stdout).

Попробуйте "maillogconvert.pl" (сценарий Perl), который включен в AWStats (http://www.awstats.org/).

Я создал сценарий Perl: https://github.com/brablc/postfix-tools/blob/master/pflogrep

Вы можете использовать его как grep:

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

Или вы можете передать вывод на pflogsumm и получите красивую статистику:

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

За отправленную почту

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

За полученную почту

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