背景介绍
XX公司是一家专做电脑/监控/网络的工程商,近期接到了当地三甲医院的出口路由更换的项目。
需求很简单,内网架构保持不动,只要对出口路由做割接替换即可,将原有的某W路由替换为某P路由。
拓扑如下:
割接需要将原路由配置方案“移植”到新路由上实现访问internet,割接需要先PC单机试运行而非盲目替换。
问题描述
现场找了台PC直连路由LAN侧,做了WAN拨号+NAT+DHCP服务等基本配置后,将宽带接入路由WAN口,PC能正常获取IP并上网了。
此时将内网核心交换机插到路由器LAN口,突然发现路由器能ping通,但Web管理页面怎么也进不去了!
对比测试,将内网核心交换机拔了PC单机直连路由则又正常:
很神奇,只要内网接入路由器似乎就会导致其Web“挂掉”,莫非存在攻击行为?一起来看下吧。
排查分析
第一步:Telnet测试路由器http 80端口
能ping通说明链路正常,下来是要确认下端口服务是否还开放:
可以看到路由器的Web应该是彻底挂掉了,这个“拒绝提示”表示路由器主动RST掉了PC http的访问连接。对应报文也是如此:
Web服务挂掉一般有两种可能:
- 路由器设备故障。从已有分析我们知道,路由器是内网设备接入才有这个问题的,脱离内网工作则正常,说明设备未存在故障。
- http服务被“恶意连接”占满。常见的是TCP半连接①和SYN Flood②,“拒绝服务攻击”的一种。这两种恶意行为会吃掉服务器的服务资源,使其无法提供http、https等相应服务。
备注:
- TCP半连接:攻击者向服务器发起大量TCP连接,但在三次握手中不响应最后1个ACK,致使服务器自身存在大量无效“TCP半连接”,耗尽其资源,使其服务异常;
- SYN Flood:TCP泛洪攻击,攻击者向服务器开放端口大量建立TCP连接,耗尽其资源,使其服务异常。
目前来看作为网关的路由可能遭到了“拒绝服务攻击",下一步串口看看路由器系统状态。
第二步:串口接入查看路由器会话状态
接入串口,通过命令查看路由系统会话状态:
看到会话表中大量的tcp port 80的连接处于establish状态,很显性的看到路由的http服务资源被大量连接占用导致服务异常,典型的SYN Flood攻击。内网有大量设备会去找网关80端口并建立连接,要么是人为主动访问,要么是内网某些医疗设备特殊行为频繁建立连接?
第三步:抓包确认内网终端行为
打开wirehark对核心交换机的上联口做端口镜像(管理型交换机基本都支持端口镜像功能):
抓包如下:
过滤后可以看到大量的终端会主动去与网关(路由器)的80端口建立连接。
解决方案
经与现场医院IT核实,这些多为病床对讲、叫号屏等医疗终端,可能是设备自身某种对网关的探测行为,虽貌似不太正常,但也没法移除这些设备。
改不了终端就只能改路由器了,目前来看终端只会访问网关的http 80端口服务,那么可将http服务端口修改为非80端口尝试使用:
修改后再将内网设备全部接入LAN口,其Web界面即可正常打开了。