CVE-2024-6387对OpenSSH的漏洞解决方案与防护措施

修补方案

1.升级 OpenSSH 到最新版本

要有效解决此漏洞,请升级到最新的 OpenSSH 版本,其中包括必要的修复程序。保持 OpenSSH 安装最新对于安全和防范已知漏洞至关重要。官方已发布最新版本修复该漏洞,请受影响客户将Openssh更新到安全版本:OpenSSH > 9.8p1。

一键升级脚本:

bash 复制代码
#!/bin/bash

setenforce 0
# 安装依赖
yum -y install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre pcre-devel

cd /opt/oneopenssh
# 下载并解压 OpenSSH 包
tar zxvfp openssh-9.8p1.tar.gz 
cd openssh-9.8p1

# 配置、编译并安装 OpenSSH
./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr
make && make install

# 配置 SSH
echo 'PermitRootLogin yes' >>/usr/local/openssh/etc/sshd_config
echo 'PubkeyAuthentication yes' >>/usr/local/openssh/etc/sshd_config
echo 'PasswordAuthentication yes' >>/usr/local/openssh/etc/sshd_config

# 备份并替换系统默认的 SSH 配置和二进制文件
mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config
mv /usr/sbin/sshd /usr/sbin/sshd.bak
cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd
mv /usr/bin/ssh /usr/bin/ssh.bak
cp /usr/local/openssh/bin/ssh /usr/bin/ssh
mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
mv /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub.bak
cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub

# 修改 systemd 配置并重启 SSH 服务
sed -i "s/Type\=notify/Type\=simple/g" /usr/lib/systemd/system/sshd.service
systemctl daemon-reload && systemctl restart sshd

# 验证是否升级成功
ssh -V

2.实施临时解决方法

如果无法立即升级,您可以通过在 OpenSSH 配置文件中将 LoginGraceTime 参数设置为 0 来降低风险。这样可以防止未经身份验证的会话保持打开状态并被利用。但是,如果所有连接插槽都被占用,此设置可能会导致拒绝服务。

bash 复制代码
#!/bin/bash

# 检查是否具有root权限
if [ "$(id -u)" -ne 0 ]; then
    echo "此脚本需要root权限,请使用sudo或以root用户运行。"
    exit 1
fi

# 配置文件路径
SSHD_CONFIG="/etc/ssh/sshd_config"

# 备份当前配置文件
cp "$SSHD_CONFIG" "${SSHD_CONFIG}.bak"

# 更新LoginGraceTime参数
if grep -q "^LoginGraceTime" "$SSHD_CONFIG"; then
    sed -i "s/^LoginGraceTime.*/LoginGraceTime 0/" "$SSHD_CONFIG"
else
    echo "LoginGraceTime 0" >> "$SSHD_CONFIG"
fi

# 重启SSH服务
systemctl restart sshd

# 验证是否成功
if systemctl status sshd | grep -q "active (running)"; then
    echo "SSH服务已成功重启,并且LoginGraceTime参数已设置为0。"
else
    echo "SSH服务重启失败,请检查配置文件和服务状态。"
fi

3.通过使用seccomp(安全计算模式)

添加额外的安全层,可以进一步减轻风险。seccomp限制了sshd进程可以执行的系统调用,从而限制了攻击面并减少了利用不安全函数(如syslog())的可能性。实现seccomp确保即使触发了漏洞,攻击者执行任意代码的能力也会显著受限。通过遵循这些缓解策略,您可以保护系统免受此漏洞的影响,并增强OpenSSH配置的整体安全性。

结论

CVE-2024-6387(又名 RegreSSHion)是基于 glibc 的 Linux 系统上 OpenSSH 服务器 (sshd) 中的信号处理程序争用条件漏洞。此漏洞的严重等级为"高"(CVSS 8.1),并可能导致具有 root 权限的未经身份验证的远程代码执行 (RCE)。

Reference:

1\]CVE-2024-6387: https://nvd.nist.gov/vuln/detail/CVE-2024-6387

相关推荐
Chennnng1 小时前
Ubuntu 安装过程的 6 大常见问题类型
linux·运维·ubuntu
阿干tkl1 小时前
传统网络与NetworkManager对比
linux·网络
Evan芙2 小时前
Linux 进程状态与进程管理命令
linux·运维·服务器
码农12138号3 小时前
Bugku HackINI 2022 Whois 详解
linux·web安全·ctf·命令执行·bugku·换行符
Joren的学习记录3 小时前
【Linux运维进阶知识】Nginx负载均衡
linux·运维·nginx
用户2190326527353 小时前
Java后端必须的Docker 部署 Redis 集群完整指南
linux·后端
胡先生不姓胡3 小时前
如何获取跨系统调用的函数调用栈
linux
里纽斯5 小时前
RK平台Watchdog硬件看门狗验证
android·linux·rk3588·watchdog·看门狗·rk平台·wtd
chem41115 小时前
魔百盒 私有网盘seafile搭建
linux·运维·网络
互联网扫地僧5 小时前
Apache Doris技术原理深度解析
apache