2009-07-13 6 views
6

Я запускаю сервер FreeBSD, и мне было отправлено предупреждение о том, что спам был отправлен с моего сервера. Я не устанавливаю его как открытое реле, и я настроил конфигурацию sendmail. Я хотел бы знать, кто отправляет письмо по электронной почте вместе со своим именем пользователя, электронной почтой, а также с сообщением о том, сколько почты они отправляют. Я хотел бы запустить отчет по журналу, подобный тому, как это делается при обработке журналов сервера Apache.Как отслеживать исходящую почту из Unix и Sendmail?

Какие у меня варианты?

+1

Вы проверили/var/log/maillog? – nos

ответ

3

Одна из идей заключается в том, чтобы псевдоним sendmail был настраиваемым скриптом, который просто косит аргументы sendmail до конца журнала перед вызовом sendmail обычным способом.

0

Можете ли вы дать несколько журналов образцов? Я думаю, вам лучше всего будет просмотреть их с помощью grep или cut, чтобы получить отправленный источник/получатели. Кроме того, вы можете написать скрипт Perl для автоматизации его, как только у вас будет правильное регулярное выражение. Это был бы лучший вариант.

1

Если у FreeBSD есть конфигурация по умолчанию, у вас есть только один способ обработки выходной почты, проверьте, что вы отправляете через систему sendmail в /etc/mail.

Все выходные почта должна быть авторизованы на /var/log/maillog

0

Вы также можете контролировать все системные вызовы write и read функций, выполнив:

ps auxw | grep sendmail | awk '{print"-p " $2}' | xargs strace -s 256 -f 2>&1 | grep -E $'@|(([0-9]+\.){3}[0-9]+)' | tee -a "/var/log/sendmail-logs.log" 

Это даст вам прямой доступ к информации, вы не можете пойдите глубже, я думаю.