Как я могу отслеживать исходящую электронную почту из Unix и Sendmail?

StackOverflow https://stackoverflow.com/questions/1117332

  •  12-09-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

Другие советы

Вы также можете отслеживать все системные вызовы 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"

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

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

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

Вся исходящая почта должна регистрироваться /var/log/maillog

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top