将Web应用程序与DataPower Web应用程序防火墙服务集成
您可以使用IBM®WebSphere®DataPower®SOA设备通过将它们部署在公司内部网或“ DMZ”上来在企业内部实施安全性。 DataPower中的Web应用程序防火墙服务可以在将消息发送到后端Web应用程序之前,对到达DMZ的消息执行安全策略。 这些任务也可以在J2EE应用服务器(例如WebSphere Application Server)上执行,但是使用DataPower管理界面进行配置要容易得多,并且不需要自定义代码。 此外,DataPower Appliances可以为企业中的许多应用程序提供一个实施点。
本文向您展示如何使用DataPower Web应用程序防火墙(WAF)服务与基于Web的应用程序集成。 您将学习如何配置WAF服务以虚拟化后端Web应用程序,处理速率限制请求以及实施AAA策略。 您应该对在DataPower Appliances上配置服务有所了解。
WAF服务可以侦听多个TCP端口上的请求以虚拟化或代理后端Web应用程序。 WAF服务还可能要求Web客户端通过安全套接字层(SSL)发送请求。 在需要限制发送到后端Web服务的请求数的情况下,可以创建速率限制策略来控制请求数。 您还可以要求客户端在尝试访问Web应用程序时提供凭据,可以使用DataPower AAA策略来强制执行该凭据。
场景描述
在这种情况下,您将Web浏览器用作外部客户端以连接到DataPower中的Web应用程序防火墙服务。 通过身份验证后,您的请求将转发到后端Web应用程序。 Web应用程序防火墙服务使用AAA策略来验证用户。 在生产环境中,您还需要使用安全令牌或SSL保护从Web应用程序防火墙服务到后端Web应用程序的连接的安全。 本文已省略了该步骤。
图1
主机虚拟化
DataPower Appliances通常部署在DMZ中,这使它们可以在进入公司内部网之前对传入的消息执行预处理。 Web客户端不应该知道Web应用程序的后端端点,首先,因为如果后端端点发生更改,则需要将这些更改通知Web客户端,其次,因为恶意用户可以发送多个请求来尝试不堪重负的后端Web应用程序。 要对Web客户端隐藏Web应用程序端点地址,可以定义WAF服务在其上侦听请求的多个TCP端口。 创建WAF服务时,此步骤是必需的。
定义WAF服务的前端和后端信息
您首先需要在DataPower Appliance上创建WAF服务。 首先定义服务的前端和后端信息:
- 使用您的用户名,密码和域登录到DataPower Web GUI。
- 在DataPower控制面板中,单击Web应用程序防火墙 :
图2
- 在“配置Web应用程序防火墙”页面上,单击“ 添加向导” 。 然后,向导会询问您一系列问题以生成WAF服务。
- 输入您的WAF的名称作为
AddressWAF
。 - 对于远程主机地址和远程IP端口 ,输入您的后端服务器地址端口号,然后单击下一步 。 远程主机地址和IP端口是Web应用程序防火墙处理请求后将请求转发到的目的地。
- 对于前端(面向客户端)信息,请将IP保留为0.0.0.0(侦听所有以太网接口上的请求),输入WAF服务将用于侦听请求的端口号,然后单击Add :
图3。
- WAF服务可以侦听多个TCP端口上的请求。 您可以为WAF服务将用于侦听请求的每个端口号重复此步骤。 您还可以指定端口号的传入连接应使用SSL。 如果检查SSL,则必须创建或使用现有的SSL Server加密配置文件,该配置文件定义将在SSL会话中使用的**和证书。
- 单击下一步 。
创建AAA策略
在向导的下一步中,您将创建一个AAA策略,该策略将从HTTP消息中提取凭据,并使用AAA文件执行身份验证。
认证方式
- 通过单击+按钮创建新的AAA策略。
- 创建一个名为
AddressAdmin
的新访问控制策略,以从HTTP身份验证标头中识别用户。 - 在“配置访问控制策略”页面上,将新的AAA策略命名为
AddressAdmin
。 单击创建以应用更改。 - “定义如何从传入请求中提取用户的标识”页面确定访问控制策略如何从传入请求消息中识别客户端。 选择HTTP身份验证标头 ,然后单击下一步 :
图4。
- “定义如何验证用户身份”页面确定策略如何验证传入请求消息中所述的用户身份。 选择“ 使用DataPower AAA信息文件”作为方法。
在生产环境中,授权用户列表通常位于公司目录服务器中,例如轻型目录访问协议(LDAP)服务器。 在此示例中,授权用户列表位于名为
AAAInfo.xml
的XML文件中。 由于该文件包含在每个DataPower Appliance中,因此只能将其用于测试。 - 在页面底部的URL部分中,选择实际的AAA信息文件。 切换到商店:文件位置,然后选择AAAInfo.xml :
图5。
- 将凭据映射方法保留为none ,然后单击Next 。
授权书
在访问控制策略中配置授权步骤以允许任何经过身份验证的用户。
- “定义如何提取资源”页面指定访问控制策略如何确定客户端请求的资源。 在这种情况下,资源是客户端发送的URL :
图6。
- 将资源映射方法保留为none ,然后单击Next 。
- “定义如何授权请求”页面将根据资源和用户确定访问规则。 选择允许任何经过身份验证的客户端 ,然后单击下一步 。
稽核
AAA策略向导的最后一页使您可以配置监视,日志记录和后处理选项。
检查监视器的访问控制策略。 授权计数器和拒绝计数器分别跟踪允许或拒绝访问的请求数量。 如果达到阈值,则被拒绝的计数器具有附加功能以阻止其他请求。
日志记录部分跟踪任何授权或拒绝的访问尝试的请求和响应消息详细信息。 记录的消息详细信息量取决于您配置的日志级别。
后处理部分描述了在身份验证,授权和审核步骤之后可以应用于消息的操作:
- 保存AddressAdmin访问控制策略的设置。
- 单击提交以保存AddressAdmin访问控制策略,然后单击完成 。
- 下一页使您可以创建“名称值”配置文件,以验证请求中的名称-值对。 单击下一步 。
- 下一页使您可以配置如何处理查询字符串和cookie。 单击下一步 。
- 单击提交以创建WAF服务。
限速
大量网站可能需要在特定时期内限制请求。 例如,当演唱会门票首次销售时,演唱会门票网站可能会遇到流量高峰。 WAF服务使您可以在给定的时间间隔内限制请求消息的数量。 超过指定数量的请求可以被拒绝,修改或记录。 您还可以限制连接的用户数和每个用户的连接数。
在WAF服务中,创建一个Rate Limiting对象以限制请求消息的数量:
- 打开应用程序安全策略对象以查看生成的对象。
在打开的网页中,确认您看到三个选项卡: 请求映射 , 响应映射和错误映射 。 请求映射包含安全配置文件的列表,这些安全配置文件在与匹配规则匹配时针对请求消息执行。 响应图类似,除了它适用于响应消息。
- 单击“ 请求映射”选项卡,然后打开AddressWAF_request规则。
- 单击配置文件选项卡。
- 单击+符号以创建新的速率限制对象。
- 输入名称
AddressRL
。 您可以根据应用程序的要求将速率从500
更改为其他值。 输入一个较小的值(例如3)进行测试:图7。
- 点击应用 。
- 保存所有打开的窗口,然后在WAF服务配置页面中单击“ 应用 ”。
测试WAF
使用Web浏览器测试WAF服务:
- 打开Web浏览器,然后输入Web应用程序防火墙URL:
http://<DP_address>:<waf_address_port>/EastAddress/addressSearch.jsp
。 - 遇到挑战时,输入
fred
作为用户名,并输入flintstone
作为密码。 单击确定 。 确保您已成功登录并可以看到初始页面。 - 尝试同时发送多个请求以触发费率策略。
结论
DataPower Web应用程序防火墙服务可以简化后端Web应用程序的管理。 您可以使用它来虚拟化端点地址,处理速率限制请求并实施访问控制。 您可以使用Web应用程序防火墙服务配置这些项目,而无需编写任何自定义代码。
翻译自: https://www.ibm.com/developerworks/websphere/library/techarticles/0712_sheikh/0712_sheikh.html