本帖最后由 贺智文 于 2023-1-12 16:22 编辑
【问题背景】SSL VPN部署在总部,下属有各个分支使用,有个分支所有用户访问VPN异常,客户端登录提示校验码错误或过期。服务端已开启强制启用图形验证码。 【排查过程】 1.协调不能登录的电脑远程查看现象,确定验证码输入正确,同一个账号换其他分支电脑可以正常登录,其他分支几千个用户登录使用正常。 2.收集客户端日志和服务端日志,问题时间点:10:41:37,设备时间和北京时间一致。 从日志看就是用户名密码认证返回的错误信息,客户端无错误日志 3.叫客户切换网络测试,发现换成手机热点也不行(这里踩坑了) 4.查看VPN调试日志,sess_code为空,无法和用户提交的做对比。说明是客户端提交到服务端认证的twfid,服务端无法根据这个twfid获取到用户的图形校验码。 这有点奇怪客户端正确提交了,到了服务端识别是错误的。 5.排查一段时间后,客户反馈其他用户换手机热点可以登录了 ,询问远程电脑用户,刚开手机热点测试还连着公司wifi,也就相当于手机做wifi桥接了,拨VPN实际还是走的公司的网络出去。 6.切换热点测试可以的话,那基本上可以确认是客户端网络环境问题了。 查看远程PC公网IP,发现登录报错时跟登录前的公网IP变化了,(这个记得浏览器开下无痕,不然有缓存) 7.找专家确认,设备是根据客户端公网IP来区分用户的, 如果VPN拿到的用户接入ip发生变化,就可能会调度到不同设备上去。而校验码机制是,用户请求rand_code.csp下发图形校验码,源ip是10.10.10.10,请求的是设备A。如果用户登录输入完用户密码和图形校验码,发起认证请求时,源ip如果变为11.11.11.11,那么就可能会调度到设备B。而设备B又没有下发这个图形校验码,所以校验错误了,这样就会导致异常。 【处置建议】 查看出口网络环境,保障公网IP不发生频繁变化,(可以变化,但是不能变的太频繁了) |