说来惭愧,openssh 的安全漏洞(参考下图:CVE-2023-38408 OpenSSH 安全漏洞)已经爆出来一年了,我们才在上级部门组织的安全测试中发现这个高危漏洞,因此决定将 openssh 升级到最新版本,方法如下:

下载 openssh 9.7 版本压缩包

因为 openssh 是基于 ppenssl 的,所以要同时下载并先升级 openssl。

$ wget https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-9.7p1.tar.gz
$ wget https://ftp.openssl.org/source/openssl-1.1.1w.tar.gz

升级 openssl

编译安装 openssl

$ tar xzvf openssl-1.1.1w.tar.gz
$ cd openssl-1.1.1w/
$ ./config shared && make && make install

配置软链接

ln -s /usr/local/bin/openssl /usr/bin/openssl

如果遇到以下错误信息

openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

创建下面的软链接

$ ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/
$ ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/

升级 openssh

安装依赖

yum install zlib-devel  openssl-devel  pam-devel -y

编译安装文件

./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/lib64/ --with-zlib --with-pam --with-md5-password --with-ssl-engine --with-selinux

如果编译过程报错提示 openssl 版本和库版本不一致的话,加上”--without-openssl-header-check“重新编译即可。

./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/lib64/ --with-zlib --with-pam --with-md5-password --with-ssl-engine --with-selinux --without-openssl-header-check

安装

make && make install

查看版本验证安装结果

ssh -V

因为OPENSSH升级后,/etc/ssh/sshd_config会还原至默认状态,我们需要进行相应配置:

cd /etc/ssh/
chmod 400 ssh_host_ecdsa_key ssh_host_ed25519_key ssh_host_rsa_key
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
echo "PasswordAuthentication yes"  >> /etc/ssh/sshd_config
systemctl restart sshd