背景: 用户当前已完成零信任已与其oauth认证平台单点登录功能,业务配置零信任web资源前端地址,自动单点登录成功后零信任将流量转发给AD,实现安全单点认证接入的智能负载调度效果。
具体实现原理如下: 2、未认证通过的情况下,触发oauth认证,在集成平台上可以实现自动登录,不在集成平台上无法完成oauth认证。 3、认证通过后零信任通过hosts的方式,将后端地址xxx.yyy.zzz解析到AD的一个虚拟服务的VIP上 4、AD做SSL卸载,同时AD通过前置策略实现区分uri进行不同节点池调度,从而实现客户需求。
基于此,突然有一天,客户领导提出新需求:将另外一套业务也通过零信任单点的方式接入,省去使用传统vpn拨号再连接的麻烦步骤。销售接到需求后,一个电话找到了苦逼技术,一番太极过后,这个需求又赶鸭子上架了。
处理过程:
1、给出配置方案,按实现原理,简单的认为只需要: b.零信任无需更新配置,AD上新增前置策略,uri匹配,调度到指定节点池 c.AD虚拟IP到新业务的安全策略放通
2、遇到的问题 a.一番操作过后,集成平台从互联网访问此业务时报404错误。
3、问题排查 a.查零信任日志,根据客户测试的源ip查到对应访问日志,确认流量正常过零信任。 过滤语句:client.ip equal "$IP" b.在内网通过业务真实ip访问,页面能够正常打开。 c.在内网通过AD对应虚拟服务的VIP访问,同样报404。 d.基于此基本可以定位问题在AD上。
4、配置检查 b.AD配置:虚拟服务监听VIP的1234端口,前置策略匹配此次的uri后调度到此uri对应的节点池。https业务,做ssl卸载。节点池为业务IP的443端口。
5、问题诊断: a.隧道能够正常拉通,但无法正常访问,经分析是由于零信任流量到AD后做了一次SSL卸载,导致转发时已经是http数据,而服务器需要https的数据,故请求无法完成导致报错。
6、解决方案: a.业务侧提供节点池支持http的端口代替https的端口来做调度。 b.由于原虚拟服务只能做增加前置策略的操作,故提出使用新端口来实现此需求。
验证: http和https的虚拟服务困扰了我一段时间,这次为了确保第二次给出方案切实可行,做了poc进行验证。 环境atrust综合网关2216旁路10.1.1.11,AD708R7旁路10.1.1.200,IIS提供http和https服务10.1.1.10。 验证过程如下: 情况一(可行): a.零信任配置: 前端地址监听,认证通过后以综合网关的IP为源访问后端地址。 b.测试环境下AD省略前置策略,直接配置虚拟服务调度到指定节点池。 c.iis同时绑定http和https,最后一条https策略不限制主机名(模拟客户提供的业务为https://ip形式),页面内容为数字1。各种情况下IIS配置不变。 访问成功:
d.1.在AD上抓零信任到AD的包如下,加密数据没看头: d.2.在AD上抓AD到IIS的包如下,加密数据没看头: d.3.IIS上查看网站访问日志: d.4.零信任上查看与上图IIS倒数第二条访问日志相对应的访问日志如下:
情况二(不可行)-与客户现场环境一致: a.零信任配置 web资源配置作为统一入口,与情况一不同的是后端地址由ip改为域名 hosts配置用于后端服务器地址解析,指向AD虚拟服务VIP b.AD配置 服务类型由TCP改为HTTPS,使用相同的证书做卸载策略,其余配置保持不变 c.IIS配置,与情况一一致。 d.1.零信任到AD的包如下,加密没看头: d.2.AD到IIS的包如下,可以看到已经完成解密,但是服务器没有回复,根据IIS来推断,443端口绑定的是https服务,而请求是http,故无法完成访问: d.3.零信任本次访问的日志如下: d.4.未完成访问,IIS无日志。
web资源配置作为统一入口,与情况二保持一致。 hosts配置用于后端服务器地址解析,指向AD虚拟服务VIP b.AD配置 从情况二将服务类型由HTTPS改为TCP,AD仅做转发。 c.IIS配置保持不变。此处会使用到绑定主机名的策略。 d.1.零信任到AD抓包如下: d.2.AD到IIS抓包如下: d.3.IIS访问日志 d.4.零信任访问日志 注意:此情况下需要服务器本身安装的证书和零信任的一致,否则依旧无法访问!!!
有了poc做保障,下回一定行。经过这次小事故,以后做AD涉及https时要多留意,争取少返工,共勉。 |