红帽企业Linux上的ModSecurity防火墙安装指南

日期: 2010-08-22 作者:Ronald McCarty翻译:鬼谷 来源:TechTarget中国 英文

ModSecurity是一个开源的Web应用防火墙(WAF)解决方案。它基于当前流行的Apache服务器,能轻易地部署在大部分基于Linux的Web应用上。WAF是应用层的防火墙,用来监控Web服务器的访问,以验证访问请求有效且没有非法入侵Web服务器的意图。这种用于检测的技术叫做“深层检测“,因为防火墙将在数据包中检测得更深。

  典型的防火墙检测方式是基于IP地址的,通过协议(TCP或者UDP)和端口来判断流量是否为合法的。WAF通过传统的IP和TCP/UDP,并结合检测流量大小来判断该数据流是否为非法的。深层检测可以通过两种方式来发现异常数据:协议发现和签名。用协议发现,深层检测可以查看……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

ModSecurity是一个开源的Web应用防火墙(WAF)解决方案。它基于当前流行的Apache服务器,能轻易地部署在大部分基于Linux的Web应用上。WAF是应用层的防火墙,用来监控Web服务器的访问,以验证访问请求有效且没有非法入侵Web服务器的意图。这种用于检测的技术叫做“深层检测“,因为防火墙将在数据包中检测得更深。

  典型的防火墙检测方式是基于IP地址的,通过协议(TCP或者UDP)和端口来判断流量是否为合法的。WAF通过传统的IP和TCP/UDP,并结合检测流量大小来判断该数据流是否为非法的。深层检测可以通过两种方式来发现异常数据:协议发现和签名。用协议发现,深层检测可以查看协议版本、协议的一致性、无效请求、域名解析检查及其它容易被判断为反常的方法。通过签名,检测某种数据包(比如HTTP)应该有的负载范围,可以判断黑客攻击具有的特征。例如,对某个特定版本CGI程序的请求可能会以http://www.domain.com/cgi/hacked.cgi?a=4这样的形式出现,这样就会以它的签名为由被屏蔽。

为什么要用WAF?

  应用防火墙除了能增强安全性外,有些组织还需要它来支持支付卡行业项目,以使其满足VISA卡和MASTER卡要求的支付卡行业数据安全标准(PCI DSS)。PCI DSS要求部署应用防火墙和操作规程来保证安全性。

开源的WAF解决方案

  目前有两个有名的开源WAF:Aqtronoxa和ModSecurity。Aqtronoxa可以用IIS环境中部署和发布,ModSecurity则用Apache环境。升级转换版的ModSecurity可以部署在任何WEB服务器上(不要求Apache)。

ModSecurity的要求

  我建议用Apache2.2.X或者更高版本来做Web服务器。以下的步骤是假设Apache未安装的情况下,将使用最新增的功能来简化安装过程。

  DNS是网页流量和使用WEB应用防火墙的基础条件。所以,请确认DNS在运行WAF的红帽系统中能正常工作。本文档中使用红帽5.4版本做为例子,但是实际在5.3版本中会运行的更好。

ModSecurity的安装

  在本文档中,我们将在开放了80到8080端口的服务器上来安装ModSecurity。WEB服务器的地址为192.168.1.5 。

  ModSecurity可以用源代码来安装,它附有详细的安装说明。但是,我还是选择用模块包的方式通过包管理来安装ModSecurity。

  要用包管理的方式,就要选择一个合适的库来安装。这里我选择Jason Litka的库。添加一个库到Yum让它能够认到Jason的库。例如,编辑/etc/yum.repos.d/utter.repo,并添加以下内容:

 [utter] name=Jason's Utter Ramblings Repo               baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

  这样Yum就可以认到APACHE所能安装到的库了:

 yum install httpd
 yum install httpd-devel

  然后ModSecurity就可以用以下命令来安装:

 yum install mod_security

  不幸的是用这个办法ModSecurity还是需要手动指定一些ModProxy的汇编,所以这里要安装一个gcc编译器(稍后可以卸载):

 Cd /root
 wget http://www.manticmoo.com/articles/jeff/programming/proxy/mod_proxy_html.c
 yum install libxml2-devel   yum install gcc apxs -c -I /usr/include/libxml2/ -i mod_proxy_html.c

  其余的可以用以下命令删除:

 yum erase kernel-headers yum erase cpp yum erase libgomp

  ModSecurity需要libxml模块,将以下命令添加到httd.conf中去:

 LoadFile /usr/lib/libxml2.so LoadModule proxy_html_module modules/mod_proxy_html.so

  添加如下行:

 LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

  现在可用用httd.conf中的以下命令来激活proxy:

 <Proxy *>
     Order deny,allow
     Allow from all
 </Proxy>
 SSLProxyEngine On ProxyPass / http://192.168.1.5:8080/ ProxyPassReverse / http://website.domain.com/
 <Location>
 ProxyHTMLExtended On </Location>

  参数ProxyPass和ProxyPass reverse定义了发送实际数据的位置。默认情况这里会要求填入Web服务器负载均衡地址的完全域名。

翻译

鬼谷
鬼谷

相关推荐