OpenSSH和OpenSSL升级之路
前言
升级到Centos 7.9.2009后,又要升级OpenSSH和OpenSSL,进了太多坑后,终于摸索出了一点心得。顺便说下我跳过的坑
1.先升级了OpenSSH再升级了OpenSSL后,ssh -V出来的还是旧版本,导致漏扫不过
2.有些文章给的地方缺字或缺失步骤导致失败,如防火墙启动的系统是要开telnet的23端口的,而且把firewal写成firwall了
3.做了软连接后一直报 /lib64/libssl.so.10: version `libssl.so.10’ not found 错误
2021年5月19日补充:因应对 CVE 2021 28041 的漏洞(CVE-2021-28041 / CNNVD-202103-527的OpenSSH before 安全漏洞),紧急对OpenSSH和OpenSSL进行升级,使用以下命令可升级至OpenSSH 8.6p1, OpenSSL 1.1.1k ,且可以正常登入使用 因本人没有系统学习过红帽系统,对如此升级的后遗症无法确定,请升级前一定做好备份或快照,以防意外发生。
一、检查版本
[root@localhost ~]# cat /etc/redhat-release #查看系统版本
CentOS Linux release 7.9.2009 (Core)
[root@localhost ~]# ssh -V #其中V是大写的
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
两个最新的是OpenSSH8.4, OpenSSL 1.1.1(3.0.0的版本没研究)
二、升级前准备
1.备份文件
[root@localhost ~]# cp -r /etc/pam.d /etc/pam.d.bak
[root@localhost ~]# cp -af /usr/bin/openssl /usr/bin/openssl.old
[root@localhost ~]# cp -af /etc/pki/ca-trust/extracted/openssl /etc/pki/ca-trust/extracted/openssl.old
[root@localhost ~]# cp -af /usr/lib64/openssl /usr/lib64/openssl.old
[root@localhost ~]# cp -af /usr/lib64/libcrypto.so.10 /usr/lib64/libcrypto.so.10.old
[root@localhost ~]# cp -af /usr/lib64/libssl.so.10 /usr/lib64/libssl.so.10.old
[root@localhost ~]# cp -arf /etc/ssh/ /etc/ssh_old
2.安装和配置telnet-server以及xinetd(万一失败了telnet也能连接)
使用yum命令报错或提示没有连接上的,先ping下外网通不,这是在线更新的,还有DNS没配置也可能报错,其他问题请自行查找文档
[root@localhost ~]#yum install xinetd telnet-server -y
根据其他文档写的老版本升级上来的需要修改配置文件让root登入,反正我是新装telnet没看到这个
[root@localhost ~]# ll /etc/xinetd.d/telnet
ls: cannot access /etc/xinetd.d/telnet: No such file or directory
如果该文档存在就按如下操作,更改配置使root可以telnet登录,把disable = no改成disable = yes
#修改文件的命令是vi,但有些系统可以用vim来,两个区别是vim功能更强大
#vim xxxxx 打开某个文件,打开后需要编辑的话按i键进入编辑模式,编辑完毕后按ESC键退出编辑模式,直接输入:wq是保持并退出,:q!是不保存并强制退出
[root@localhost ~]# cat /etc/xinetd.d/telnet
# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in