使用iptables阻止PHP邮件程序垃圾邮件

我主持一个运行Debian Wheezy的公共Web服务器,以及最新版本的Postfix,Apache,PHP,Spamassassin,ClamAV,rootkit猎手。 Apacheconfiguration了一些虚拟主机,每个绑定到一个用户和SuExec和Suhosin安全。 这些网站运行Wordpress和ModX,按照平均法则,在这台服务器上安装的数量至less有20%的网站在任何时候都会有一些漏洞,无论是来自CMS本身还是来自最新的插件。

我有优秀的MX工具箱网站的通知,监控IP地址对100多个黑名单。

当我听到我的IP地址又被添加到给定的黑名单时 ,我马上ssh,暂停Postfix

postfix stop 

等待几秒钟,查看邮件队列

 mailq 

从这里我可以立即告诉源用户/虚拟主机的垃圾邮件,因为所有的邮件来自“[email protected]”,其中“mywebsite.com”是托pipe在虚拟主机,导致问题的域。

然后,我运行一个手动的恶意软件检测扫描使用优秀maldet,问题消失。 如果我在网站上修补所有已知的插件和软件,问题就会消失六个月。 如果我不这样,它会在一周之内回来。

出于testing的目的,我已经让Postfix停留了好几个月,但是一些木马显然绕过了邮件服务器并直接发送邮件。 (我从服务器资源监控,黑名单手表,以及反弹的垃圾邮件回到我的域名,更不用说Postfix mailq填满了65,000个未发送的邮件)。

由于我关心邮件的真实性,而不是通过托pipe网站发送邮件的能力,所以我采取了一些步骤,即确保每个域的SPFlogging不会将自己的服务器识别为该域的权威邮件源。 至less这意味着我的域名不会被自动列入黑名单。

我的问题。 有没有一种聪明的方法来简单地阻止所有使用IPTABLES的传出电子邮件? 我不是说阻止使用电子邮件服务器Postfix发送的邮件,而是所有可能以我的服务器被列入黑名单的stream量?

直到我find解决这个问题的其他方法,我不介意禁止网站发送任何邮件。 这并不理想,因为我使用一些来创造自己的业务,但同时我可以find其他解决scheme。

您可以使用简单的规则阻止所有传出的SMTPstream量:

 iptables -I OUTPUT -p tcp --dport 25 -j DROP 

你可以扩展它只丢弃由www-data用户运行网站的用户发送www-data包:

 iptables -I OUTPUT -p tcp --dport 25 -m owner --uid-owner www-data -j DROP 

什么将帮助您的主要问题(网站首先被感染)阻止所有不需要的传入端口,还有端口80等传出端口,通常用于下载额外的rootkit等在防御最小裂缝后find。

hazymat,我相信你不想听到这个,但是…

你是问题,而不是Postfix

等到有人发现垃圾邮件并不是pipe理计算机系统的可行方法。 如果你拥有一支步枪,并把它留在你家门口,那么你是否等待警方来打电话,然后再检查它是否已经失踪?

至less有20%的网站会有某种脆弱性……如果我在网站上修补所有已知的插件和软件,问题就会消失

这不像设置自动补丁检查和安装,基本的IDS实际上需要您的持续承诺。

是的,您应该更积极地pipe理传出的电子邮件stream量,但这是对基本安全做法的改进。