|
|
|
|
移动端

8.4.10 安全配置

《Linux服务器配置全程实录》第8章配置Web服务器,在本章中将介绍通过Apache配置HTTP、HTTPS、WebDAV、反向代理、安全配置、多种用户认证方式、虚拟主机,JSP环境搭建,LAMP环境搭建以及使用Lighttpd实现HTTP、HTTPS、虚拟主机等的相关内容。本节为大家介绍安全配置。

作者:张勤/杨章明来源:人民邮电出版社|2011-08-11 09:08

年前最后一场技术盛宴 | 1月27日与京东、日志易、美团技术大咖畅聊智能化运维发展趋势!


8.4.10  安全配置

保护Web服务器除了合理的部署防火墙以外,也可以通过本章中的方法来提高Apache自身的安全性。

1.防止DDos攻击

Ddos(Distributed Denial of Service,分布式拒绝服务攻击)利用网络上已被攻陷的电脑作为"肉鸡",向某一特定的目标电脑发动密集式的"拒绝服务"要求,把目标电脑的网络资源及系统资源耗尽,使之无法向真正正常请求的用户提供服务。在大多数情况下防止DDos是防火墙等安全服务(设备)的工作(实际上目前并没有太好的方法防止DDos攻击,大部分情况下都只能减少DDos攻击对服务器的压力),但对于一般中小型企业来说在没有使用防火墙的情况下使用mod_evasive模块来减少DDos攻击对Apahce造成的压力是一个不错的选择。使用mod_evasive模块的方法如下。

(1)下载mod_evasive(下载地址:ftp://rpmfind.net/linux/EPEL/5Server/i386/mod_evasive- 1.10.1- 3.el5.i386.rpm)RPM包后,使用如下命令安装。

  1. rpm -ivh mod_evasive-1.10.1-3.el5.i386.rpm 

(2)安装完成后,在/etc/httpd/conf.d/mod_evasive.conf文件中已载入模块并对其中一些参数进行了默认的配置,也可以根据需要增加或修改其中的参数。mod_evasive模块各大参数含义如下。

DOSHashTableSize:占用内存的大小。

DOSPageCount:同一IP地址在一个时段内可以存取同一页面的次数,如果超过限制该IP地址将被禁止。

DOSSiteCount:同一IP地址在一个网站内可以占用多少对象,如果超过限制该IP地址将被禁止。

DOSPageInterval:DOSPageCount中时间段的长度(单位为秒)。

DOSSiteInterval:DOSSiteCount中时间段的长度(单位为秒)。

DOSBlockingPeriod:当发现可能是攻击的访问后禁止客户端访问的时间(单位为秒)。在这段时间内,客户端访问时会收到"403 Forbidden"。

2.应用防火墙

ModSecurity(ModSecurity官方网站:http://www.modsecurity.org)是一个入侵检测与防护引擎,它主要是用于Web应用。它可以作为Apache的模块或作为单独的应用程序来运行。ModSecurity的功能是增强Web应用的安全性并保护Web应用以避免遭受来自已知与未知的攻击(ModSecurity的防护方式如图8-46所示)。在部署ModSecurity时可以将其与Apache部署在同一台主机,也可以将其单独部署在一台主机上作为反向代理。

 
图8-46  ModSecurity

(1)ModSecurity安装。

使用如下命令安装相关软件包。

  1. yum -y install pcre-devel.i*  
  2. yum -y install libxml2-devel.i* 

下载ModSecurity(下载地址:http://jaist.dl.sourceforge.net/sourceforge/mod-security/ modsecurity-apache_2.5.9.tar.gz)源码包后,使用以下命令解压。

  1. tar -xzvf modsecurity-apache_2.5.9.tar.gz  
  2. mv modsecurity-apache_2.5.9 modsecurity-apache  

使用如下命令编译安装ModSecurity。

  1. cd modsecurity-apache/apache2  
  2. ./configure  
  3. make  
  4. makeinstall  

在/etc/httpd/conf.d目录建立名为mod_security.conf的文件,并加入以下内容。

  1. LoadModule security2_module modules/mod_security2.so 

(2)ModSecurity配置。

ModSecurity与其他防火墙产品一样,单纯的安装并加载ModSecurity并不能真正的保护Apache,只有配置相关规则后ModSecurity才可以发挥作用(下述参数的配置都在/etc/httpd/conf.d/mod_security.conf文件中完成)。

①:配置ModSecurity常规参数,主要是一些打开规则引擎、定义日志文件等,一般直接使用下述配置即可。

  1. SecRuleEngine On  
  2.  
  3. SecRequestBodyAccess On  
  4. SecResponseBodyAccess On  
  5.       
  6. SecRequestBodyLimit 131072  
  7. SecRequestBodyInMemoryLimit 131072    
  8. SecResponseBodyLimit 524288  
  9.       
  10. SecDebugLog logs/modsec_debug.log  
  11. SecDebugLogLevel 0  
  12.       
  13. SecAuditEngine RelevantOnly  
  14.  
  15. SecAuditLogRelevantStatus ^5  
  16. SecAuditLogParts ABIFHZ  
  17. SecAuditLogType Serial  
  18. SecAuditLog logs/modsec_audit.log     

②:定义ModSecurity规则使用如下格式。

  1. SecRule VARIABLES OPERATOR [ACTIONS] 

其中各参数配置方法如下。

VARIABLES:ModSecurity会在http的5个传输阶段(Phase:1-Request Headers、Phase:2-Request Body、Phase:3-Response Headers、Phase:4-Response Body、Phase:5-logging)进行处理。因此需要在规则中指定对哪个阶段的什么操作进行处理。可以在VARIABLES中使用变量指定在对哪个阶段的什么操作进行处理。常见的变量包括ARGS、ARGS_NAMES、ARGS_GET、ARGS_GET_NAMES、ARGS_POST、ARGS_POST_NAMES、AUTH_TYPE、REQBODY_PROCESSOR、REQBODY_PROCESSOR_ ERROR、FILES、FILES_NAMES、FILE_SIZES、REMOTE_ADDR、REMOTE_HOST、REMOTE_PORT、REQUEST_BODY、REQUEST_COOKIES、REQUEST_COOKIES_ NAMES、REQUEST_FILENAME、RESPONSE_BODY。在指定VARIABLES时如有多个可使用"|"分隔。

OPERATOR:定义当满足VARIABLES操作时,规则的关键字。默认情况OPERATOR使用正规表达式定义,也可以使用ModSecurity中提供的关键字(以@开头),在下面的例子中当REMOTE_ADDR不是以192.168.0.200结尾时,则满足规则。

  1. SecRule REMOTE_ADDR "^192\.168\.0\.200$" 

ACTIONS:当规则满足时的处理动作。在ModSecurity中的ACTIONS主要包括deny、drop、redirect、proxy、pause、Append、auditlog、exec、allow、chain、pass、skip、id、rev、severity、msg、phase、log、nolog、capture、status、t、xmlns。

(3)ModSecurity配置实例。

在下述例子中,当Request Body阶段处理发生错误(错误代码不为0)时则满足该规则。该规则将记录日志,断开连接,在客户端浏览器上显示"Failed to parse request body.",并将此错误严重程度定义为2。

  1. SecRule REQBODY_PROCESSOR_ERROR "!@eq 0” \  
  2. "phase:2,log,deny,msg:'Failed to parse request body.',severity:2”  
【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

计算机病毒分析与防治简明教程

本书全面翔实地介绍了各种病毒的原理,以操作系统的发展为主线,结合病毒的发展过程来综合分析病毒。在分析工具上,较多地利用了脚本语言、...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊