CentOS 6和Apache 2上的ModSecurity和OWASP

ModSecurity是设计用于IIS,Apache2和Nginx的Web应用程序层防火墙。它是根据Apache许可2.0发行的免费开源软件。ModSecurity通过监视和分析您的网站流量来帮助保护您的Web服务器。它使用正则表达式实时执行此操作,以检测并阻止来自大多数已知漏洞的攻击。ModSecurity仅靠自身提供有限的保护,并依靠规则集来最大化保护。

开放式Web应用程序安全项目(OWASP)核心规则集(CRS)是一组通用的攻击检测规则,它们为任何Web应用程序提供了基本的保护级别。该规则集是免费的,开源的,目前由Spider Labs赞助。

OWASP CRS提供:

  • HTTP保护-检测是否违反HTTP协议和本地定义的使用策略。
  • 实时黑名单查询-利用第三方IP信誉。
  • HTTP拒绝服务保护-防御HTTP泛滥和缓慢的HTTP DoS攻击。
  • 常见的Web攻击防护-检测常见的Web应用程序安全攻击。
  • 自动化检测-检测机器人,爬虫,扫描仪和其他表面恶意活动。
  • 与AV扫描集成以进行文件上传-检测通过Web应用程序上传的恶意文件。
  • 跟踪敏感数据-跟踪信用卡使用情况并阻止泄漏。
  • 特洛伊木马防护-检测特洛伊木马。
  • 识别应用程序缺陷-警报应用程序错误配置。
  • 错误检测和隐藏-掩盖服务器发送的错误消息。

安装

本指南说明如何在运行Apache 2的CentOS 6上安装ModSecurity和OWASP规则集。

首先,您需要确保系统是最新的。

 yum -y update

如果尚未安装Apache 2,请立即安装。

 yum -y install httpd

现在,您需要安装一些依赖项才能使ModSecurity起作用。根据您的服务器配置,可能已经安装了部分或全部这些软件包。Yum将安装您没有的软件包,并通知您是否已安装任何软件包。

 yum -y install httpd-devel git gcc make libxml2 pcre-devel libxml2-devel curl-devel

更改目录并从ModSecuity网站下载源代码。当前的稳定版本是2.8。

 cd /opt/
 wget https://www.modsecurity.org/tarball/2.8.0/modsecurity-2.8.0.tar.gz

解压缩软件包并转到其目录。

 tar xzfv modsecurity-2.8.0.tar.gz 
 cd modsecurity-2.8.0

配置和编译源代码。

 ./configure
 make
 make install

将默认的ModSecurity配置和unicode映射文件复制到Apache目录。

 cp modsecurity.conf-recommended /etc/httpd/conf.d/modsecurity.conf
 cp unicode.mapping /etc/httpd/conf.d/

配置Apache以使用ModSecurity。您可以通过2种方法执行此操作。

 echo LoadModule security2_module modules/mod_security2.so >> /etc/httpd/conf/httpd.conf

...或使用像nano这样的文本编辑器:

 nano /etc/httpd/conf/httpd.conf

在该文件的底部,在单独的行上添加以下内容:

 LoadModule security2_module modules/mod_security2.so

现在,您可以启动Apache并将其配置为在启动时启动。

 service httpd start
 chkconfig httpd on

如果在使用本指南之前已安装Apache,则只需重新启动它即可。

 service httpd restart

现在,您可以下载OWASP核心规则集。

 cd /etc/httpd
 git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git

现在配置OWASP规则集。

 cd modsecurity-crs
 cp modsecurity_crs_10_setup.conf.example modsecurity_crs_10_config.conf

接下来,您需要将规则集添加到Apache配置中。同样,我们可以通过两种方式做到这一点。

 echo Include modsecurity-crs/modsecurity_crs_10_config.conf >> /etc/httpd/conf/httpd.conf
 echo Include modsecurity-crs/base_rules/*.conf >> /etc/httpd/conf/httpd.conf

...或使用文本编辑器:

 nano /etc/httpd/conf/httpd.conf

在文件底部的单独行中添加以下内容:

 Include modsecurity-crs/modsecurity_crs_10_config.conf
 Include modsecurity-crs/base_rules/*.conf

现在重新启动Apache。

 service httpd restart

最后,删除安装文件。

 yum erase /opt/modsecurity-2.8.0
 yum erase /opt/modsecurity-2.8.0.tar.gz

使用ModSecurity

默认情况下,ModSecurity在仅检测模式下运行,这意味着它将记录所有规则中断,但不采取任何措施。建议在新安装中使用它,以便您可以观看Apache错误日志中生成的事件。查看日志后,您可以决定在移到保护模式之前是否应对规则集进行任何修改或禁用规则(请参见下文)。

要查看Apache错误日志:

 cat /var/log/httpd/error_log

Apache错误日志中的ModSecurity行分为9个元素。每个元素都提供有关事件触发原因的信息。

  • 第一部分讲述什么规则文件触发了此事件。
  • 第二部分告诉规则在规则文件中的哪一行。
  • 第三个元素告诉您触发了什么规则。
  • 第四个元素告诉您规则的修订。
  • 第五个元素包含用于调试目的的特殊数据。
  • 第六个元素定义此事件严重性的日志记录严重性。
  • 第七部分描述了发生了什么操作以及发生在哪个阶段。

请注意,根据服务器的配置,某些元素可能不存在。

要将ModSecurity更改为保护模式,请在文本编辑器中打开conf文件:

 nano /etc/httpd/conf.d/modsecurity.conf

...并更改:

 SecRuleEngine DetectionOnly

至:

 SecRuleEngine On

如果在运行ModSecurity时遇到任何阻止,则需要在HTTP错误日志中标识规则。“ tail”命令允许您实时查看日志:

 tail -f /var/log/httpd/error_log

在查看日志时,重复导致阻塞的操作。

修改规则集/禁用规则ID

修改规则集超出了本教程的范围。

要禁用特定规则,请在第三个元素中标识规则ID(例如[id = 200000]),然后在Apache配置文件中将其禁用:

 nano /etc/httpd/conf/httpd.conf

...通过将以下内容添加到带有规则ID的文件底部:

<IfModule mod_security2.c>
SecRuleRemoveById 200000
</IfModule>

如果您发现ModSecurity阻止了您网站上的所有操作,则“核心规则集”可能处于“自包含”模式。您需要将其更改为“ Collaborative Detection”,它仅检测并阻止异常。同时,您可以查看“自包含”选项,并根据需要进行更改。

 nano /etc/httpd/modsecurity-crs/modsecurity_crs_10_config.conf

将“检测”更改为“自包含”。

您还可以将ModSecurity配置为允许IP通过Web应用程序防火墙(WAF),而无需登录:

 SecRule REMOTE_ADDR "@ipMatch xxx.xxx.xxx.xxx" phase:1,nolog,allow,ctl:ruleEngine=Off

...或使用日志记录:

 SecRule REMOTE_ADDR "@ipMatch xxx.xxx.xxx.xxx" phase:1,nolog,allow,ctl:ruleEngine=DetectionOnly

留下評論

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息