随着电子商务、网上银行、电子政务的盛行,WEB服务器承载的业务价值越来越高,WEB服务器所面临的安全威胁也随之增大,因此,针对WEB应用层的防御成为必然趋势,WAF(WebApplicationFirewall,WEB应用防火墙)产品开始流行起来。
WAF产品按照形态划分可以分为三种,硬件、软件及云服务。软件WAF由于功能及性能方面的缺陷,已经逐渐被市场所淘汰。云WAF近两年才刚刚兴起,产品及市场也都还未成熟。与前两种形态相比,硬件WAF经过多年的应用,在各方面都相对成熟及完善,也是目前市场中WAF产品的主流形态。

既然是硬件产品,网络部署对于用户来说,是一个必须要考虑的问题。纵观国内外的硬件WAF产品,通常一个产品会支持多种部署模式。这也给用户在购买或部署产品时带来了困惑。以下将对硬件WAF几种常见的部署模式做一个简单介绍,希望可以帮助广大用户解除困惑。

· WAF部署位置

通常情况下,WAF放在企业对外提供网站服务的DMZ区域或者放在数据中心服务区域,也可以与防火墙或IPS等网关设备串联在一起(这种情况较少)。总之,决定WAF部署位置的是WEB服务器的位置。因为WEB服务器是WAF所保护的对象。部署时当然要使WAF尽量靠近WEB服务器。

· WAF部署模式分类

根据WAF工作方式及原理不同可以分为四种工作模式:透明代理模式、反向代理模式、路由代理模式及端口镜像模式。前三种模式也被统称为在线模式,通常需要将WAF串行部署在WEB服务器前端,用于检测并阻断异常流量。端口镜像模式也称为离线模式,部署也相对简单,只需要将WAF旁路接在WEB服务器上游的交换机上,用于只检测异常流量。

图1:WAF部署模式分类

· WAF几种部署模式的技术原理

(1) 透明代理模式(也称网桥代理模式):透明代理模式的工作原理是,当WEB客户端对服务器有连接请求时,TCP连接请求被WAF截取和监控。WAF偷偷的代理了WEB客户端和服务器之间的会话,将会话分成了两段,并基于桥模式进行转发。从WEB客户端的角度看,WEB客户端仍然是直接访问服务器,感知不到WAF的存在;从WAF工作转发原理看和透明网桥转发一样,因而称之为透明代理模式,又称之为透明桥模式。

典型拓扑

(2) 反向代理模式:反向代理模式是指将真实服务器的地址映射到反向代理服务器上。此时代理服务器对外就表现为一个真实服务器。由于客户端访问的就是WAF,因此在WAF无需像其它模式(如透明和路由代理模式)一样需要采用特殊处理去劫持客户端与服务器的会话然后为其做透明代理。当代理服务器收到HTTP的请求报文后,将该请求转发给其对应的真实服务器。后台服务器接收到请求后将响应先发送给WAF设备,由WAF设备再将应答发送给客户端。这个过程和前面介绍的透明代理其工作原理类似,唯一区别就是透明代理客户端发出的请求的目的地址就直接是后台的服务器,所以透明代理工作方式不需要在WAF上配置IP映射关系。

典型拓扑

(3) 路由代理模式:路由代理模式,它与网桥透明代理的唯一区别就是该代理工作在路由转发模式而非网桥模式,其它工作原理都一样。由于工作在路由(网关)模式因此需要为WAF的转发接口配置IP地址以及路由。

典型拓扑

(4) 端口镜像模式:端口镜像模式工作时,WAF只对HTTP流量进行监控和报警,不进行拦截阻断。该模式需要使用交换机的端口镜像功能,也就是将交换机端口上的HTTP流量镜像一份给WAF。对于WAF而言,流量只进不出。

典型拓扑

· WAF几种部署模式的优缺点

(1) 透明代理模式(也称网桥代理模式):这种部署模式对网络的改动最小,可以实现零配置部署。另外通过WAF的硬件Bypass功能在设备出现故障或者掉电时可以不影响原有网络流量,只是WAF自身功能失效。缺点是网络的所有流量(HTTP和非HTTP)都经过WAF对WAF的处理性能有一定要求,采用该工作模式无法实现服务器负载均衡功能。

(2) 反向代理模式:这种部署模式需要对网络进行改动,配置相对复杂,除了要配置WAF设备自身的地址和路由外,还需要在WAF上配置后台真实WEB服务器的地址和虚地址的映射关系。另外如果原来服务器地址就是全局地址的话(没经过NAT转换)那么通常还需要改变原有服务器的IP地址以及改变原有服务器的DNS解析地址。采用该模式的优点是可以在WAF上同时实现负载均衡。

(3) 路由代理模式:这种部署模式需要对网络进行简单改动,要设置该设备内网口和外网口的IP地址以及对应的路由。工作在路由代理模式时,可以直接作为WEB服务器的网关,但是存在单点故障问题,同时也要负责转发所有的流量。该种工作模式也不支持服务器负载均衡功能。

(4) 端口镜像模式:这种部署模式不需要对网络进行改动,但是它仅对流量进行分析和告警记录,并不会对恶意的流量进行拦截和阻断,适合于刚开始部署WAF时,用于收集和了解服务器被访问和被攻击的信息,为后续在线部署提供优化配置参考。这种部署工作模式,对原有网络不会有任何影响。

【列举市场上的几种web防火墙】

Web应用防火墙 FreeWAF 开源代码发布了 http://www.oschina.net/news/42772/freewaf-code-opened

安全宝 - 网站安全专家 | 防黑客、抗DDoS、网站加速 永久免费 http://www.anquanbao.com/

安全狗-企业安全解决方案|云安全|服务器安全|网站安全 http://www.safedog.cn/index.html

可信云评估_可信云, 选购云服务,先上可信云 - 数据中心联盟 http://www.dca.org.cn/html/kexinyun/index.html

YUNDUN-抗DDoS_防CC攻击_高防智能DNS_免费CDN加速_WAF云防御 http://www.yundun.com/

牛盾云安全 - 防黑客、防网站DDoS攻击、防网站CC攻击、网站加速、高防智能DNS 永久免费 https://www.newdefend.com/
————————————————
原文链接:https://blog.csdn.net/enweitech/article/details/51905922

WAF的部署方式——有直路部署和旁路部署的更多相关文章

  1. MyBatis-Plus 多库部署方式;spring mvc 多库部署方式

    1.实现mybatis-plus的多个数据库的切换方式 源码地址:https://github.com/baomidou/mybatisplus-spring-mvc 2.因为其文档都是相互依赖的,所 ...

  2. RocketMQ的部署方式及持久化方式

    RocketMQ 的 Broker 有三种集群部署方式: 1. 单台 Master 部署: 2. 多台 Master部署: 3. 多 Master 多 Slave 部署:采用第 3 种部署方式时, M ...

  3. DPI在SDN中的部署方式

    目录 在sdn中的部署分类 将DPI部署到基础设施层 将DPI部署到控制层 将DPI部署到应用层 个人总结 参考文献 在sdn中的部署分类 DPI 可以分别部署到SDN的基础设施层.控制层和应用层. ...

  4. ActiveMQ的多种部署方式--ActiveMQ学习之二

    单点的ActiveMQ作为企业应用无法满足高可用和集群的需求,所以ActiveMQ提供了master-slave.broker cluster等多种部署方式,但通过分析多种部署方式之后我认为需要将两种 ...

  5. ASP.NET MVC教程三:ASP.NET MVC部署方式

    ASP.NET MVC编写的程序需要部署到IIS上面才能进行访问,部署方式分为两种. 一.直接用源代码部署 第一种方式可以直接使用源代码进行部署.部署步骤: 1.新建网站 在IIS里面选择网站,然后右 ...

  6. FW/IDS/IPS/WAF等安全设备部署方式及优缺点

    现在市场上的主流网络安全产品可以分为以下几个大类:1.基础防火墙FW/NGFW类 主要是可实现基本包过滤策略的防火墙,这类是有硬件处理.软件处理等,其主要功能实现是限制对IP:port的访问.基本上的 ...

  7. 介绍几种SSIS部署方式

    介绍 如果你已经开发完一个不错的SSIS包并且能够在你的本地完美的运行,每个任务都亮起绿色的通过标志.这时为了能够让这个包处理能够在指定时间运行,你需要将其发布到一个服务器上,并做好相关配置.作为开发 ...

  8. 到底应该选择那种Linux.NET的部署方式?

    当前部署Linux.NET环境的方式可谓是五花八门,既有传统的源码编译的方式.又有各式各样的一键安装脚本.还有绿色包安装方式,而随着Mono官方的新站上线,更增加了采用RPM包的部署方式.那对于一名L ...

  9. 使用Kylin构建企业大数据分析平台的4种部署方式

    本篇博客重点介绍如何使用Kylin来构建大数据分析平台.根据官网介绍,其实部署Kylin非常简单,称为非侵入式安装,也就是不需要去修改已有的 Hadoop大数据平台.你只需要根据的环境下载适合的Kyl ...

随机推荐

  1. 20.Java基础_对象的构造函数

    package pack1; public class Student { private String name; private int age; //构造方法 //如果没有任何构造函数,系统会自 ...

  2. input:file样式怎样修改

    问题描述: 我需要点击input:file来修改img中的图片,但是input:file样式太丑 解决办法: 给file设置透明度为0,让用户看不见他 创建新的button按钮 修改button按钮样 ...

  3. 第36课 经典问题(下)----关于string的疑问

    实例1: 下面的代码输出什么,为什么? #include <iostream> #include <string> using namespace std; int main( ...

  4. DOM的重绘和回流及代码性能优化

    1.DOM的重绘和回流Repaint&Reflow 1.1重绘:元素样式的改变(但宽高.大小.位置等不变) 如outline.visibility.color.background-color ...

  5. 【Eureka篇三】Eureka服务发现(4)

    注:该知识点并不是重点. 修改子模块:microservicecloud-provider-dept-8001 1. 修改DeptController @Autowired private org.s ...

  6. git相关2

    初学备忘: git安装好后,目录右键 => Git Bash here _________________________ 初始化仓库 git init 仓库名 配置仓库 git config ...

  7. package.json文件配置详解

    package.json 是npm init命令初始化后,在项目的根目录下自动生成的配置文件,它定义了这个项目的配置信息以及所需要的各种模块,npm install根据这个命令,自动下载所需的模块.p ...

  8. Paper | Compression artifacts reduction by a deep convolutional network

    目录 1. 故事 2. 方法 3. 实验 这是继SRCNN(超分辨)之后,作者将CNN的战火又烧到了去压缩失真上.我们看看这篇文章有什么至今仍有启发的故事. 贡献: ARCNN. 讨论了low-lev ...

  9. xml、bean、json互转工具,可直接CV就用

    1.jar包 <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactI ...

  10. Python连载33-共享变量加锁、释放

    一.共享变量 共享变量:当多个线程访问同一个变量的时候.会产生共享变量的问题. 例子: import threading sum = 0 loopSum = 1000000 def myAdd(): ...