根据提供的进程信息,系统中存在大量异常的 sshd
进程,用户名为 unknown
或显示 [accepted]
、[net]
状态,且部分进程占用较高 CPU 资源(如 PID 4357 的 CPU 占用率达 120%)。这可能是系统遭受恶意攻击(如暴力破解、后门程序)或 SSH 服务配置异常的表现。以下是具体分析和解决方案:
1. 异常现象分析
- 进程状态异常:
sshd: unknown [priv]
:正常 SSH 进程应显示实际登录用户(如root
或ubuntu
),unknown
可能表明恶意程序伪装 SSH 进程。sshd: [accepted]
和sshd: [net]
:通常是 SSH 连接握手阶段的临时进程,但短时间内大量重复出现可能暗示攻击者尝试建立连接。
- 资源占用异常:部分进程(如 PID 4357)CPU 占用率极高,可能为恶意程序占用资源或正在进行加密爆破。
2. 紧急处理步骤
(1)立即终止可疑进程
# 终止所有 unknown 和 [accepted] 进程
ps aux | grep "sshd: unknown\|sshd: $$accepted$$" | awk '{print $2}' | xargs kill -9
# 重启 SSH 服务
systemctl restart sshd
(2)检查 SSH 服务合法性
- 验证 SSH 文件完整性:
rpm -Vf /usr/sbin/sshd # CentOS/RHEL dpkg -V openssh-server # Debian/Ubuntu
若输出显示文件被篡改(如哈希值不匹配),需重新安装 OpenSSH。
- 检查进程关联文件:
lsof -p <PID> # 替换为高 CPU 占用的 PID(如 4357)
观察是否加载异常库文件(如
libcrypto.so.10
缺失或篡改)或连接非常规 IP。
3. 深入排查方向
(1)日志分析
- 查看 SSH 登录日志:
tail -f /var/log/auth.log # Debian/Ubuntu tail -f /var/log/secure # CentOS/RHEL
搜索关键词:
Failed password
(爆破记录)、Accepted publickey
(异常密钥登录)、error
(服务启动失败)。 - 检查系统日志:
journalctl -u sshd --since "2025-05-11 21:56:00"
确认是否有服务崩溃或配置错误记录(如
AddressFamily inet6
配置冲突)。
(2)恶意行为排查
- 检查 SSH 配置文件:
sshd -t # 验证语法 grep -E "PermitRootLogin|PasswordAuthentication" /etc/ssh/sshd_config
确保未启用高风险配置(如
PermitRootLogin yes
或PasswordAuthentication yes
)。 - 排查后门程序:
# 检查病毒文件(如 udev-fall) ps aux | grep -E "udev-fall|\./sshd" find / -name "*udev-fall*" -exec rm -rf {} \;
4. 安全加固建议
- 限制 SSH 访问:
# 仅允许密钥登录 sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config systemctl restart sshd
- 防火墙规则:
ufw allow from <可信IP>/24 to any port 22 ufw deny 22 # 若需临时阻断攻击
- 系统更新与扫描:
apt update && apt upgrade openssh-server # Debian/Ubuntu yum update openssh-server # CentOS/RHEL chkrootkit # 扫描后门程序
5. 高级诊断工具
- 网络流量抓包:
tcpdump -i eth0 port 22 -w ssh_traffic.pcap
分析是否有异常加密握手或高频连接尝试。
- 动态进程监控:
strace -p <PID> -e trace=network,execve # 跟踪高 CPU 进程的系统调用
总结
当前系统极可能遭受 SSH 暴力破解攻击或存在后门程序。建议立即终止异常进程、检查日志和配置文件,并加强安全策略。若问题持续,需通过快照回滚或重装系统彻底清除风险。
最简单快速解决方法:
修改SSH端口号即可解决