使用IBM Security Access Manager 8.0构建前端负载平衡器和故障转移反向代理
X
用于Web 8.0设备的IBM®Security Access Manager(ISAM)是基于“多合一”网络设备的安全性解决方案,它提供访问控制和针对基于Web的威胁的防护。 该设备包括多个功能,其中最重要的功能是Web反向代理,Web应用程序和内容保护,内置策略服务器以及第4层和第7层负载平衡以实现高可用性。 群集服务是对上述功能的补充,使设备能够部署高度可扩展的反向代理服务器体系结构。
前端负载平衡器和群集概述
前端负载平衡功能会根据指定的调度算法自动将客户端请求分配给适当的反向代理服务器。 此外,前端负载平衡器为现有会话提供粘性或持久性,从而允许将来自同一客户端的传入请求转发到同一服务器。 一个典型的设置是两个前端负载平衡器服务器和多个反向代理服务器。 在环境中配置两个前端负载均衡器可为前端负载均衡服务提供高可用性。
图1显示了典型的前端负载均衡器体系结构。
图1.前端负载平衡器架构
/ developerworks /库/ se-isam-loadbalance-reverseproxy /
可以将用于Web设备的ISAM分组以在群集环境中一起工作,从而允许在多个节点之间复制信息,并提供高可用性的群集服务。 集群中的成员共享配置和运行时信息。 可以提供以下群集服务:
- 分布式会话缓存(DSC)-表示用于保存会话信息的中央缓存。
- 配置数据库-存储在集群中的设备之间共享的配置数据。 只能在主要主数据库中更新配置数据。
- 地理位置数据库-提供地理位置信息。
- 运行时数据库-集群中的设备之间共享的运行时数据。 该数据库可以是:
- 内部-适用于小型部署或概念验证场景。
- 外部-建议用于大多数部署; 支持IBM Solid DB和IBMDB2®数据库类型。
群集配置需要至少一个称为主主机的主机,该主机可提供群集服务。 出于故障转移和高可用性的目的,客户可以考虑定义一个具有多个充当辅助,第三或第四主节点的节点的群集。 辅助主机可以为群集服务提供故障转移,而第三级和四级主机可以为分布式会话缓存提供额外的故障转移。 外部引用实体(ERE)必须与群集配置中的每个对(即主服务器和辅助服务器)关联,以帮助检测网络故障并防止两个主服务器尝试成为主服务器。
图2显示了跨数据中心环境中的高可用性集群体系结构。
图2.多数据中心集群架构
在以下各节中,我们将介绍配置Web的ISAM以同时充当前端负载平衡器和反向代理服务器群集的步骤所必需的详细信息。
先决条件
本文中描述的配置适用于具有临时修订2的Web设备的IBM Security Access Manager 8.0(8.0.0.2)。
情境
图3说明了一种场景,其中包含用于Web设备的ISAM的两种配置,它们分别充当独立的前端负载平衡器和反向代理服务器群集。
图3.方案配置
高可用性配置中的两个前端负载平衡器(FELB)将跨两个反向代理服务器群集将HTTPS流量负载平衡到外部地址https://192.168.0.157。 群集维护一个内部数据库,并且其用户注册表位于单独的LDAP服务器中。 外部参考实体(ERE)为配对的主节点提供故障转移支持。
组态
以下过程将指导您配置高可用性的前端负载均衡器和反向代理服务器群集。 由于本文仅关注用于Web设备的ISAM,因此假定已经完成了外部用户注册表的配置。 请参阅相关的话题与有关配置使用IBM Tivoli Directory Server的高度可用的LDAP服务器的信息的链接。
集群和代理服务器配置
- 登录到第一个代理服务器(主要主服务器)的本地管理接口(LMI)。 从主菜单中,选择管理系统设置 > 网络设置 > 管理接口 。 使用以下值配置第一个接口(M.1):
属性 值 已启用M.1 [checked]
IP4手册 [checked]
地址 192.168.0.140
网路遮罩 255.255.255.0
网关 192.168.0.1
- 单击保存配置,然后等待LMI界面重新启动,或者从控制台手动重新启动设备。
- 返回到第一个代理服务器(主要主服务器)的LMI。 从主菜单中,选择管理系统设置 > 网络设置 > 应用程序接口 。 使用以下值配置前两个接口:
属性 值 接口1(P.1) 已启用 [checked]
IPv4设置 Static
地址 10.10.10.200
网路遮罩 255.255.255.0
接口2(P.2) 启用 [checked]
IPv4设置 Static
地址 160.20.20.90
网路遮罩 255.255.255.0
图4显示了设备中的接口。
图4.设备接口
- 如果未在设备配置中定义DNS,则需要更新设备主机文件,以便它可以在群集中找到其他设备。 从主菜单中,选择管理系统设置 > 网络设置 > 主机文件 。 单击新建以添加以下值:
192.168.0.141 : IBM-WRP81
- 重复步骤1到4,以配置第二个代理服务器(辅助主服务器)。 使用表2中的相应值。网络接口-反向代理服务器 。
- 配置运行时组件。 登录到第一个代理服务器(主要主服务器)的LMI。 从主菜单中,选择“ 安全Web设置” >“ 管理” >“ 运行时组件” 。 从工具栏中选择配置 ,然后根据需要选择或输入以下值:
属性 值 主要 策略服务器 Local
用户注册表 LDAP Remote
策略服务器 管理领域 Default
管理员密码 Passw0rd
符合SSL规定 None
LDAP 主机名 160.20.20.11
港口 389
DN cn=root
密码 Passw0rd
图5显示了运行时配置窗口。
图5.运行时配置
- 单击完成以保存和部署更改。
- 如果您的用户注册表(LDAP)由高可用性的主/副本拓扑组成,请继续更新运行时配置。 从主菜单中,选择“ 安全Web设置” >“ 管理” >“ 运行时组件” 。 从工具栏中,选择管理 > 配置文件 > ldap.conf并将以下值添加到配置文件:
副本=160.20.20.12,389,readonly,5
- 单击“ 保存”以查看并部署更改。
- 配置反向代理实例。 选择“ 安全Web设置” >“ 管理” >“ 反向代理” 。 在工具栏中,选择“ 新建”,然后在“新建反向代理实例”窗口中选择或输入以下值:
属性 值 实例 实例名称 default
主机名 IBM-WRP80
监听端口 7234
主接口的IP地址 10.10.10.200
IBM Security Access Manager 管理员名称 sec_master
管理员密码 Passw0rd
域 default
运输 启用HTTPS [checked]
HTTPS端口 443
图6显示了反向代理配置窗口。
图6.反向代理配置
- 单击“ 保存”以查看并部署更改。
- 返回安全Web设置 > 管理 > 反向代理,然后从列表中选择
default
。 从工具栏中选择管理 > 交接管理 。 然后,从“连接管理”窗口中选择“ 新建” >“ 标准连接” ,并根据需要选择或输入以下值:属性 值 交界处 交汇点名称 /webmobile
连接类型 TCP
服务器 主机名 160.20.20.88
TCP或SSL端口 9080
如图3所示,IP地址160.20.20.88对应于托管托管在端口9080上侦听示例应用程序的应用程序服务器。
- 单击“ 保存”以查看并部署更改。
- 配置集群。 从主菜单中,选择管理系统设置 > 网络设置 > 群集配置 。 选择“常规”选项卡,然后选择或输入以下适当的值:
属性 值 将此设备设置为主要主机 [checked]
小学硕士 192.168.0.140
- 单击“ 保存”以查看并部署更改。
- 返回到“概述”选项卡并更新节点描述。 在“节点”列表下,选择“ 192.168.0.140”,然后单击“ 编辑描述”,然后输入以下值:
属性 值 描述 Primary master
图7.集群配置
- 在“群集签名”下的同一选项卡中,单击“ 导出”以导出签名文件。 将文件另存为您的本地驱动器中的signature_output_file。
- 登录到第二个代理服务器(辅助主服务器)的LMI。 从主菜单中,选择管理系统设置 > 网络设置 > 群集配置 。 在“群集签名”下,单击“ 导入”以导入主主机的签名文件。 在“加入群集”窗口中,单击“ 浏览”以找到文件,然后单击“ 加入”以将辅助主服务器添加到群集中。
现在,您应该在“节点”列表下看到两个代理服务器。
- 返回到第一个代理服务器(主要主服务器)的LMI。 从主菜单中,选择管理系统设置 > 网络设置 > 群集配置 。 选择“概述”选项卡以更新节点描述。 在“节点”列表下,选择
192.168.0.141
,然后单击“ 编辑描述”,然后输入以下值:属性 值 描述 Secondary Master
- 返回到“常规”选项卡并输入以下值:
属性 值 中学硕士 192.168.0.141
主外部参照实体 192.168.0.42
外部引用实体可以是网络组件(例如,路由器,交换机或服务器),其唯一责任是响应简单的连接检查请求,例如来自主节点的ping协议的请求。 如前所述,ERE可帮助检测网络故障并防止两个主机成为主要主机。
- 选择“会话缓存”选项卡,然后选择以下值:
属性 值 仅支持内部客户 [Checked]
- 选择数据库选项卡,然后选择以下值:
属性 值 集群本地 [Checked]
- 单击“ 保存”以查看并部署更改。
- 返回至“ 管理系统设置” >“ 网络设置” >“ 集群配置” 。 选择复制选项卡,然后单击运行时组件链接。 在“运行时组件”页面中,单击“ 使用群集复制” ,然后在“确认操作”窗口中选择“ 是 ”。
- 转到管理系统设置 > 网络设置 > 群集配置 。 选择“概述”选项卡,并确保列出的节点的所有列都带有绿色复选标记。 图8显示了最终集群配置的状态。
图8.集群节点
- 返回到第二个代理服务器(辅助主服务器)的LMI。 从主菜单中,选择“ 安全Web设置” >“ 管理” >“ 运行时组件”,并确保运行时模式显示为已配置。 图9显示了运行时组件页面。
图9.运行时组件配置
群集服务还允许您复制证书数据库,尽管在这种情况下,不需要复制,因为您没有在用户注册表中使用SSL连接。
- 更新第一个代理服务器(主要主服务器)中的代理实例配置。 登录到LMI。 从主菜单中,选择“ 安全Web设置” >“ 管理” >“ 反向代理” 。 从列表中选择
default
,然后单击编辑 。 在“反向代理基本配置”窗口中选择或输入以下值:属性 值 服务器 集群是大师 [已检查] 真实性 基本认证 运输 None
形式 表格认证 HTTPS
届会 启用的分布式会话缓存 [已检查] 在群集中启用分布式会话缓存的其他好处包括,您可以为用户会话提供故障转移。 在示例方案中,您可以使DSC在发生硬件或软件故障时提供故障转移身份验证和高可用性保护。
- 单击“ 保存”以查看并部署更改。
- 转到“ 安全Web设置” >“ 管理” >“ 分布式会话缓存”,并验证是否列出了“默认”副本集。 图10显示了分布式会话缓存中的默认副本集和服务器列表中的反向代理服务器。
图10.副本集和服务器列表
- 在第二个代理服务器(辅助主服务器)中配置代理实例。 登录到LMI。 从主菜单中,选择“ 安全Web设置” >“ 管理” >“ 反向代理” 。 在工具栏中,选择“ 新建”,然后在“新建反向代理实例”窗口中选择或输入以下值:
属性 值 实例 实例名称 default
主机名 IBM-WRP81
监听端口 7234
主接口的IP地址 10.10.10.210
IBM Security Access Manager 管理员名称 sec_master
管理员密码 Passw0rd
域 Default
运输 启用HTTPS [checked]
HTTPS端口 443
- 单击“ 保存”以查看并部署更改。
- 返回到“ 安全Web设置” >“ 管理” >“ 反向代理” 。 从列表中选择
default
,然后单击“ 编辑” ,然后在“反向代理基本配置”窗口中选择或输入以下值:属性 值 服务器 集群是大师 [unchecked]
主实例名称 default-webseald-IBM-WRP80
- 单击“ 保存”以查看并部署更改。 接下来,重新启动实例。
通过重新启动代理实例,设备将启动与主要主机的同步,以带来包括任何联结定义的所有配置。
- 配置完成后,图11显示了LMI仪表板中的“反向代理运行状况”窗口小部件。
图11.反向代理配置
前端负载均衡器配置
Web设备的ISAM随附管理接口(Mx)的默认IP地址。 就此场景而言,我们将更改管理接口的IP地址,并在每个充当前端负载平衡器的设备上定义三个应用程序接口(Px)。
- 登录到第一个负载均衡器的LMI(活动FELB)。 从主菜单中,选择管理系统设置 > 网络设置 > 管理接口 。 使用以下值配置第一个接口(M.1):
属性 值 已启用M.1 [checked]
IP4手册 [checked]
地址 192.168.0.110
网路遮罩 255.255.255.0
网关 192.168.0.1
- 单击保存配置,然后等待LMI界面重新启动,或者从控制台手动重新启动设备。
- 返回到LMI(活动FELB)。 从主菜单中,选择管理系统设置 > 网络设置 > 应用程序接口 。 使用以下值配置前三个接口:
属性 值 接口1(P.1) 已启用 [checked]
IPv4设置 Static
地址 192.168.0.120
网路遮罩 255.255.255.0
接口2(P.2) 启用 [checked]
IPv4设置 Static
地址 10.10.10.100
网路遮罩 255.255.255.0
接口3(P.3) 启用 [checked]
IPv4设置 Static
地址 10.0.0.2
网路遮罩 255.255.255.0
- 单击“ 保存”以查看并部署更改。
- 从主菜单中,选择管理系统设置 > 网络设置 > 前端负载均衡器 。 选择服务器选项卡。 在“虚拟服务器”工具栏中,单击“ 新建” ,然后根据需要选择或输入以下值:
属性 值 一般 已启用 [checked]
名称 SampleWebMobile
虚拟地址 192.168.0.157
港口 443
面具 255.255.255.0
接口 P.1
第4层或第7层 4
ISAM支持OSI网络模型的第4层或第7层的负载平衡。 在第4层中,TCP头信息用于确定如何处理请求,而在第7层中,负载平衡器可以识别应用程序请求(例如HTTP请求)并相应地处理这些请求。 因为在这种情况下我们不需要操纵HTTP标头或执行SSL终止,所以我们选择第4层是为了简化和提高效率。
图12显示了虚拟服务器配置窗口。
图12.虚拟服务器配置
- 单击“ 保存”以查看并部署更改。
- 返回至“ 管理系统设置” >“ 网络设置” >“ 前端负载均衡器” 。 选择“服务器”选项卡,然后从列表中选择
SampleWebMobile
。 单击“ 真实服务器” 。 在“真实服务器”窗口中,单击“ 新建”以添加反向代理服务器:属性 值 真实服务器1 启用 [checked]
地址 10.10.10.200
港口 443
怀特 1
真实服务器2 启用 [checked]
地址 10.10.10.210
港口 443
怀特 2
图13显示了真实服务器配置窗口。
图13.真实服务器配置
- 单击“ 保存”以查看并部署更改。
- 返回至“ 管理系统设置” >“ 网络设置” >“ 前端负载均衡器” 。 选择“常规”选项卡,然后选择以下值:
属性 值 负载均衡器 已启用 [checked]
- 单击“ 保存”以查看并部署更改。
- 重复步骤1到10,配置第二个负载平衡器(被动FELB)。 使用表1中的相应值。步骤1和3的网络接口-负载均衡器 。
- 配置高可用性。 登录第一个负载均衡器的LMI(活动FELB),然后从主菜单中选择管理系统设置 > 网络设置 > 前端负载均衡器 。 选择“高可用性”选项卡,然后适当选择或输入以下值:
属性 值 启用高可用性 [checked]
这个负载均衡器是 Primary
本地接口 P.3
远端地址 10.0.0.4
远端埠 443
故障转移 健康检查间隔 [accept the default value]
健康检查超时 [accept the default value]
- 单击“ 保存”以查看并部署更改。
图14显示了高可用性配置窗口。
图14.高可用性配置
- 登录到第二个负载均衡器的LMI(Passive FELB),并使用以下值重复上一步:
属性 值 启用高可用性 [checked]
这个负载均衡器是 Backup
本地接口 P.3
远端地址 10.0.0.2
远端埠 443
- 单击“ 保存”以查看并部署更改。
- 配置完成后,图15显示了LMI仪表板上的“ Load Balancer Health”小部件。
图15.负载均衡器配置
测试场景
为了演示高可用性和故障转移功能,在这种情况下,我们考虑了以下基本测试:
- 分布式会话缓存配置
- 高可用的前端负载平衡服务
- 使用表单身份验证的故障转移身份验证
测试分布式会话缓存
- 通过第一个代理服务器(主要主服务器)中的控制台访问
pdadmin
以限制全局会话数。 默认情况下,此值是未unset
或不受限制的。 运行以下命令来设置策略:pdadmin> policy set max-concurrent-web-sessions 1
- 使用您喜欢的浏览器,访问受保护的资源。 在这种情况下,我们保护示例WebSphere应用程序Web 2.0和Mobile Showcase。 图19显示了使用表单身份验证的登录页面,图20显示了示例应用程序。
- 打开第二个浏览器会话,然后尝试访问相同的受保护资源。 您应该会收到“
Additional Login Denied
消息。 图16显示了代理服务器返回的消息。图16.反向代理消息
- 将策略重置为其默认值。 从
pdadmin
控制台运行以下命令:pdadmin> policy set max-concurrent-web-sessions unset
测试高可用性前端负载平衡服务
- 登录第一个负载均衡器的LMI(活动FELB),然后关闭设备。
- 登录到第二个负载平衡器的本地管理界面或LMI(Passive FELB),并在LMI仪表板中验证“ Load Balancer Health”小部件的状态。 图17显示了第一个负载均衡器关闭后的状态。
图17.负载均衡器运行状况
您可能会注意到,由于第一个负载平衡器(10.0.0.2)掉了,它旁边现在有一个红色的
x
,表示它不可用。 同样,第二个负载平衡器(10.0.0.4)移到活动状态。请注意,心跳在两个前端负载均衡器之间传输,因此每个前端负载均衡器的状态都是已知的(请参阅图14中的本地接口和远程地址)。 可用时,主前端负载均衡器充当活动负载均衡器。 如果主服务器不可用,则备用负载均衡器将不再检测到心跳。 在这种情况下,备份负载平衡器将采用虚拟IP地址并开始接受来自客户端的请求。 故障转移发生之前的时间长度由故障转移配置条目控制。
来自虚拟地址192.168.0.157的HTTPS请求的负载平衡仍然有效,并且客户端不会遇到服务中断。
测试故障转移认证
- 确保仅第一个代理服务器(主要主服务器)正在运行。 图18显示了Load Balancer Health小部件,它指示第二个代理服务器(10.10.10.210)不可用。
图18.负载均衡器运行状况
- 使用您喜欢的浏览器,访问受保护的资源。 在这种情况下,我们保护示例WebSphere应用程序Web 2.0和Mobile Showcase。 图19显示了使用表单身份验证的登录页面,图20显示了示例应用程序。
图19.默认表单认证
图20.示例受保护的应用程序
- 确保您的会话在分布式会话缓存中列出。 转到“ 安全Web设置” >“ 管理” >“ 分布式会话缓存” 。 从列表中选择
default
,然后单击工具栏中的会话 。 图21显示了当前的用户会话。图21. DSC会话
- 开始启动第二个代理服务器(辅助主服务器)。 在不关闭您之前的浏览器会话的情况下,请关闭第一个代理服务器(主要主服务器)。 图22显示了Load Balancer Health小部件,它指示第一台代理服务器(10.10.10.200)不可用。
图22.负载均衡器运行状况
- 返回到示例应用程序,然后单击示例选项之一(例如File Uploader )。 您应该看到“文件上传器”页面,而无需重新进行身份验证。 表单身份验证不会为每个请求都提供身份验证数据。 但是,由于启用了DSC,因此第二个代理服务器能够使用存储的会话来识别用户。
表1.网络接口-负载均衡器
设备主机名 | 网络接口 | 注释 |
---|---|---|
IBM-FLB80 | M.1:192.168.0.110/24 网关:192.168.0.1 第1页:192.168.0.120/24 |
活动FELB。 设备充当主要的前端负载均衡器。 |
IBM-FLB81 | M.1:192.168.0.111/24 网关:192.168.0.1 第1页:192.168.0.133/24 |
被动FELB。 设备充当备份前端负载平衡器。 |
表2.网络接口-反向代理服务器
设备主机名 | 网络接口 | 注释 |
---|---|---|
IBM-WRP80 | M.1:192.168.0.140/24 网关:192.168.0.1 P.1:10.10.10.200/24 |
小学硕士。 设备充当主主服务器和主代理服务器。 主机文件: 192.168.0.141:IBM-WRP81 |
IBM-WRP81 | M.1:192.168.0.141/24 网关:192.168.0.1 P.1:10.10.10.210/24 |
二级大师。 设备充当辅助主服务器和副本代理服务器。 主机文件: 192.168.0.140:IBM-WRP80 |
结论
用于Web 8.0的IBM Security Access Manager提供了反向代理服务器,Web单点登录和会话管理,粗粒度授权,中央策略服务器和Web应用程序防火墙的集群以及负载平衡功能。 这组独特的功能使您能够配置高度可扩展的故障转移解决方案,该解决方案旨在帮助保护Web应用程序免受欺诈和未经授权的访问。
翻译自: https://www.ibm.com/developerworks/security/library/se-isam-loadbalance-reverseproxy/index.html