一、背景
一台服务器突然访问ssh特别缓慢,top命令查看后,服务器Load Average占用很高。看相关异常进程都是sshd服务导致。
二、排查思路
查看服务器内存,磁盘io都是正常,在用连接数也不多。
一开始就怀疑是不是服务器被恶意攻击了,这是一台sftp主机,正常情况sshd也不会负载这么高,
后面重连服务器弹出以下错误
Using username "root".
Keyboard-interactive authentication prompts from server:
End of keyboard-interactive prompts from server
Last failed login: Mon May 20 09:26:33 CST 2024 from 访问IPxxxx on ssh:notty
There were 16904 failed login attempts since the last successful login.
Last login: Tue May 14 13:54:41 2024 from 172.16.xxx.xxx
ABRT has detected 1 problem(s). For more info run: abrt-cli list --since 1715666081
[root@localhost ~]#
应该是某个客户端挂了个脚本一直尝试访问sshd服务
三、处理方法
·查看btmp日志,btmp日志是记录失败登录尝试的日志文件,通常位于 /var/log/btmp。当 btmp 日志过大时,可能会导致系统资源被大量无效的登录尝试占用,影响正常服务的运行,比如 sshd 服务。
清除btmp日志
#清除btmp
echo "" > /var/log/btmp
日志清空后,Load Average逐步恢复正常。
如果仍然异常,尝试重启以下服务
systemctl restart systemd-logind
systemctl restart sshd
统计查看恶意ip试图登录次数
lastb | awk '{ print $3}' | sort | uniq -c | sort -n
lastb | awk '/\(/{ print $3}' | sort | uniq -c | sort -n
在防火墙处最后限制异常IP访问
附加:btmp日志为二进制格式,无法用常用vi等查看
查看格式:
last -f /var/log/btmplast -f /var/log/btmp | awk '/\(/{ print $3}' | sort | uniq -c | sort -n