CentOS 7 升级 OpenSSH 9.8p1
背景
OpenSSH 官方发布安全通告,披露CVE-2024-6387 OpenSSH Server远程代码执行漏洞。
环境
操作系统 | 内核 | openssh 版本 | openssl 版本 |
---|---|---|---|
7.8.2003 | 3.10.0-1127 | 7.4p1 | 1.0.2k-fips |
安装编译软件和下载 OpenSSH9.8p1 软件包
mkdir -p /data/software
cd /data/software/
yum install wget gcc gcc-c++ zlib-devel epel-release -y
# 因为 OpenSSH 9.8p1 需要 OpenSSL 的版本 >= 1.1.1,所以需要安装 openssl11
yum install openssl11 openssl11-devel -y
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz
tar -xzf openssh-9.8p1.tar.gz
编译安装 OpenSSH 9.8p1
cd /data/software/openssh-9.8p1
# 需要手动指定 openssl11 的头文件和库的位置
./configure CFLAGS="-I/usr/include/openssl11" LDFLAGS="-L/usr/lib64/openssl11/"
make
make install
# 编制安装的二进制加入 PATH
echo 'export PATH=/usr/local/bin:/usr/local/sbin:$PATH' >> ~/.bashrc
更新 sshd.service
cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service.ori
vi /usr/lib/systemd/system/sshd.service
# 修改下面两处,指定新的 sshd 和 配置文件
EnvironmentFile=/usr/local/etc/sshd_config
ExecStart=/usr/local/sbin/sshd -D $OPTIONS
# 修改新 sshd_config 的配置
cat >> /usr/local/etc/sshd_config << EOF
PermitRootLogin yes
PubkeyAuthentication yes
PasswordAuthentication yes
EOF
# 注意如果原来的 /etc/ssh/sshd_config 配置做更改,需要自行修改到新的配置上 /usr/local/etc/sshd_config
# 重新启动 sshd.service
systemctl daemon-reload
systemctl restart sshd
检查
ssh -V
修复完成~