解决方案 » FreeWAF

解决方案

1. 离线模式

        在部署离线模式之前所需要注意的是,与FreeWAF相连接的交换机必须支持端口镜像功能,否则FreeWAF无法抓取(或嗅探)报文。

1.1 原理说明

        离线模式部署示意图如下:

offline1

图1.1 离线模式部署示意图

离线模式下FreeWAF的防护引擎,通常是部署在交换机的镜像口(需要交换机支持)上,其作为一个旁观者、监听者的角色,仅对HTTP数据流进行检测,并且记录访问和攻击信息,而不对攻击进行拦截,除离线模式意外的其他三种模式,都是“在线”模式,可以对攻击进行拦截。注意,该模式下防篡改和自学习功能仍然可以正常使用。

该种模式的优点是,可以不对现有的网络进行修改,并且对Web服务器的访问没有任何的影响,您可以通过部署离线模式,了解网站的访问情况和攻击情况,并且调整FreeWAF的配置参数,以适应Web服务器的具体情况,为后续部署其他工作模式做好准备。

1.2 网络拓扑

        离线模式的网络拓扑举例图如下所示:
offline_tp

图1.2 离线模式网络拓扑举例图

离线模式部署无需改变原有的网络拓扑结构,而只需将FreeWAF连接到支持端口镜像功能的交换机上即可,即如图中所示的IP地址为10.10.10.31的嗅探网口;另外,可以配置管理口方便管理员对FreeWAF设备进行管理,例如可以将FreeWAF的一个网口IP配置为192.168.0.100作为管理口。

~ 注意事项:

管理口不是必选配置,可以根据具体的情况,使用其他业务网口代替管理口;嗅探口的IP可以配置,也可以不配置

1.3 配置方式

第一步:选择工作模式

点击网管右上角的“快速配置”,进行快速配置,如图1.3所示。选择“离线模式”,点击“下一步”,选择离线模式进行后续的配置,如图1.4所示。

offline2

图1.3 “快速配置”按钮示图

offline3

图1.4 选择工作模式

第二步:配置工作模式

进入到该步骤对防护引擎的离线模式进行配置,如图1.5所示。

offline4

图1.5 离线模式配置

在该界面中,要配置2个方面的内容:

  • 监听端口配置

监听端口配置其实质就是从下面选用的监听接口中抓取(或曰嗅探)包含这些IP地址、HTTP协议和端口的报文,使得通过FreeWAF的接口的这些IP地址、协议和端口三元组的报文上送给本设备。请注意看,这里配置的监听IP地址是后台Web服务器的IP地址。

  • 接口配置

接口配置的重点是选择监听哪个接口,因为防护引擎要从这些接口抓取(或曰嗅探)报文,至于这些接口的IP地址和掩码没有要求一定要配置,也就是说,有或没有配置都是可以的,不影响使用。

第三步:配置安全策略

安全策略是用于对HTTP进行双向深层次检测的策略库,这些策略库将会在“第四步:配置服务器策略”时被引用。安全策略之所以设计成可配置多实例,是因为它需要满足不同服务器有不同安全策略的需求,比如:www.freewaf.org仅需要SQL注入防护、XSS攻击防护,不需要XML攻击防护,相反,www.example.com仅需要XML攻击防护,不需要SQL注入防护、XSS攻击防护,这样,安全策略就可以通过按需定义实例,以满足服务器的不同需求。安全策略列表如图1.6所示:

offline5

图1.6 安全策略列表

该界面中配置安全策略,防护引擎既带有默认安全策略,也允许用户自定义安全策略,默认安全策略用户仅可修改不可删除,而自定义安全策略用户可自行创建和删除。当自定义安全策略被服务器安全策略引用时,它将不能被删除。

在【安全策略列表】界面中,点击【添加】,即可创建新的安全策略,并进入其配置界面;点击【配置】,即可配置已有的安全策略,并进入其配置界面;在配置界面下,可对安全子策略进行配置。点击【删除】,即可删除已有的安全策略。如图1.7所示:

offline6

图1.7 安全策略中的子策略

~ 注意事项:

在配置向导中,用户不能配置安全子策略的高级选项,比如:配置用户自定义关键字等。用户要配置这些高级选项,请在功能菜单中,选择【Web防护】->【安全策略】进行配置。

第四步:配置服务器策略

服务器策略是根据后端真实Web服务器的防护需求进行配置,当然,需要结合FreeWAF的工作模式来决定。图1.8是服务器策略列表:

offline7

图1.8 服务器策略列表

在【服务器策略列表】界面中,点击【添加】,即可创建新的服务器策略,并进入其配置界面;点击【配置】,即可配置已有的服务器策略,并进入其配置界面;在配置界面下,可对服务器策略进行配置。点击【删除】,即可删除已有的服务器策略。如图1.9所示:

offline8

图1.9 配置服务器策略

在该界面中配置服务器策略,总共分为下面几个部分配置内容:

  • 检测模式。它有:检测不拦截和检测并拦截两种模式。在“在线方式”中,如果检测模式为“检测不拦截”,这样,不管安全策略中的子策略“动作”如何配置,将都允许客户端访问;如果检测模式为“检测并拦截”,客户端的访问将由安全策略中的子策略“动作”决定。也就是说,在“在线方式”中,检测模式优先级最高。在“离线方式”中,检测模式都为“检测不拦截”。
  • 安全策略。这里将引用上一步配置的安全策略。也就是说,这个服务器策略将用哪个安全策略进行检测扫描就在这里选择。
  • 缓存策略。在安装后有一个默认的default缓存策略,用于服务器缓存加速的用途,需要注意的是,在离线模式下缓存策略不会生效,在其他三种模式下会生效。
  • 服务器配置。服务器配置有2种形式的界面:一种是配置反向代理的界面(在反向代理模式有效);另一种是配置网桥透明代理、路由透明代理、离线的界面(在网桥透明代理模式、路由透明代理模式、离线模式有效)。
    • 可配置多服务器策略的反向代理,但是,服务器策略的反向代理不支持虚拟主机;
    • 可配置多服务策略的网桥透明代理、路由透明代理、离线。配置方法如下:
      • 全匹配服务器策略。为了简化用户配置,可以通过配置IP地址为0.0.0.0,端口为0的全匹配地址,来匹配后端所有真实服务器。
      • 定制型服务器策略。一个服务器策略可以配置多个后端真实服务器(指IP地址、域名(可选)、协议和端口4元唯一)。如果用户没有配置后端真实服务器,则客户端将无法穿透FreeWAF去访问后端资源。
      • 全匹配服务器策略和定制型服务器策略之间的关系。用户访问会先去匹配定制型服务器策略,如果匹配失败,则再去匹配全匹配服务器策略。
  • 日志配置。它包括:访问日志和攻击日志的打开/关闭。攻击日志有严重等级,总共8级。它分别如下:
    • 0 – EMERGENCY:紧急情况,检测扫描到攻击和信息泄漏的情况。
    • 1 – ALERT:必须立即采取措施,检测扫描到攻击和应用错误的情况。
    • 2 – CRITICAL:重要情况,异常分为5分,一般由40级文件中的安全策略产生的。
    • 3 – ERROR:错误信息,异常分为4分,主要是由50级文件中的安全策略产生的。
    • 4 – WARNING:警告信息,异常分为3分,一般由35级文件中的安全策略产生的。
    • 5 – NOTICE:一般重要情况,异常分为2分,一般由协议的安全策略产生的。
    • 6 – INFO:普通信息。
    • 7 – DEBUG:调试信息。
  • 高级配置。它包括:请求参数分隔符和Cookie格式版本。
    • 一般情况下请求参数分隔符为“&”,但是,也有Web服务器的请求参数使用“;”,因此,请求参数分隔符做成用户可配置,默认值为“&”。
    • Cookie格式版本,它包括Version 0和Version 1两个版本,Version 0也称Netscape Cookie,它也是Web应用常用的Cookie,在Cookie中不使用双引号对Cookie内容进行分割,举例:Cookie: session-id=002-1145265-8016838; session-id-time=1007884800;而Version 1与Version 0相反,它在Cookie中会使用双引号等对Cookie内容进行分割,举例:Cookie: session-id=”002-1145265-8016838″; session-id-time=”1007884800″,默认值为Version 0。

~ 注意事项:

在配置多服务策略的网桥透明代理、路由透明代理、离线时,最好即配置全匹配服务器策略(即上图所示的IP地址为0.0.0.0,端口为0的全匹配地址的配置),也配置定制型服务器策略。

2. 反向代理模式

2.1 原理说明

        反向代理模式示意图如下:
reverse1

图2.1 反向代理模式示意图

如果使用过Apache、Nginx、Squid等软件的反向代理功能,您就会对FreeWAF的反向代理功能有了一定的了解,因为FreeWAF的反向代理功能跟上述软件是类似的。FreeWAF作为Web服务的代理,其原理简单描述为,用户先对FreeWAF的Web服务端口发起HTTP连接建立通信管道,并将请求通过该通信管道发送给FreeWAF,FreeWAF检测安全后,由FreeWAF向真实Web服务器发起HTTP连接建立通信管道,将请求发送给真实服务器处理,并且将接收到的真实Web服务器的响应发送给用户。

该种工作模式的网络部署拓扑,可以参照上述代理软件的部署方式,也可以参考示意图中列出的方式,将FreeWAF和Web服务器部署在同一个局域网子网,也可以将Web服务器部署在FreeWAF之后等等,或者其他部署方式,有很多灵活的选择。

反向代理模式是“在线”模式,它可以对指定的HTTP流量进行攻击识别和拦截。

2.2 网络拓扑

        反向代理模式网络拓扑举例图如下:
reverse2

图2.2 反向代理模式网络拓扑举例图

反向代理模式部署无需改变原有的网络拓扑结构,当然也可以改变原来的网络拓扑结构。图中所示FreeWAF和被被保护的Web服务器处于同一个子网;另外,可以配置管理口方便管理员对FreeWAF设备进行管理,例如可以将FreeWAF的一个网口IP配置为192.168.0.100作为管理口。

另外,这里的举例图只是一种简单的部署方式,其实反向代理还有很多其他灵活的部署方式。

~ 注意事项:

管理口不是必选配置,可以根据具体的情况,使用其他业务网口代替管理口。

2.3 配置方式

第一步:选择工作模式

点击网管右上角的“快速配置”,进行快速配置,选择“反向代理模式”,点击“下一步”,选择反向代理模式进行后续的配置,如图2.3所示。

reverse3

图2.3 选择反向代理模式

第二步:配置工作模式

进入到该步骤对防护引擎的反向模式进行配置,如图2.4所示。

reverse4

图2.4 反向代理模式配置

在该界面中,要配置2个方面的内容:

  • 监听端口配置

监听端口配置其实质就是配置监听的IP地址、HTTP协议和端口,使得通过FreeWAF的包含这些IP地址、协议和端口三元组的报文上送给本设备。请注意看,这里配置的监听IP地址,是FreeWAF本身的IP地址。

  • 接口配置

接口配置就是配置接口的IP地址。其IP地址必须配置,并且要与接口连接的设备IP地址属于同一网段。

第三步:配置安全策略

同离线模式。

第四步:配置服务器策略

反向代理模式的服务器策略配置同其他工作模式的配置方式有些不同,在于其包含了多种部署类型,除部署类型的配置不同外,其他配置含义相同这里不再累述。下面进行分别介绍反向代理的各种部署类型。

2.3.1 单服务器

单服务器部署,如名称所言,只对一个服务器进行提供反向代理、安全检测服务,其逻辑部署示意图如下:

reverse5

图2.5 反向代理单服务器部署示意图

其具体服务器策略配置界面如图2.6所示:

reverse6

图2.6 反向代理单服务器部署

如图中所示:

(1) 虚拟服务器IP、端口号,应该配置FreeWAF的监听IP和端口。

(2) 真实服务器的IP和端口号,应该配置后台Web服务器的IP和端口号。

(3) 域名配置则可以配置0个、1个或者多个域名。

2.3.2 多服务器

多服务器部署类型相对于单服务器而言,可以支持对多个服务器或者对多个基于负载均衡服务器的反向代理、安全检测服务,其逻辑部署示意图如下4

图2.7 反向代理多服务器部署示意图

其具体服务器策略配置界面如下:1

图2.8 反向代理多服务器部署

如图中所示:

(1) 虚拟服务器配置中的IP、端口号应该配置FreeWAF的监听IP和端口。

(2) 列表中为具体的被保护的后端真实服务器配置,分为负载均衡和非负载均衡两种类型。

选择部署类型为“多服务器”类型,点击【新增】按钮,便可添加具体的负载均衡或者非负载均衡的后端真实服务器配置,其具体配置如下:2

如上图中所示:

(1)   在类型为非负载均衡的【多服务器配置】界面中,每个后台服务器至少需要配置一个域名,多个域名的情况下每个域名要按行显示。

(2)   IP、端口号为被保护的真实的后台服务器的IP、端口号。

(3)   多服务器部署模式支持添加多个基于非负载均衡类型的服务器配置。3

如上图中所示:

(1)   在类型为负载均衡的【多服务器配置】界面中,至少需要配置一个域名,多个域名的情况下每个域名要按行显示。

(2)   可以根据具体的需求选择相应的负载均衡方式(比如根据请求数量、根据流量大小、根据业务情况)。

(3)   每个负载均衡策略至少需要指定两台或者两台以上的基于负载均衡的被保护后台服务器,对每个后台服务器需要配置具体的IP、端口号和负载因子。在实际用户通过域名访问后台服务器时,负载因子越大,对应的后台服务器被访问到的频率会越高。当用户需要增加一个后台服务器时,可以点击“绿色加号”按钮进行增加;当用户需要删除一个后台服务器时,可以点击对应末尾的“红色叉号”按钮进行删除。

(4)   多服务器部署模式支持添加多个基于负载均衡类型的服务器配置。

2.3.3 内容路由

内容路由部署类型则是提供从服务器IP到路径映射的服务,也是另外一种类似多服务器支持的部署类型(内容路由这种部署类型理解和实施等都较为复杂,建议用户尽量使用多服务器部署),“内容路由”中的“路由”不是通常理解的三层路由的概念,而是一种路径映射,其逻辑部署示意图如下:

reverse9

图2.9 反向代理内容路由部署示意图

如上图所示,假如有三个服务器分别提供freewaf.org主域名和两个子域名的Web服务:

  • 对FreeWAF上HTTP服务根路径的访问,就是对172.18.142.14这个IP上HTTP服务根路径的访问,即http://172.18.85.156 –> http://www.freewaf.org;
  • 对FreeWAF上HTTP服务/test01路径的访问,就是对172.18.142.13这个IP上URL根路径的访问,即http://172.18.85.156/test01 –> http://test01.freewaf.org;
  • 对FreeWAF上HTTP服务/test02路径的访问,就是对172.18.142.15这个IP上URL根路径的访问,即http://172.18.85.156/test02 –> http://test02.freewaf.org。

需要注意的是,根据不同的映射路径,需要提前配置重写策略,其具体服务器策略配置界面如下:

reverse10

图2.10 反向代理内容路由部署

如图中所示:

(1) 虚拟服务器IP、端口号应该配置FreeWAF的监听IP和端口。

(2) 内容路由配置则需要配置相应的映射路径,后台服务器IP、端口和重写策略。

3. 网桥透明代理模式

3.1 原理说明

        网桥透明模式示意图如下:
bridge1

图3.1 网桥透明模式示意图

部署网桥透明模式的FreeWAF的设备,需要两个以上的网口,以建立网桥;通常情况下,需要将FreeWAF部署在交换机和Web服务器之间,使得的FreeWAF设备和Web服务器处于同一个局域网子网内。网桥透明模式下的FreeWAF,是基于网桥工作的,可以将它看做是一个具有代理防护功能的集线器或者交换机设备,需要确保要检测的HTTP流量(指定IP和端口)需要流经该设备。

与离线模式不同,该种模式是“在线”模式,它可以对指定的HTTP流量进行攻击识别和拦截。所谓“透明”,是指因为可以将该模式下的FreeWAF看做一个普通的二层网络交换设备,普通用户对Web服务器访问的同时,觉察不到该设备的存在,是相对于“非透明”模式(即反向代理模式)而言的。

3.2 网络拓扑

        网桥透明模式网络拓扑举例图如下:
bridge2

图3.2 网桥透明模式网络拓扑举例图

网桥透明代理模式需要对原有的网络拓扑结构进行修改,需要将FreeWAF其中的一个网口接入到交换机上,另一个网口与后端服务器相连,这两个网口要建立一个网桥,另外,最好还需要留有一个网口作为管理口(注意,管理口不是必需的网口,可以根据实际情况使用其他网口兼任管理口的作用),管理口的IP地址这里假定为192.168.0.100/24,以用于对FreeWAF进行管理。实际使用中,用户可以根据具体的网络情况自行调整。

3.3 配置方式

第一步:选择工作模式

点击网管右上角的“快速配置”,进行快速配置,选择“网桥透明模式”,点击“下一步”,选择网桥透明模式进行后续的配置,如图3.3所示。

bridge3

图3.3 选择网桥透明模式

第二步:配置工作模式

进入到该步骤对防护引擎的网桥透明模式进行配置,如图2.4所示。

bridge4

图2.4 网桥透明模式配置

在该界面中,要配置3个方面的内容:

  • 网桥配置

网桥配置就是创建“网桥”。桥名只能以“br”开头并其后紧跟数字,比如:br0、br1、br20等,当接口(如eth0)被加入到桥时,接口的IP地址自然被删除,桥中至少应该有2个接口;

~ 注意事项:

用户必须在这里或者使用CLI命令来配置桥,不能在Linux的Shell下通过brctl命令来配置桥,桥名只能以“br”开头并后紧跟数字,比如:br0、br1、br20等。

  • 监听端口配置

监听端口配置其实质就是配置监听HTTP协议和端口,使得通过FreeWAF的桥的这些IP地址、协议和端口三元组报文上送给本设备。请注意看,这里配置的监听IP是后台Web服务器的IP。

  • 接口配置

接口配置不用修改,按默认就可以。

第三步:配置安全策略

同离线模式。

第四步:配置服务器策略

同离线模式。

4. 路由透明模式

4.1 原理说明

        路由透明模式示意图如下:
router1

图4.1 路由透明模式示意图

部署网桥透明模式的FreeWAF的设备,其“透明”概念与网桥透明模式中相似,可以将其看做一个路由设备,如示意图中所示,可以将其作为路由器进行部署,同时确保要检测的HTTP流量(指定IP和端口)经过FreeWAF设备即可。注意,在该种模式下,您需要根据实际的拓扑情况,对安装FreeWAF的设备的路由表进行设置。该种部署模式,也属于“在线”模式,可以对攻击进行实时检测和拦截。

4.2 网络拓扑

路由透明模式网络拓扑举例图如下:

router2

图4.2 路由透明模式网络拓扑举例图

路由透明代理也需要对原有的网络拓扑结构进行修改,但路由透明代理与网桥透明代理最大的不同点在于,路由透明代理的两个网口,一个接入到交换机上或者路由器,另外一个通往后端的服务器或者后端服务器所在的子网,这两个接口的IP必须分属不同的子网网段。另外,最好还需要留有一个网络作为管理口,管理口的IP地址这里假定为192.168.0.100/24,以用于对FreeWAF进行管理。实际使用中,需要根据实际的拓扑情况,对安装FreeWAF 的设备的路由表进行设置。

4.3 配置方式

第一步:选择工作模式

点击网管右上角的“快速配置”,进行快速配置,选择“路由透明模式”,点击“下一步”,选择路由透明模式进行后续的配置。

router3

图4.3 选择路由透明模式

第二步:配置工作模式

router4

图4.4 路由透明模式配置

在该界面中,要配置2个方面的内容:

  • 监听端口配置

监听端口配置其实质就是配置监听的IP地址、HTTP协议和端口,使得通过FreeWAF的包含这些IP地址、协议和端口三元组的报文上送给本设备。请注意看,这里配置的监听IP是后台Web服务器的IP。

  • 接口配置

接口配置就是配置接口的IP地址,用户可根据具体需要进行配置。

第三步:配置安全策略

同离线模式。

第四步:配置服务器策略

同离线模式。