说来惭愧,openssh 的安全漏洞(参考下图:CVE-2023-38408 OpenSSH 安全漏洞)已经爆出来一年了,我们才在上级部门组织的安全测试中发现这个高危漏洞,因此决定将 openssh 升级到最新版本,方法如下:
![1718898794-78805a221a988e7](https://www.codesou.cn/wp-content/uploads/2024/06/1718898794-78805a221a988e7.webp)
下载 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