昨晚我的 postfix 邮件服务器(启用了 dovecot、roundcube、opendkim 和 spamassassin 的 Debian Squeeze)开始从我的一个域发送垃圾邮件,如下所示:
$cat mail.log|grep D6930B76EA9
Jul 31 23:50:09 myserver postfix/pickup[28675]: D6930B76EA9: uid=65534 from=<[email protected]>
Jul 31 23:50:09 myserver postfix/cleanup[27889]: D6930B76EA9: message-id=<[email protected]>
Jul 31 23:50:09 myserver postfix/qmgr[7018]: D6930B76EA9: from=<[email protected]>, size=957, nrcpt=1 (queue active)
Jul 31 23:50:09 myserver postfix/error[7819]: D6930B76EA9: to=<[email protected]>, relay=none, delay=0.03, delays=0.02/0/0/0, dsn=4.4.2, status=deferred (delivery temporarily suspended: lost connection with mta5.am0.yahoodns.net[66.196.118.33] while sending RCPT TO)
有问题的域名没有启用任何帐户,只有通过 postfixadmin 设置的一个 catchall 别名 - 大多数电子邮件都是从我经常使用的特定地址发送的,但有些也是从虚假地址发送的。postfix 处理的其他虚拟域均未受到影响。
我如何才能找出哪个进程正在向 postfix/sendmail 发送信息,或者了解它们来自何处的更多信息?据我所知,php mail() 没有被使用,而且我已经运行了几次开放中继测试。攻击发生后,我做了一些调整(从服务器中删除了 winbind,从 main.cf 中删除了 ipv6 地址),攻击似乎已经平息了,但我仍然不知道我的服务器是如何突然发送垃圾邮件的。也许我修复了它 - 也许我没有。有人能帮我弄清楚我是如何受到攻击的吗?我还应该去哪里找?我已经对最近更改的文件运行了 Linux Malware Detect,但什么也没发现。
答案1
您无法通过 Message-ID 确定罪魁祸首进程,因为它可以被伪造(并且很可能被伪造)。
唯一的方法是用包装器 shell 脚本替换该sendmail
程序。然后可以使用该脚本记录您需要的所有内容。例如父进程 ID、用户和其他进程信息。
Postfix 的 pickup 程序是由 sendmail 程序触发的。更多信息可以在这里找到http://www.postfix.org/sendmail.1.html也许它有助于增加 Postfix 的 sendmail 的日志记录。