记一次网站的排坑过程

事件回顾

2020年08月24日晚,实验室师姐尝试在实验室主页上上传一个文件,发现上传卡住了,之后发现实验室的网页也都打不开了。怀疑是网络的问题,但可以正常打开百度。更为惊奇的是,科大的所有网页都打不开了。

访问不了网页的问题只出现在师姐的设备上 ,我在校内访问是正常的,刚开始怀疑会不会是运营商网络的问题,让师姐用手机开了热点重新尝试,访问正常了。

本以为问题就这么结束了,但过了一会师姐上传文件还是失败,而且失败后开热点的手机也没法访问科大的其他网页了。

由于实验室的主页是通过学校的代理服务器对外提供服务的,所以初步猜测是不是我们网站的BUG连累了代理服务器,以至于所有挂在代理服务器的网页都无法访问了。

本着重启解决80%问题的想法,重启了网页服务进程,但师姐还是无法访问科大的网站。而网页服务的日志文件中只找到了上传失败的502记录,没有其他日志输出。比较迷惑,找师姐通过QQ发给了我要上传的文件A,亲自上场进行一些测试吧。

测试

  1. 其他设备可以正常访问网站;
  2. 重启网页服务后师姐的两个设备仍无法访问实验室网站和学校其他网站;
  3. 检查网站日志,只找到了上传文件时的502错误;
  4. 在校内通过域名访问,尝试上传其他文件,可正常上传;
  5. 在校内通过域名访问,尝试上传文件A,上传失败,其他网站正常访问;
  6. 在校内,直接通过IP直接访问,尝试上传文件A,正常上传;
  7. 开手机热点,使用校外网络,尝试上传文件A,上传失败,其他网站也无法正常访问。

也就是说,这一问题出现在特定文件的上传,而且仅在通过学校代理服务器的时候出现,绕过代理服务器用IP地址直接访问的时候可以正常上传和访问,而且校内其校内网络直接访问其他校内网站是不走网络代理的,所以校内的设备只是不能上传,不会“牵连”其他设备。

解决

经过这些排查基本可以确定是学校代理服务器的锅了,就给学校网络中心发邮件了。

晚上发到总的服务邮箱后,第二天上午8点半左右查收服务邮箱的老师将邮件转发给了管理代理服务器的张老师,张老师很厉害,9点半找到问题并给我反馈了:

你好!

这个故障是 web 应用防火墙错误识别引起的。

学校的反向代理处串接有 web应用防火墙,上传的文件中某些字符组合,被 web应用防火墙 错误识别为 “添加windows用户 命令”攻击,阻止了上传的HTTP过程,并且相关安全设备禁止了相应的IP地址访问学校的网络。

系统会在2天后自动解封相关IP地址。

现在已经手工解封了相关IP地址,并将上传的URL设置为白名单不再处理。

原来是web应用防火墙的问题!