前言
本文主要用于升级OpenSSL升级至3.1版本及OpenSSH到9.4版本并替换OpenSSH使用的OpenSSL版本来修复旧版本的漏洞
- 查看OpenSSL版本
(base) ➜ ~ openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
- 查看OpenSSH版本
(base) ➜ ~ ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
- 下面所有操作均是root用户完成
下载依赖包
都下载最新版本,然后上传到服务器,如:
(base) ➜ openssh漏洞修复/ ll
total 78272
-rw-r--r--@ 1 lengwen staff 1.8M 10 16 11:13 openssh-9.4p1.tar.gz
-rw-r--r--@ 1 lengwen staff 15M 10 16 14:44 openssl-3.1.2.tar.gz
-rw-r--r--@ 1 lengwen staff 20M 10 13 10:10 perl-5.38.0.tar.gz
-rw-r--r--@ 1 lengwen staff 1.4M 10 16 11:30 zlib-1.3.tar.gz
安装
安装Perl
- 解压
tar -zxvf perl-5.38.0.tar.gz
- 进入解压路径,编译并安装
cd perl-5.38.0/
./Configure -des -Dprefix=/usr/local/perl -Dusethreads -Uversiononly
make && make install
- 备份旧的perl
cd /usr/bin
mv perl perl.old
- 然后搞个软连接
ln -s /usr/local/perl/bin/perl /usr/bin/perl
- 现在看看perl的版本
perl -version
安装OpenSSL
- 解压
tar -zxvf openssl-3.1.2.tar.gz
- 进入解压路径,编译并安装
cd openssl-3.1.2/
./config --prefix=/usr/local/openssl
make && make install
- 替换当前版本
mv /usr/bin/openssl /usr/bin/openssl.old
mv /usr/lib64/openssl /usr/lib64/openssl.old
mv /usr/lib64/libssl.so /usr/lib64/libssl.so.old
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/lib/libssl.so /usr/lib64/libssl.so
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
- 添加软连接
ln -s /usr/local/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3
ln -s /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3
- 查看OpenSSL的版本
(base) ➜ ~ openssl version
OpenSSL 3.1.2 1 Aug 2023 (Library: OpenSSL 3.1.2 1 Aug 2023)
安装Zlib
- 解压
tar -zxvf zlib-1.3.tar.gz
- 进入解压路径,编译并安装
cd zlib-1.3/
./configure --prefix=/usr/local/zlib
make && make install
安装OpenSSH
- 备份现有SSH
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
cp /usr/sbin/sshd /usr/sbin/sshd.bak
- 解压
tar -zxvf openssh-9.4p1.tar.gz
- 进入解压路径,编译并安装
cd openssh-9.4p1/
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-md5-passwords --with-ssl-dir=/usr/local/openssl --without-zlib-version-check
make && make install
- 重启ssh服务
systemctl restart sshd
- 退出终端重新登录并查看版本
(base) ➜ ~ ssh -V
OpenSSH_9.4p1, OpenSSL 3.1.2 1 Aug 2023
可能遇到的问题
编译报错
(base) ➜ zlib-1.3 ./configure --prefix=/usr/local/zlib
Checking for gcc...
Compiler error reporting is too harsh for ./configure (perhpas remove -Werror)
** ./configure aborting
没有装gcc,安装gcc即可
PAM问题
如果在执行./configure --prefix=/usr --sysconfdir=/etc/ssh
时报错PAM找不到,可以使用如下命令安装
yum install -y pam-devel
编译OpenSSH时报证书无法加载
加上权限即可
chmod 700 /etc/ssh/ssh_host_rsa_key
chmod 700 /etc/ssh/ssh_host_ecdsa_key
chmod 700 /etc/ssh/ssh_host_ed25519_key
升级完成后一直报密码错误
如果升级完成之后一直报密码错误,则修改/etc/ssh/sshd_config
# 如果PermitRootLogin有注释直接取消注释
PermitRootLogin yes
# 注释掉下面3行代码
# GSSAPIAuthentication yes
# GSSAPICleanupCredentials no
# UsePAM yes
重启ssh即可
结束
OpenSSH版本升级结束
电话号码 游客 2024-09-29 13:31 回复
您在我们网站上的 Swagotham 电话营销网站评论是宝贵的商业资源。为了创建在线形象并吸引新客户,我们为您提供了一些基本数据。企业可以获得宝贵的见解,与客户建立信任并提高整体在线声誉。我们的网站有巴西电话号码、丹麦电话号码以及来自不同国家/地区的电话号码。
jiyouzhan 游客 2024-05-22 17:22 回复
这篇文章写得深入浅出,让我这个小白也看懂了!