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

目录
相关文章
|
开发框架 监控 安全
Windows Defender 导致 Web IIS 服务异常停止排查
某日凌晨IIS服务异常停止,经查为Windows Defender安全补丁KB2267602触发引擎更新,导致系统资源波动,进而引发应用池回收。确认非人为操作,系统无重启。通过分析日志与监控,定位原因为Defender更新后扫描加重负载。解决方案:将IIS及.NET相关路径添加至Defender排除列表,避免业务影响。
1220 116
|
SQL Apache Windows
Windows服务器80端口被占用的全面解决方案
在服务管理器中启动apache2服务,即可正常使用80端口。若系统中还安装了其他微软产品如sql等,也可尝试停止其服务进行测试,但请注意,SQL通常不会使用80端口,因此一般不会受到影响。以上就是关于80端口被system占用的详细解决方法,希望对你有所帮助。
|
数据挖掘
服务器数据恢复——服务器异常断电造成raid5阵列故障的数据恢复案例
某服务器上有一组由12块硬盘组建的raid5磁盘阵列。 机房供电不稳定导致机房中该服务器非正常断电,重启服务器后管理员发现服务器无法正常使用。 意外断电可能会导致服务器上的raid模块损坏。
|
域名解析 运维 监控
如何检测服务器是否被入侵?解析5大异常指标
本文系统介绍了服务器入侵的五大检测维度:硬件资源、网络流量、系统日志、文件完整性及综合防护。涵盖CPU、内存异常,可疑外联与隐蔽通信,登录行为审计,关键文件篡改识别等内容,并提供实用工具与防护建议,助力运维人员快速发现潜在威胁,提升系统安全防御能力。转载链接:https://www.ffy.com/latest-news/1916688607247077376
732 0
如何检测服务器是否被入侵?解析5大异常指标
|
网络安全 Windows
Windows IIS 10如何配置自签名SSL并实现自动跳转
本文记录了IIS配置自签名证书及HTTPS跳转的注意事项。包括解决443端口占用问题、URL Rewrite插件安装与配置、web.config修改方法,以及避免因旧教程导致的配置错误。
Windows IIS 10如何配置自签名SSL并实现自动跳转
|
Windows
Windows下版本控制器(SVN)-验证是否安装成功+配置版本库+启动服务器端程序
Windows下版本控制器(SVN)-验证是否安装成功+配置版本库+启动服务器端程序
420 2
|
Windows
Windows下版本控制器(SVN)-启动服务器端程序
Windows下版本控制器(SVN)-启动服务器端程序
814 4
|
存储 安全 Ubuntu
从Linux到Windows:阿里云服务器系统镜像适配场景与选择参考
阿里云为用户提供了丰富多样的服务器操作系统选择,以满足不同场景下的应用需求。目前,云服务器的操作系统镜像主要分为公共镜像、自定义镜像、共享镜像、镜像市场和社区镜像五大类。以下是对这些镜像类型的详细介绍及选择云服务器系统时需要考虑的因素,以供参考。
|
运维 安全 算法
服务器 CPU 占用忽高忽低?排查这 6 个隐藏进程,90% 的异常都能解决
服务器运维中,CPU占用忽高忽低常由隐藏进程引发,影响服务稳定性。本文介绍六大需排查的隐藏进程:异常编译、挖矿程序、内存泄漏、网络请求异常、日志轮转问题及恶意软件。通过排查工具如top、ps、netstat等定位问题进程,并提供针对性解决方法,帮助开发者快速稳定服务器性能。
3354 0
|
Oracle 关系型数据库 数据库
数据库数据恢复—服务器异常断电导致Oracle数据库报错的数据恢复案例
Oracle数据库故障: 某公司一台服务器上部署Oracle数据库。服务器意外断电导致数据库报错,报错内容为“system01.dbf需要更多的恢复来保持一致性”。该Oracle数据库没有备份,仅有一些断断续续的归档日志。 Oracle数据库恢复流程: 1、检测数据库故障情况; 2、尝试挂起并修复数据库; 3、解析数据库文件; 4、导出并验证恢复的数据库文件。