如何监控来自Unix和Sendmail的外发邮件?

时间:2009-07-13 00:42:02

标签: unix email sendmail freebsd

我正在运行一个FreeBSD服务器,我收到一条警告,说我的服务器已发送垃圾邮件。我没有把它设置为开放中继,我已经定制了sendmail配置。我想知道是谁发送了什么电子邮件以及他们的用户名,电子邮件主题以及他们发送的邮件总数。我想在日志上运行一个类似于处理Apache服务器日志时的日志的报告。

我有什么选择?

4 个答案:

答案 0 :(得分:3)

一个想法是将sendmail别名为一个自定义脚本,它只是在以常规方式调用sendmail之前将sendmail参数记录到日志末尾。

答案 1 :(得分:0)

你能提供一些样本日志吗?我认为你最好的选择是用grep或cut来查看它们以获得正在发送的源/目的地。此外,一旦你有正确的正则表达式,你可以编写一个Perl脚本来自动化它。这将是最好的选择。

答案 2 :(得分:0)

如果FreeBSD有默认配置,你只有一种方法来处理输出邮件,检查通过/etc/mail发送邮件系统的内容。

所有输出邮件必须由/var/log/maillog

记录

答案 3 :(得分:0)

您还可以通过执行以下操作来监控对writeread功能的所有系统调用:

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"

这会让你直接获取信息,我想你不能深入了解。