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


Leave a Comment

如何在CentOS 7上安装Oxwall

如何在CentOS 7上安装Oxwall

Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,

如何在CentOS 7上设置vsFTPd

如何在CentOS 7上设置vsFTPd

FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o

使用Nethogs监视网络带宽使用情况

使用Nethogs监视网络带宽使用情况

在本教程中,我们将介绍在CentOS 6x x64上安装和使用nethogs的过程。nethogs是一种网络监视工具,它允许Networ

如何在CentOS 7上安装BoltWire CMS

如何在CentOS 7上安装BoltWire CMS

使用其他系统?简介BoltWire是一个用PHP编写的免费,轻量级的内容管理系统。与大多数其他内容管理人员相比

在CentOS 6上设置SA-MP San Andreas多人服务器

在CentOS 6上设置SA-MP San Andreas多人服务器

欢迎来到另一个Vultr教程。在这里,您将学习如何安装和运行SAMP服务器。本指南是为CentOS 6编写的。先决条件

使用Etckeeper进行/ etc的版本控制

使用Etckeeper进行/ etc的版本控制

简介/ etc /目录在Linux系统运行中起着至关重要的作用。其原因是因为几乎每个系统配置

如何在CentOS 7上安装Microweber

如何在CentOS 7上安装Microweber

使用其他系统?Microweber是一个开放源代码的拖放式CMS和在线商店。Microweber源代码托管在GitHub上。本指南将向您展示

如何在CentOS 7上安装SonarQube

如何在CentOS 7上安装SonarQube

使用其他系统?SonarQube是用于质量系统开发的开源工具。它是用Java编写的,并且支持多个数据库。它提供

如何在CentOS 7上使用Mosh进行远程服务器管理

如何在CentOS 7上使用Mosh进行远程服务器管理

使用其他系统?Mosh是Mobile Shell的缩写,是一种新兴的远程终端应用程序,旨在提供更好的连接和使用

如何在CentOS 7上安装MoinMoin

如何在CentOS 7上安装MoinMoin

MoinMoin是一个使用Python编写的基于文件系统的开源Wiki引擎。如今,MoinMoin已广泛用于开源社区。许多供应商

在CentOS 7上安装H2O Web服务器

在CentOS 7上安装H2O Web服务器

H2O是新一代HTTP服务器,它对所有当前使用的Web服务器都具有出色的,功能齐全的HTTP / 2实现。使用H2O作为您的Web服务器

如何在Debian,CentOS和FreeBSD上使用Sudo

如何在Debian,CentOS和FreeBSD上使用Sudo

在Linux和Unix系统管理员中,使用sudo用户访问服务器并在root级执行命令是一种非常普遍的做法。使用泡沫

如何在Ubuntu 16.10上安装Countly Analytics

如何在Ubuntu 16.10上安装Countly Analytics

使用其他系统?Countly是一个开源Web /移动分析和营销平台。它具有许多用于从Web收集数据的功能

如何在CentOS 7上安装MODX CMS和Nginx

如何在CentOS 7上安装MODX CMS和Nginx

MODX是一个用PHP编写的免费开放源内容管理系统。它使用MySQL或MariaDB来存储其数据库。MODX专为满足以下条件的企业而设计:

如何在CentOS 7 LAMP VPS上安装Lychee 3.1相册

如何在CentOS 7 LAMP VPS上安装Lychee 3.1相册

使用其他系统?Lychee 3.1相册是一种简单,灵活,免费和开源的照片管理工具,可在VPS服务器上运行。安装

如何在CentOS 7上安装ERPNext开源ERP

如何在CentOS 7上安装ERPNext开源ERP

使用其他系统?ERP或企业资源计划是用于管理核心业务流程的企业应用程序套件。ERPNext是免费的

如何在CentOS 7 LAMP VPS上安装Paste 2.1

如何在CentOS 7 LAMP VPS上安装Paste 2.1

使用其他系统?Paste 2.1是一个简单,灵活,免费和开源的pastebin应用程序,用于存储代码,文本等。最初是

如何在CentOS 7上安装Seafile Server

如何在CentOS 7上安装Seafile Server

使用其他系统?Seafile(社区版本)是一个免费和开源的文件同步和共享解决方案,类似于ownCloud。机智

如何在CentOS 7上安装Kolab组件

如何在CentOS 7上安装Kolab组件

使用其他系统?Kolab Groupware是一个免费的基于Web的开源组件软件。它的功能包括电子邮件通信,事件

如何在CentOS 7 LAMP VPS上安装Omeka Classic 2.4 CMS

如何在CentOS 7 LAMP VPS上安装Omeka Classic 2.4 CMS

使用其他系统?Omeka Classic 2.4 CMS是一个免费的开源数字发布平台和用于共享数字内容的内容管理系统(CMS)

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 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。