Web 应用程序防火墙 (ModSecurity)¶
为了检测和阻止对 web 应用程序的攻击,web 应用程序防火墙 (ModSecurity) 会检测所有违反规则集的到 web 服务器的请求以及来自服务器的相关响应。如果检查成功,该 HTTP 请求就会被传递到网站内容以检索内容。如果检测失败,则会执行预定义的操作。
Plesk for Linux 和 Plesk for Windows 都支持 ModSecurity。以 web 服务器 (Apache 或 IIS) 模块的形式工作。
注解
若要使用 web 应用程序防火墙 (ModSecurity),从 Plesk 11.5 升级的管理员必须从 Plesk 或其供应商获取 Plesk Onyx 的许可证密钥。
启用 ModSecurity¶
若要启用 web 应用程序防火墙:
请进入 工具与设置 > Web 应用程序防火墙 (ModSecurity) (在 安全性 组里)进行操作。
若未看到该链接,请进入 工具与设置 > 更新与升级 > 添加/移除组件 > 主机 组里安装 ModSecurity 组件。
设置 web 应用程序防火墙模式为 启用 或 仅检测 。会针对一组规则对每次接收的 HTTP 请求以及相应响应进行检查。如果检查成功,该 HTTP 请求就会被传递到网站以检索内容。如果检查失败,该事件将会被记录。在 仅检测 模式中,不会执行任何其他操作。在 启用 模式中,HTTP 响应将会提供一个错误代码。
注解
可在服务器和域名级别范围设置 web 应用程序防火墙模式。但是,域名级别模式不能高于服务器级别模式的设置。例如,如果服务器级别的 web 应用程序防火墙在 仅检测 模式中运行,您将无法为域名设置 启用 模式。只会显示 禁用 和 仅检测 模式。
设置将被 web 应用程序防火墙引擎为每个接收 HTTP 请求检测的规则集,或上传自定义规则集。您可以设置以下规则集:
Atomic Basic ModSecurity. 与 Plesk 绑定的 Atomic ModSecurity 规则的 starter 版本。包含每月发行的重要安全功能和 bug 修复程序。欲了解该规则集中的所有规则,请参阅 Atomic ModSecurity 规则集 。
OWASP ModSecurity Core Rule Set (CRS). CRS 会对在 web 应用程序中找到的未知漏洞提供通用保护。该规则集免费。该规则集非常严格,生产使用需要额外调整。当选定了该规则集时,部分 WordPress 功能失效,web 邮箱和文件共享完全不能工作。因而可使用 Atomic 或 Comodo 规则集来替代。
Advanced ModSecurity Rules by Atomicorp 。最新最强大的规则版本,所有性能得以提升,新增安全功能,由 Atomicorp GotRoot 每日发行 bug 修复程序。这是一个商业性的规则集,完全支持和适合生产用途。Plesk 还提供 Security Core Complete by Atomicorp 额外的功能,可以在 Plesk 中启用该规则集。您可以通过以下方式获取额外的功能:
- 可直接在 Plesk 在线商店 中购买 Advanced ModSecurity Rules by Atomicorp 产品。
- 如果您已有 Plesk 许可证,您则可以通过 Plesk 合作伙伴中心或合作伙伴 API 添加额外的功能(详情请参阅 高级管理员指南 )。
- 如果您已经有 Plesk 许可证但是无法访问 Plesk 合作伙伴中心,可联系您的提供商。
如果您在 Atomic 网站上已经有帐户,您可以提供您的用户名和密码以启用该规则集。
注解
如果您购买了该功能,Plesk 用户界面将会显示 Advanced ModSecurity Rules by Atomicorp 而不是 Atomic Basic ModSecurity ,表示完整的 Atomic ModSecurity 规则集。
注解
Atomicorp 还不支持Ubuntu 18.04。因此,在操作系统为Ubuntu 18.04的Plesk服务器上的ModSecurity中是不能启用 Atomic 规则集的(基础和高级模式)。
欲了解该规则集中的所有规则,请参阅 Atomic ModSecurity 规则集 。
请注意 (Linux): 如果您选择了 Atomic 规则集以确保 ModSecurity 运行正常。在服务器上运行
aum -u
命令。Plesk modsecurity 程序包将被来自 Atomic 库的程序包所替代。然后运行以下命令:plesk sbin modsecurity_ctl --disable
plesk sbin modsecurity_ctl --enable
service httpd restart
Comodo ModSecurity 规则集 (Linux). 这是一个简单易用、可自定义规则的流量控制系统,应用频繁更新的规则数据库保护您的 web 应用程序防止黑客攻击。该规则集免费。若要在 Plesk 中启用该规则集,请在 Comodo 网站 上注册并提供您的用户名和密码。
自定义 。您可以上传自定义的 web 应用程序防火墙规则集,例如,Atomic 的试用包或 Comodo 的免费包。支持的格式:zip、tar.gz、tgz、tar.bz2、conf。
若要自动更新选定的规则集,请选择 更新规则集 复选框并选择更新时段。
选择预设的参数集或指定自定义的 ModSecurity 指令。您可以选择以下预设的参数集:
日志文件 (Linux)¶
在 Linux 系统上,ModSecurity 使用两个地址来存储日志:
- ModSecurity 审计日志(位于
/var/log/modsec_audit.log
)非常详细,该日志被整个 Plesk 服务器使用。当 ModSecurity 检测到任何发生的事件时,就会在审计日志文件中生成一个条目。若要查看 ModSecurity 审计日志,请进入 工具与设置 > Web 应用程序防火墙 (ModSecurity) > 点击 日志存档 链接 (在 ModSecurity 审计日志 部分)。您可在此查看 ModSecurity 日志文件和其修改日期,以及下载日志文件。 - 域名的 Apache 错误日志(位于
/var/www/vhosts/DOMAIN.TLD/logs/error_log
)只包含有关网站错误的简要信息。您可以在客户面板上的 网站与域名 > <domain_name> > 日志 > 选择仅 Apache 错误 和 nginx 错误 而不是右边的 所有日志 以查看某个网站的错误日志。
日志文件 (Windows)¶
在 Windows 系统上,ModSecurity 审计日志是域名级别的,位于 %plesk_dir%\ModSecurity\vhosts\<domain's GUID>\logs
(其中 %plesk_dir%
是 Plesk 的默认安装目录)。
禁用规则¶
当您修改 web 应用程序防火墙模式从 禁用 或 仅检测 到 启用 时,网站可能会停止运行。在网站错误日志中您可以找到类似 403
、 404
或 500
的错误代码,您把 web 应用程序防火墙模式更改回 仅检测 或 禁用 时这些代码则不会出现。如果出现这样的情况,请分析 ModSecurity 审计日志查找原因。您可以关闭特别严格的安全规则或调整网站。
要找出为何一个网站上的 HTTP 请求无法完成:
查看网站的审计日志文件。
在 Plesk for Linux 中,您可以使用 Plesk 的 UI 查看日志:进入 工具与设置 > Web 应用程序防火墙 (ModSecurity) 点击 ModSecurity 日志文件 链接下载审计日志并在新的浏览器窗口中打开该日志。
使用搜索(在大部分的 web 浏览器中按下
Ctrl+F
)查找出问题的网站(域名)。例如,your_domain.tld
。浏览器将会高亮突出某些项,如HOST: your_domain.tld
. 在凸显条目以上的三行中,找到如--eece5138-B--
的字串。连字符中间的八个字符(即eece5138
)是 HTTP 请求触发的事件的 ID。进一步查找带有相同事件 ID 的其它条目。查找事件 ID 后面带有字母
H
的条目(例如,eece5138-H--
)。该条目包含 ID 和当检查 HTTP 请求时触发的安全规则的描述。安全规则 ID 是在方框内带有ID
前缀置于引号中的自3
开始的一个整数 例如,[id "340003"]
。使用子字符串
[id "3
在事件中查找安全规则 ID。当您禁用规则时可能会使用该 ID。
若要禁用规则:
- 请进入 工具与设置 > Web 应用程序防火墙 (ModSecurity) 进行操作。
- 在 禁用安全规则 部分,按 ID(例如,
340003
)、标签(例如, CVE-2011-4898 )或按常规表达(例如,XSS
)选择安全规则并点击 确定 。
Nginx 和 ModSecurity 说明 (Linux)¶
在 Linux 上,ModSecurity 是 Apache 的一个模块。因此,只能检查到达 Apache HTTP 请求。Apache 可辅以另一款 web 服务器 - nginx。如果您启用 由 nginx 处理 PHP 选项用于处理网站的动态内容(在网站的 Apache 与 nginx 设置 中),web 应用程序防火墙将无法检查 HTTP 请求因为这些请求永远不会到达 Apache。对于静态内容,如果启用了 由 nginx 直接服务静态文件 选项,HTTP 请求将不会到达 Apache,因此 ModSecurity 将不会对其检查。
升级说明 (Linux)¶
针对在升级到 Plesk Onyx 之前于服务器上安装了 ModSecurity 的有用提示:
- Plesk 将会安装自己的 ModSecurity 程序包。但是,在升级前 检查的过程中,Plesk 安装程序将会询问您是否同意在现有安装中安装 Plesk ModSecurity。
- 保留现有的 ModSecurity 配置。但是,ModSecurity 有很多版本和配置,因此很难预测新旧配置会如何发生冲突。若要避免此问题的出现,请在升级到 Plesk Onyx(或在安装 Plesk 的 ModSecurity 之前)保存您现有的配置并卸载 ModSecurity。