【linux】服务器sshd服务导致CPU负载过高问题

avatar
作者
筋斗云
阅读量:0

一、背景

一台服务器突然访问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/btmp  last -f /var/log/btmp | awk '/\(/{ print $3}' | sort | uniq -c | sort -n 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!