从我的postfix SMTP服务器发送垃圾邮件

时间:2015-12-10 11:24:17

标签: email postfix-mta spam-prevention smtp-auth

长时间的用户和第一次关于堆栈溢出的海报,但我有点难过。

几个月前,我购买并设置了运行CentOS 6的虚拟机,这样我就可以为自己和一些客户托管一些网站和邮件服务器。我用我已经拥有的Unix知识设置了整个事物,包括邮件服务器 - 这是我以前从未做过的事情。

邮件服务器按预期工作,dovecot强制执行IMAP登录,一切运行顺利,直到最近我注意到其中一个域名已经从未注册的用户发送邮件。

从/ var / log / maillog

中的日志中提取
s18646572 postfix/qmgr[3763]: 45A9520F2DF8A: from=<daisy_gibson@friendsdomain.uk>, size=1321, nrcpt=1 (queue active)
s18646572 postfix/qmgr[3763]: A98FC20F2D350: from=<regina_reeves@friendsdomain.uk>, size=1420, nrcpt=1 (queue active)
s18646572 postfix/qmgr[3763]: E45E820F2DD3A: from=<robyn_holland@friendsdomain.uk>, size=1334, nrcpt=1 (queue active)
s18646572 postfix/qmgr[3763]: AD06220F28246: from=<lorraine_murphy@friendsdomain.uk>, size=1393, nrcpt=1 (queue active)
s18646572 postfix/qmgr[3763]: DC00D1849D7CC: from=<kristine_gardner@friendsdomain.uk>, size=1401, nrcpt=1 (queue active)
s18646572 postfix/qmgr[3763]: 890EE20F28F2A: from=<mae_shaw@friendsdomain.uk>, size=1418, nrcpt=1 (queue active)

所以从我可以收集到的东西中,有人正在使用他的域名“friendsdomain.uk”,但也会在我们的SMTP服务器上捎带发送邮件,因为它已存入我们的队列。

我在线找到了一个帮助test SMTP relay的工具,并设法配置了一些防止SMTP中继的规则 - 至少通过这些工具。用户现在需要进行SASL身份验证才能发送邮件。

然而,邮件仍在外出 - 后缀似乎并没有阻止垃圾邮件,这使我相信使用服务器的任何人都已经过身份验证。我已经更改了所有用户的密码,但似乎没有解决问题 - 并且日志不指示正在使用哪个用户发送邮件。

我的postfix配置提取如下:

### SMTP Setup ###
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_authenticated_header = yes
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_sasl_authenticated, reject_unauth_destination
broken_sasl_auth_clients = yes
smtpd_sender_login_maps = hash:/etc/postfix/sender_login_maps
smtpd_relay_restrictions = permit_sasl_authenticated, reject_unauth_destination
smtpd_sender_restrictions = permit_sasl_authenticated, reject_sender_login_mismatch, reject_unauthenticated_sender_login_mismatch, reject_unlisted_sender

我在网站上找到的其他一些答案之后添加了SMTP_sender限制 - 这似乎至少阻止了中继。

我暂停了SMTP服务器并检查了队列中的一些邮件项目,如下所示。

Subject: 1 New SnapF#ck AlertN=X-PHP-Originating-Script: 48:plugin.php(1959) : eval()'d codeN$
Date: Wed, 9 Dec 2015 22:02:26 +0000N5From: Kelly Fleming <kelly_fleming@friendsdomain.uk>N@Message-ID: <64b6713d232e7a4f88e85344aac5cc9c@friendsdomain.uk>N
X-Priority: 3w
0NCX-Mailer: PHPMailer 5.2.9 (https://github.com/PHPMailer/PHPMailer/)N

标题表示无论是谁,都使用PHP mailer

问题仍然存在,人们使用我的SMTP服务器发送垃圾邮件 - 我需要一种方法来登录用户登录用户登录,除非帐户遭到入侵,在这种情况下我需要一种方法来找出哪些。我不能简单地暂停帐户,因为真正的用户仍然需要访问他们的电子邮件 - 但是现在我们收到了很多点击,TCP套接字阻止其他服务运行。

非常感谢任何建议。

感谢。

1 个答案:

答案 0 :(得分:0)

解决了这个谜(有点)

邮件来自我们的一个托管网站。该站点已配置为使用SMTP进行身份验证,或者不需要进行身份验证,因为它位于localhost上。

线索在发送错误日志中

Dec 10 11:35:15 s18646572 postfix/pickup[6439]: 9A7BA20F29112: uid=48 from=<sally_weaver@friendomain.uk>

发件人UID = 48的用户ID表示它是本地用户,在检查passwd文件后,确认这是apache用户。

现在很明显,在frienddomain.uk上托管的网站的某些部分被利用来发送垃圾邮件,在暂停网站和重新启动服务后,邮件停止了。

现在的问题是找到并删除漏洞,但是如果您希望可以在php.ini文件中禁用mail()函数。