如何在 Apache 中抵御暴力破解和 DDos 攻击

对于那些需要在因特网上提供服务或托管主机的人来说,保证您的系统在面对攻击时的安全是一个重要的事情。

mod_security(一个开源的用于Web应用入侵检测及防护的引擎,可以无缝地集成到Web服务器)和mod_evasive是两个在服务器端对抗暴力破解和(D)Dos攻击的非常重要的工具。

mod_evasive,如它的名字一样,在受攻击时提供避实就虚的功能,它像一个雨伞一样保护Web服务器免受那些威胁。

如何在 Apache 中抵御暴力破解和 DDos 攻击

安装mod_security和mod_evasive来保护Apache

在这篇文章中我们将讨论如何安装、配置以及在RHEL/CentOS6、7和Fedora 21-15上将它们整合到Apache。另外,我们会模拟攻击以便验证服务器做出了正确的反应。

以上以您的系统中安装有LAMP服务器为基础,所以,如果您没有安装,请先阅读下面链接的文章再开始阅读本文。

(LCTT 译注:本文有修改。原文为了在RHEL/CentOS 7或Fedora 21中使用同样的工具,而删除了它们自带的 firewalld,使用了旧式的iptables。译者以为这样并不恰当,因此,译文中做了相应删节,并增加了firewalld的相应脚本。)

步骤 1: 安装mod_security和mod_evasive

另外,在安装LAMP后,您还需要在RHEL/CentOS 7/6中开启EPEL仓库来安装这两个包。Fedora用户不需要开启这个仓库,因为epel已经是Fedora项目的一部分了。

# yum update && yum install mod_security mod_evasive

当安装结束后,您会在/etc/httpd/conf.d下找到这两个工具的配置文件。

# ls -l /etc/httpd/conf.d

如何在 Apache 中抵御暴力破解和 DDos 攻击

mod_security + mod_evasive 配置文件

现在,为了整合这两个模块到Apache,并在启动时加载它们。请确保下面几行出现在mod_evasive.conf和mod_security.conf的顶层部分,它们分别为:

LoadModule evasive20_module modules/mod_evasive24.so

LoadModule security2_module modules/mod_security2.so

请注意modules/mod_security2.so和modules/mod_evasive24.so都是从/etc/httpd到模块源文件的相对路径。您可以通过列出/etc/httpd/modules的内容来验证(如果需要的话,修改它):

# cd /etc/httpd/modules

# pwd

# ls -l | grep -Ei '(evasive|security)'

如何在 Apache 中抵御暴力破解和 DDos 攻击

验证mod_security + mod_evasive模块

接下来重启Apache并且核实它已加载了mod_evasive和mod_security:

# service httpd restart [在RHEL/CentOS 6和Fedora 20-18上]

# systemctl restart httpd [在RHEL/CentOS 7和Fedora 21上]

# httpd -M | grep -Ei '(evasive|security)' [输出已加载的静态模块和动态模块列表]

如何在 Apache 中抵御暴力破解和 DDos 攻击

检查mod_security + mod_evasive模块已加载

步骤 2: 安装一个核心规则集并且配置mod_security

简单来说,一个核心规则集(即CRS)为web服务器提供特定状况下如何反应的指令。mod_security的开发者们提供了一个免费的CRS,叫做OWASP([开放Web应用安全项目])ModSecurity CRS,可以从下面的地址下载和安装。

下载OWASP CRS到为之创建的目录

# mkdir /etc/httpd/crs-tecmint

# cd /etc/httpd/crs-tecmint

# wget https://github.com/SpiderLabs/owasp-modsecurity-crs/tarball/master

如何在 Apache 中抵御暴力破解和 DDos 攻击

下载mod_security核心规则

解压CRS文件并修改文件夹名称

# tar xzf master

# mv SpiderLabs-owasp-modsecurity-crs-ebe8790 owasp-modsecurity-crs

如何在 Apache 中抵御暴力破解和 DDos 攻击

解压mod_security核心规则

现在,是时候配置mod_security了

将示例的规则文件(owasp-modsecurity-crs/modsecuritycrs10_setup.conf.example)拷贝为同名的配置文件。

# cp modsecurity_crs_10_setup.conf.example modsecurity_crs_10_setup.conf

并通过将下面的几行插入到web服务器的主配置文件/etc/httpd/conf/httpd.conf来告诉Apache将这个文件和该模块放在一起使用。如果您选择解压打包文件到另一个文件夹,那么您需要修改Include的路径:

<IfModulesecurity2_module>

Include crs-tecmint/owasp-modsecurity-crs/modsecurity_crs_10_setup.conf

Include crs-tecmint/owasp-modsecurity-crs/base_rules/*.conf

</IfModule>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/6382391a8dfcc290f282952f086f1c66.html