WAF支持多种灵活的部署方式 » FreeWAF

«

»

03

WAF支持多种灵活的部署方式

WAF支持多种灵活的部署方式,根据其工作方式原理不同可以分为在线方式、离线方式和冗余方式。从其设备在网络的位置看,通常放在企业对外提供网站服务的DMZ区域或者放在数据中心服务区域,也可以与FireWall或IPS(这种情况较少)等串联在一起。用户可以根据自己的需求采用不同的工作方式以及放置在不同的位置灵活部署。

在线方式

在线方式又可分为3种工作模式:透明代理模式、反向代理模式、路由代理模式。

上图只是为了示意,未画出完整拓扑。内网区(LAN)和DMZ区域可能接在防火墙上(如图a所示),也可能通过核心交换机统一连到防火墙上(如图b和图c所示)。

图a和图b有3种工作模式:透明代理模式、反向代理模式、路由代理模式。

图c有2种工作模式:反向代理模式、路由代理模式;也有人把图c这种工作模式称为单臂式

  • 技术原理
工作模式 技术原理
透明代理模式(也称网桥代理模式) 透明代理模式的工作原理是,当Web客户端对服务器有连接请求时,TCP连接请求被Web应用防火墙截取和监控。WAF偷偷的代理了Web客户端和Web应用防火墙之间的会话,将会话分成了两段,并基于桥模式进行转发。从Web客户端的角度看,Web客户端仍然是直接访问服务器,感知不到Web应用防火墙的存在;从WAF工作转发原理看和透明网桥转发一样,因而称之为透明代理模式,又称之为透明桥模式。
反向代理模式 反向代理模式是指将真实服务器的地址映射到反向代理服务器上。此时代理服务器对外就表现为一个真实服务器,由于客户端访问的就是WAF,因此在WAF无需像其它模式(如透明和路由代理模式)一样需要采用特殊处理去劫持客户端与服务器的会话然后为其做透明代理。当代理服务器收到HTTP的请求报文后,将该请求转发给其对应的真实服务器。后台服务器接收到请求后将响应先发送给WAF设备,由WAF设备再将应答发送给客户端。这个过程和前面介绍的各种透明代理其工作原理类似,唯一区别就是透明代理客户端发出的请求的目的地址就直接是后台的服务器,所以透明代理工作方式不需要在WAF上配置IP映射关系。
路由代理模式 路由代理模式,它与网桥透明代理的唯一区别就是该代理工作在路由转发模式而非网桥模式,其它工作原理都一样。由于工作在路由(网关)模式因此需要为WAF的转发接口配置IP地址以及路由
  • 优缺点
工作模式 优缺点
透明代理模式(也称网桥代理模式) 这种部署模式对网络的改动最小,可以实现零配置部署。另外通过WAF的硬件Bypass功能在设备出现故障或者掉电时可以不影响原有网络流量,只是WAF自身功能失效。缺点是网络的所有流量(HTTP和非HTTP)都经过WAF对WAF的处理性能有一定要求,采用该工作模式无法实现负载均衡功能。
反向代理模式 这种部署模式需要对网络进行改动,配置相对复杂,除了要配置WAF设备自身的地址和路由外,还需要在WAF上配置后台真实Web服务器的地址和虚地址的映射关系。另外如果原来服务器地址就是全局地址的话(没经过NAT转换)那么通常还需要改变原有服务器的IP地址以及改变原有服务器的DNS解析地址。采用该模式的优点是可以在WAF上同时实现负载均衡。采用单臂拓扑的反向代理相比串联拓扑的反向代理而言,对原有拓扑改动稍微小一些,并且不会影响其它流量,缺点是HTTP吞吐量只有原来的一半。
路由代理模式 这种部署模式需要对网络进行简单改动,要设置该设备内网口和外网口的IP地址以及对应的路由。工作在路由代理模式时,可以直接作为Web服务器的网关,但是存在单点故障问题,同时也要负责转发所有的流量。该种工作模式也不支持服务器负载均衡功能。

 离线方式

离线方式其物理拓扑和前面介绍的单臂代理模式是类似的。

  • 技术原理

离线方式(也称旁挂式)工作时,WAF只对HTTP流量进行监控和报警,不进行拦截阻断。他和单臂代理模式有点类似,差别是离线模式需要使用交换机的端口镜像功能(而非策略路由功能),如上图将port2和port3的HTTP流量镜像一份给WAF。对于WAF而言,流量只进不出。

  • 优缺点

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

发表评论

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>