AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 677550
Accepted
hazymat
hazymat
Asked: 2015-03-24 03:18:24 +0800 CST2015-03-24 03:18:24 +0800 CST 2015-03-24 03:18:24 +0800 CST

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

  • 772

我托管了一个面向公众的 Web 服务器,运行 Debian Wheezy,以及最新版本的 Postfix、Apache、PHP、Spamassassin、ClamAV、rootkit Hunter。Apache 配置了一些虚拟主机,每个虚拟主机都与一个用户绑定,并由 suExec 和 Suhosin 保护。这些网站运行 Wordpress 和 ModX,根据平均法则,考虑到这台服务器上的安装数量,至少 20% 的网站在任何给定时间都会存在某种漏洞,无论是来自 CMS 本身还是来自外部-of-date 插件。

我收到了来自优秀 MX Toolbox 网站的通知,该网站针对 100 多个黑名单监控 IP 地址。

当我听到我的 IP 地址再次被添加到给定的黑名单时,我立即 ssh 进入,暂停 Postfix

postfix stop

稍等几秒,查看邮件队列

mailq

由此我可以立即知道垃圾邮件的源用户/虚拟主机,因为所有邮件都来自“[email protected]”,其中“mywebsite.com”是托管在导致问题的虚拟主机上的域。

然后我使用出色的 maldet 运行手动恶意软件检测扫描,问题就消失了。如果我修补网站上所有已知的插件和软件,问题就会消失大约 6 个月。如果我不这样做,它会在大约一周内恢复。

出于测试目的,我已经让 Postfix 停止了几个月,但一些木马显然绕过了邮件服务器并直接发送邮件。(我从服务器资源监控、黑名单监视和退回到我域的垃圾邮件中知道这一点。更不用说 Postfix mailq 会填满例如 65,000 封未发送的邮件。)

由于我更关心邮件的真实性而不是通过我托管的网站发送电子邮件的能力,因此我采取了许多步骤,即确保我的每个域的 SPF 记录不会将我自己的服务器识别为该域的权威邮件来源. 至少这意味着我的域名不会被自动列入黑名单。

我的问题。有没有一种巧妙的方法可以简单地使用 IPTABLES 阻止所有外发电子邮件?我的意思不仅仅是阻止使用电子邮件服务器 Postfix 发送的邮件,而是所有可能最终导致我的服务器被列入黑名单的流量?

在我找到解决此问题的其他方法之前,我不介意禁止网站发送任何邮件。这并不理想,因为我使用一些来创建自己的业务,但同时我可以找到其他解决方案。

php
  • 2 2 个回答
  • 3272 Views

2 个回答

  • Voted
  1. Best Answer
    wurtel
    2015-03-24T05:09:25+08:002015-03-24T05:09:25+08:00

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

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

    您可以将此扩展为仅丢弃用户发送的数据包,该www-data用户将是运行网站的用户:

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

    什么将有助于解决您的主要问题(网站首先被感染)是阻止所有不需要的传入端口,以及传出端口,例如端口 80,通常用于下载额外的 rootkit 等。成立。

    • 7
  2. symcbean
    2015-03-24T06:00:26+08:002015-03-24T06:00:26+08:00

    hazymat,我敢肯定你不想听到这个,但是......

    你是问题,不是 Postfix

    等到有人检测到垃圾邮件不是管理计算机系统的可行方法。如果您拥有一支步枪并将其留在您的 dront 家门口,您会在检查它是否丢失之前等待警察来打电话吗?

    至少 20% 的网站会...存在某种漏洞...如果我修补网站上所有已知的插件和软件,问题就会消失

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

    是的,您应该更加积极主动地管理外发电子邮件流量,但这是对基本安全实践的改进。

    • 1

相关问题

  • 用户特定的 Php.ini 当 php 作为模块运行时?

  • 使 php mail() 函数在 ubuntu-server 上工作的步骤是什么?

  • Web 服务器和数据库服务器位于完全不同的位置

  • PHP 作为 CGI 还是 Apache 模块?

  • 通过 VPN 连接什么是远程服务器 IP?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve