最新消息:

新手教程:利用ubuntu 14.04+apache+modsecurity实现云waf

Apache admin 2983浏览 0评论

转自:http://www.freebuf.com/articles/web/63076.html

jinglingshu_2015-04-08_08-42-19

近年来,云计算的热潮推动着IT行业的发展,很多企业的产品或服务都在尽力与云“挂钩”。其中,在国内外信息安全市场中,也多了一个新的概念,就是“云WAF”。‍‍

云WAF,也称WEB应用防火墙的云模式。它是一种全新的信息安全产品模式。这种模式让用户不需要在自己的网络中安装 软件程序或部署硬件设备,就可以对 网站实施安全防护。防SQL注入、防XSS、防DDOS等,这些传统WAF上存在的功能,云WAF同样具备。从用户的角度来看,云WAF更像是一种安全服 务,只不过这种服务并非是通过人工来实施的。

‍‍

云waf的技术实现‍‍

之所以称之为云WAF,就是因为它所有的WAF功能都是通过云端提供的,而不需要在本地部署产品。实现这点主要利用的就是DNS技术。‍‍

‍‍众所周知,每个网站都有自己的域名,域名与WEB服务器的IP地址相对应。当客户端浏览器通过域名访问网站时,首先会由网站指定的DNS服务器解析出域名所对应的WEB服务器的IP地址,这样客户端才能向服务器发起正常的访问请求,进而完成一次完整的HTTP会话。‍‍

‍‍云WAF正是利用这项机制。通过让网站移交域名解析权的方式,实现对网站的安全防护。‍‍

‍‍图一就是当用户访问web服务器的时候流量的走向‍‍

jinglingshu_2015-04-08_08-42-211

‍‍‍‍如 上图所示,dns服务器负责将域名解析到waf防火墙上,然后waf通过反向代理再把流量代理到真正的web服务器上面,所以说,外界访问web服务器的 方式是经过dns服务器,然后waf,最后是web服务器。这样,通过反向代理,用户是无法访问到真正的web服务器,使web服务器处于保护状态。‍‍

‍‍

如何搭建一个云waf系统‍‍

‍‍环境:

 ubuntu 14.04
 Apache2
 Windows 2008

jinglingshu_2015-04-08_08-42-191

‍‍我们使用ubuntu作为waf服务器,使用win2008作为dns服务器。‍‍

‍‍首先配置waf,设置一个固定IP,我这里设置为192.168.1.3‍‍

‍‍安装软件之前首先更新源‍‍

sudo apt-get install update

‍‍安装apache2‍‍

Sudo apt-get install apache2

jinglingshu_2015-04-08_08-42-19

‍‍当显示OK的时候说明安装成功‍‍

jinglingshu_2015-04-08_08-42-201

‍‍‍‍安装modsecurity‍‍‍‍

apt-get install libxml2 libxml2-dev libxml2-utils libaprutil1 libaprutil1-dev libapache2-modsecurity

安装好以后使用‍‍

dpkg -s libapache2-modsecurity | grep Version

‍‍可以查看你的modsecurity版本号‍‍

jinglingshu_2015-04-08_08-42-192

‍‍我的版本是2.7.7-2(这里说一下,因为上面那个虚拟机崩溃了 然后又重装了一个,所以后面写的是ubuntu2)‍‍

‍‍然后重新加载配置文件‍‍

service apache2 reload

‍‍当该命令生效以后就会在/var/log/apache2/目录下生成modsecurity的日志文件modsec_audit.log‍‍

jinglingshu_2015-04-08_08-42-20

配置modsecurity

‍‍启用modsecurity核心规则集‍‍

‍‍将我们想起用的规则集放置在以下目录下‍‍

cd /usr/share/modsecurity-crs/activated_rules/

‍‍选择启用base规则集‍‍

for f in $(ls ../base_rules/); do ln -s ../base_rules/$f; done

‍‍修改apache配置文件,启用规则‍‍

vim /etc/apache2/mods-available/security2.conf

‍‍修改‍‍

<IfModule security2_module>        
# Default Debian dir for modsecurity&#039;s persistent data        
SecDataDir /var/cache/modsecurity        
# Include all the *.conf files in /etc/modsecurity.        
# Keeping your local configuration in that directory        
# will allow for an easy upgrade of THIS file and        
# make your life easier        
IncludeOptional /etc/modsecurity/*.conf        
IncludeOptional /usr/share/modsecurity-crs/*.conf        
IncludeOptional /usr/share/modsecurity-crs/activated_rules/*.conf
</IfModule>

jinglingshu_2015-04-08_08-42-202

‍‍启用modsecurity模块‍‍

a2enmod headersa2enmod security2 
service apache2 restart

‍‍这样waf服务器就搭建成功‍‍

‍‍

配置反向代理

‍‍首先‍‍

‍‍打开终端,输入‍‍

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer

‍‍每步运行完都要重启apache‍‍

‍‍然后打开etc/apache2/sites-acailable/000-default.conf

‍‍‍‍修改配置文件。大约改成下面的样子:

ServerName www.***.com
     ServerAdmin webmaster@localhost
     DocumentRoot /var/www/html
     ServerAlias ***.com
     ProxyPreserveHost On
     ProxyRequests Off
     <Proxy *>
     Order deny,allow
     Allow from all
     </Proxy>
     ProxyPass / http://****/ (输入web服务器的ip与端口) 
     ProxyPassReverse / 
http://***/(输入web服务器的ip与端口)

jinglingshu_2015-04-08_08-42-21

‍‍然后重启apache服务器,就可以了

‍‍

搭建dns服务器‍‍

‍‍点击服务器管理器-添加角色-dns服务器
‍‍‍‍然后打开dns管理器,右键,选择连接到dns服务器,此计算机,确定

jinglingshu_2015-04-08_08-42-22

jinglingshu_2015-04-08_08-42-221

‍‍正向查找-新建区域
‍‍然后一直下一步,域名填写你要注释的域名,但是不要加www

‍‍jinglingshu_2015-04-08_08-42-222

‍‍点击新建主机,在名称上填写www,记住ip地址写的是你的waf服务器的地址

jinglingshu_2015-04-08_08-42-23

‍‍测试结果‍‍

jinglingshu_2015-04-08_08-42-24

‍‍当我们在waf的保护下输入在域名后面加入”‘”以后

‍‍jinglingshu_2015-04-08_08-42-242

‍‍当我们把dns的服务器修改为本地的dns服务器以后

‍‍jinglingshu_2015-04-08_08-42-241

‍‍再次在域名后面输入”‘”‍‍

jinglingshu_2015-04-08_08-42-243

‍‍可以在上图中看到你的路径等信息,配置成功!

转载请注明:jinglingshu的博客 » 新手教程:利用ubuntu 14.04+apache+modsecurity实现云waf

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址