Windows Networking 6: 关于标准的一些事,WAF和IIS服务器HTTPS工作异常问题

简介:

IIS Web Service 也算是一个主流的HTTP服务软件,有不少MS系的应用在IIS上运行、也有用户使用IIS提供的平台运行他们.Net Framework开发的应用程序。当然,为了网站安全,不少用户选择在IIS server前放一层WAF避免攻击。而这次,我们的一个用户遇到了一个有意思的问题,

问题现象

IIS Web service,上面运行了许多网站应用程序,以SNI区分。在IIS服务器之前放置一层WAF回源。用户反馈,有个IIS Web site通过WAF回源不成功。

现象主要是 在访问网站的时候,浏览器一直在加载,返回502/504等错误码,同时伴有499错误。

排查过程

由于IIS Web service对于我们来说基本上是一个黑盒,且在问题发生的时候基本没有任何错误日志和访问日志,我们基本上采用大胆猜测小心求证的方案来一步步定位问题。作为一整套系统,问题无非出在这几个方面,

网络问题

所有涉及到的IP及其对应端口我们都测试了联通性,telnet/tcpping等都显示连接三次握手正常。

IIS服务器本身问题

通过对IIS 服务器直接访问,我们基本排除服务器处理问题。(以下是我们测试主机的访问记录)

curl -v https://hello.test.domain:8443/ -o /dev/null -s --trace-time --resolve hello.test.domain:8443:ip.add.rss.227

image

WAF网站配置问题

从其它相同配置的网站来看,WAF的配置并没有什么特别之处,即便跟其它正常网站的配置完全一致,问题依旧存在。排查WAF的日志,基本把问题又指回了IIS 服务器,因为日志明确的记录了120s超时的情况,

image

抓包分析

矛盾点出现在WAF和IIS 服务器之间,因此我们通过抓包来分析这两个服务之间的交互情况。可惜,我们第一次抓包的结果无法解密,也就无法完全获知WAF和IIS 服务器的交互内容。为此,我们做了几个尝试,

  1. Windows上导出Certificate和Private Key为PFX,并设置密码。配置在Wireshark的RSA Key中。
  2. Windows IIS 服务器上 禁用Diffie-Hellman加密算法,并重启。
  3. 客户端上配置SSLKEYLOGFILE="C:\temp\sslkey.log",并在客户端的Wireshark中指定。

具体方法网上都有,不一一列举。最终,我们抓到了正常和异常的HTTPS数据流,通过解密后的数据包如下,

正常:客户端直接连接IIS
image

异常:客户端通过WAF连接IIS
image

很容易看到问题在于服务器在一个SSL tunnel中给WAF 发送 HELLO REQUEST,但WAF没有任何回复导致IIS 一直等待在 RE-NEGOTIATE阶段。而正常的情况下,客户端能够正确的处理这个请求,发送CLIENT HELLO。

Review TLS的RFC规范后,我们发现RFC中并未对客户端接收到 HELLO REQUEST 的行为做明确的规定,

https://tools.ietf.org/html/rfc5246

image

在Windows Server 2008 R2的IIS实现中,IIS一直等待响应也未必是一个合适的行为。

解决方案

了解了问题发生的原因,HELLO REQUEST并不一定是必须的,具体我们通过IIS的帮助文档,定位相应的配置Ignore避免了IIS发送HELLO REQUEST,

image

目录
相关文章
|
11天前
|
存储 Linux 网络安全
都2023年了还不了解?使用FileZilla搭建信息文件服务器(Windows7)
都2023年了还不了解?使用FileZilla搭建信息文件服务器(Windows7)
|
11天前
|
安全 网络协议 网络安全
在Windows7搭建FTP服务器详细教学
在Windows7搭建FTP服务器详细教学
|
11天前
|
安全 Linux 网络安全
Windows搭建Emby媒体库服务器,无公网IP远程访问本地影音文件
Windows搭建Emby媒体库服务器,无公网IP远程访问本地影音文件
22 0
|
11天前
|
安全 Linux 数据库
windows服务器 cwRsyncServer 搭建步骤
windows服务器 cwRsyncServer 搭建步骤
26 0
windows服务器 cwRsyncServer 搭建步骤
|
3天前
|
弹性计算 运维 安全
阿里云ecs使用体验
整了台服务器部署项目上线
|
4天前
|
存储 弹性计算 监控
【阿里云弹性计算】阿里云 ECS 性能优化秘籍:提升应用响应速度与资源利用率
【5月更文挑战第22天】阿里云ECS优化涉及实例规格选择、OS与应用配置、网络配置、存储优化及数据库连接池管理。合理挑选CPU和内存,关闭无关服务,利用EIP和负载均衡优化网络,选择合适存储类型,并通过监控工具进行性能分析和压力测试,以提升响应速度,优化资源利用率,降低成本,增强企业竞争力。示例展示了Java数据库连接池配置优化。通过持续探索和实践,可最大化发挥ECS潜力。
67 7
|
1天前
|
弹性计算 监控 数据库
【阿里云弹性计算】企业级应用上云实战:基于阿里云 ECS 的 ERP 系统迁移案例
【5月更文挑战第25天】制造企业将面临资源不足、维护成本高和数据安全问题的ERP系统迁移到阿里云ECS,实现业务上云。通过数据迁移、应用部署、网络配置和性能优化等步骤,企业享受到弹性计算资源、高可靠性和数据安全优势,降低维护成本。阿里云提供24小时支持,助力企业数字化转型。此案例展示企业级应用上云的可行性,鼓励更多企业借助云计算实现创新发展。
6 0
|
1天前
|
存储 弹性计算 人工智能
【阿里云弹性计算】AI 训练与推理在阿里云 ECS 上的高效部署与优化
【5月更文挑战第25天】阿里云ECS为AI训练和推理提供弹性、可扩展的计算资源,确保高性能和稳定性。通过灵活配置实例类型、利用存储服务管理数据,以及优化模型和代码,用户能实现高效部署和优化。自动伸缩、任务调度和成本控制等策略进一步提升效率。随着AI技术发展,阿里云ECS将持续助力科研和企业创新,驱动人工智能新时代。
6 0
|
1天前
|
弹性计算 监控 容灾
【阿里云弹性计算】云上灾备解决方案:基于阿里云 ECS 的业务连续性策略
【5月更文挑战第25天】阿里云ECS提供强大的云上灾备解决方案,保障企业业务连续性。通过高可用基础设施、数据备份和异地容灾服务,应对自然灾害、硬件故障等突发事件。示例代码展示如何配置数据备份。企业应合理规划资源,定期演练,监控优化灾备系统。阿里云将持续创新,为企业提供更优质的灾备解决方案,支持各类型企业在数字化时代稳定运行,实现业务连续性。
5 0