场景:
系统提供有登录接口,登录有重试次数的限制;超过重试次数后,用户将在最后一次重试登录后锁定30分钟后才能登陆;
问题描述
有个账号一直再重试登录,应该使用了错误的密码;尝试登录的时间很有规律,间隔一定时间就会调用一次登录接口;
原因分析:
怀疑是有一个定时任务,在一直调用登录接口,密码是错误的,导致了这个用户一直被锁,无法使用;
解决方案:
这个账号不能删除,只能查找一下请求来源;确实是否是恶意在登录;
猜测大概走的域名登录接口,中间有一个Nginx代理服务;可以通过nginx查看请求信息的来源ip;
登录服务器,查看nginx日志;
在nginx的日志里,每一行的第一个属性就是请求来源的ip找到了ip地址,发现是内网地址;
去内网这个ip机器上查看是那个服务在一直请求;
使用命令 netstat -nlp 查询连接的进程号
nestat常见参数
-a (all)显示所有选项, netstat默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。(重要)
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名(macOS中表示协议 -p protocol)
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计 (重要)
-c 每隔一个固定时间,执行该netstat命令。
找到指定的进程号,通过命令查看进程
ps -aux
最后找到了所有服务;