利用ubuntu 14.04+apache+modsecurity实现云WAF

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

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

云waf的技术实现

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

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

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

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

                        

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

如何搭建一个云waf系统

环境:

   ubuntu 14.04
   Apache2
   Windows 2008


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

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

安装软件之前首先更新源

sudo apt-get install update

安装apache2

Sudo apt-get install apache2

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

安装modsecurity

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

安装好以后使用

dpkg -s libapache2-modsecurity | grep Version

可以查看你的modsecurity版本号

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

然后重新加载配置文件

service apache2 reload

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

配置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'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>

 

启用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与端口)

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

搭建dns服务器

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

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

 

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

测试结果

当我们在waf的保护下输入在域名后面加入"'"以后


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

再次在域名后面输入"'"

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值