在CentOS系统里排查SSH漏洞,其实是一套标准化的操作流程。很多安全加固指南都会提及,但实际动手时,一些细节往往被忽略。下面把这套流程拆解开来,每一步都附带具体的命令和判断逻辑,照着执行基本不会遗漏关键点。

第一步:确认OpenSSH版本信息
任何漏洞检测,第一步永远是确认版本。例如CVE-2024-6387这个经典的远程代码执行漏洞,影响范围是8.5p1 ≤ OpenSSH < 9.8p1。如何查询?一条命令即可:
ssh -V
输出结果会显示OpenSSH的版本号和补丁状态。如果版本正好落在这个区间,就需要高度重视——必须立即处理,要么升级,要么采取临时缓解措施。
第二步:检查PAM配置中的安全隐患
SSH的安全性很大程度上依赖PAM认证机制。部分管理员为了省事,会在PAM配置文件中添加auth sufficient pam_rootok.so。这个配置的含义是:root用户认证时直接跳过密码校验——相当于把大门钥匙挂在了门口。检查方法分两步:
cat /etc/ssh/sshd_config | grep usepam
cat /etc/pam.d/su | grep auth sufficient pam_rootok.so
第一条命令确认SSH是否启用了PAM(UsePAM yes才算启用),第二条命令检查是否存在危险的pam_rootok.so。如果两条都命中,必须立即修复——删除或注释掉那条配置,然后重启sshd服务。
第三步:关闭不必要且高风险的端口和服务
系统中运行的服务越多,被攻击面就越广。尤其是一些默认开启但实际无用的服务,例如打印服务、蓝牙服务或未配置的FTP。将当前正在运行的服务逐一列出审查:
systemctl list-units --type=service --state=running
看到不熟悉或非必需的服务,直接执行systemctl stop和systemctl disable。端口同理——使用ss -tlnp检查监听端口,高危端口(如23、135-139、445等)若暴露在外网,无异于公开靶标。关闭无用端口,等于为系统做了一次“瘦身”加固。
第四步:升级还是采用临时缓解策略?
最稳妥的方案当然是更新到最新版本。CentOS上通过yum即可完成:
sudo yum update openssh-server
但实际场景中,生产环境可能无法立即重启,或者镜像源中没有最新的补丁版本。此时需要走缓解路线——在/etc/ssh/sshd_config中设置LoginGraceTime 0,这条参数表示SSH连接认证超时时间不限。配合连接速率限制(例如MaxStartups参数)和fail2ban,能有效延缓漏洞被利用。修改后别忘了重启sshd服务:systemctl restart sshd。
这几步操作下来,CentOS上的SSH漏洞基本能被排查清楚。最后提醒一点:漏洞检测不是一次性工作,建议定期运行脚本,将版本更新、配置审计、端口扫描纳入日常运维——安全防护,功夫在平时。
