我有一个Linux虚拟主机作为域名托pipe的虚拟主机。 它运行CentOS和Parallels Plesk 9.x. 无论如何,垃圾邮件不断以1-3 /秒的速度stream动。
xinetd服务监听SMTP连接并转发到qmail-smtpd。 qmail服务只处理队列,但不控制消息进入队列…这就是为什么停止它不起作用。 如果你停止xinetd和qmail,然后杀掉任何打开的qmail-smtpd进程,所有的邮件stream都会停到SOMETIMES。
问题是,在接受邮件之前,qmail-smtpd不够智能,无法检查本地主机上的有效邮箱。 所以,它接受一个伪造的replyto地址的坏邮件,在qmail队列中处理。 Qmail无法在本地交付并跳转到伪造的replyto地址。
我们认为修复是修补qmail-smtpd进程,使其能够在接受邮件之前检查是否存在本地邮箱。 问题是,当我们尝试编译由于Plesk控制面板而导致失败的chkuser补丁时。
有谁知道我们可以做不同或更好的事情?
closures任何和所有的邮件进程(检查一个个人帐户已经被入侵的指标,这已经被证实不是这种情况)。
closures邮件和http服务器进程(在受损的formmail的情况下)
运行Exim代替qmail(简单/快速安装,但是xinetd迫使eximclosures并重新启动qmail)
通过Plesk GUI打开SPF保护。 没有帮助。
通过Plesk GUI打开灰名单。 没有帮助。
通过命令行禁用反弹通知
使用Postfix而不是qmail(没有Postfix的知识,不想打扰它,除非有人知道在投入时间之前它有可能处理反向散射问题)
如上所述,编译一个chkusr补丁 ,我们相信会和qmail一起停止这个问题(因为Plesk在混合中,每次编译都会失败,Parallels Plesk支持没有反应,除非我咳嗽)
如果我不清除垃圾邮件发送队列中的垃圾邮件,那么它就会堵塞数百万个垃圾邮件,并将导致OUTGOING电子邮件服务。
您可以用qpsmtpdreplace股票qmail-smtpd。 然后,您可以使用插件check_badrcpttovalidation收件人地址,如果邮件无效则拒绝邮件。
看看这个有用的补丁:
http://qmail.jms1.net/patches/validrcptto.cdb.shtml
使用cdb文件列出有效的收件人。 可能是使用qpsmtpd的一个很好的select。
作为一个长期的qmailpipe理员,我select使用这个“realrcpto”补丁( http://code.dogmap.org./qmail/#realrcptto ),因为它最好与我的用户现有的dot-qmail文件集成,并没有需要对其他configuration文件或数据库进行任何维护。
(如果只有我们现在在qmail前面使用的反垃圾邮件服务器可以通过SMTP进行RCPTvalidation…感叹!)
我从UCE Protect得到这个回复:
我们的客户支持团队人员已回复您的支持请求#340135
我不相信QMAIL能够做到这一点,但是如果你可以用C语言编写代码,那么在硬编码一个快速而脏的内部线程的DNSBL处理并编译之后应该不是什么大问题:
$MF )2.你必须find从你的configuration中读取DNSBL-Names的variables(在我们的例子中,我们把它命名为$ DNSN)3.你必须find循环内部的程序循环通过configuration的DNSBLS(在我们的例子中,我们假设不匹配NEXT-LIST ) 现在插入一条线,如下面的那样,如果邮件来自非空的情况下,在testing中将ips.backscatterer踢出ips.backscatterer的常规DNSBL CHECK行之前的行如下:SENDER:
If {$DNSN == "ips.backscatterer.org" && $MF != "<>") then NEXT-LIST
这应该导致ips.backscatterer.org只要MAIL FROM不是空的,不会被询问。
可能在Qmail中有一个更好的窍门,但我真的不知道。
–
–
技术总监UCEPROTECT-networkinghttp://www.uceprotect.net
我不知道是否仍然如此,但是检查有效的rcpt以允许某人探测您的networking以获取有效的地址。 接受这个信息然后反弹就需要垃圾邮件发送者的额外的努力。 在你的情况下,不好的答复头,你坚持拿着袋子。
我不熟悉Plesk,但使用tcpserver而不是xinetd的标准qmailconfiguration允许您在qmail-smtpd之前插入rblsmtpd。 然后,您可以将rblsmtpd指向黑名单服务之一,这可以减less您接受的垃圾邮件数量。
多花点功夫就可以把持续到达的垃圾邮件,parsing出发送服务器的IP地址,并用rbldns创build自己的黑名单。 这有助于减less我们接受的垃圾邮件数量,但并没有完全消除垃圾邮件。
另一个有用的补丁检查从域的邮件,以确保它是有效的,但这需要DNS查找,最好是运行本地DNScaching。
战斗垃圾邮件是一个痛苦! 祝你好运!
查看开源版Magic Mail的有效用户检查functionhttp://www.linuxmagic.com/opensource/magicmail/magic-smtpd/magic-smtpd-0.8.4-2.tar.gz
我将它与SpamDyke一起使用,可以释放超过95%的打到服务器的邮件。 server_args = -Rt0 / var / qmail / bin / spamdyke –config -file /etc/spamdyke.conf / var / qmail / bin / relaylock / var / qmail / bin / magic_mail
有效的用户检查可以通过外部脚本实现。 我使用bash脚本来检查/ var / qmail / users / assign是否存在邮件ID。
魔术邮件是一个二进制文件,而不是像qpsmtpd这样的脚本,因此不容易在高stream量服务器上加载高峰。
希望这可以帮助。
[编辑]
今天,我发现7.5版以后的Plesk本身支持SMTP连接级别有效的用户检查。 smtp插件位于/ var / qmail / plugins / chkrcptto中。 为此,您只需将邮件设置为不存在的用户即可在每个域的邮件设置中被拒绝。
如果垃圾邮件进入一个或两个域,请与您的客户端通话,并确保已启用该设置。 这样包含的域名应该列在/ var / qmail / control / rejectnonexist中。