分析办公网到服务器三次握手后就被 RST 的原因
某云上的主机正常运行,并且没有改动过防火墙配置,今天突然无法 SSH 上去:
$ ssh 193.1*.*.* kex_exchange_identification: read: Connection reset by peer Connection reset by 193.1*.*.* port 22
但用其他机房做跳板可以正常登录访问,除了无法 SSH,上面运行的 HTTP 等服务也不能访问,所以我就直接排除了 SSH 服务的问题了。
本地抓包后发现所有到云主机的 TCP 连接都在三次握手后被 RST 了:
147 11.487757612 10.8.*.* 193.1*.*.* TCP 74 59888 → 22 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM=1 TSval=540205292 TSecr=0 WS=128 148 11.492035973 193.1*.*.* 10.8.*.* TCP 60 22 → 59888 [SYN, ACK] Seq=0 Ack=1 Win=64240 Len=0 149 11.492069698 10.8.*.* 193.1*.*.* TCP 54 59888 → 22 [ACK] Seq=1 Ack=1 Win=64240 Len=0 150 11.492196198 10.8.*.* 193.1*.*.* SSHv2 75 Client: Protocol (SSH-2.0-OpenSSH_8.3) 151 11.499610861 193.1*.*.* 10.8.*.* TCP 60 22 → 59888 [RST, ACK] Seq=1 Ack=2 Win=0 Len=0
用其他主机做跳板登录到云主机上抓包发现也能正常收到握手包,因此说明办公网到主机实质是可以正常通讯。
但有意思的来了,服务器上抓包显示三次握手后,是我们办公网(222.2*.*.* 是办公出口 IP)主动发出的 RST:
8 5.378818 222.2*.*.* 10.18*.*.* TCP 54 39524 → 22 [RST] Seq=1 Win=0 Len=0
也就是双方刚建立起通讯就各自收到了对方的 RST,说明是中间有安全设备给阻断了,一路到处问才发现内网刚上线一台设备,云主机 IP 给误拦了。