环境:centos 7
由于OpenSSL 拒绝服务漏洞(CVE-2020-1971)
需要将openssl进行升级
参考网站:https://jingyan.baidu.com/article/08b6a5916ecc5214a9092244.html
1.准备rpm包,从官网下载:http://www.rpmfind.net/linux/rpm2html/search.php
准备预备ssh无法连接从telnet连接的方式.
pam-1.1.8-23.el7.x86_64.rpm
pam-devel-1.1.8-23.el7.x86_64.rpm
systemd-219-78.el7.x86_64.rpm
systemd-libs-219-78.el7.x86_64.rpm
systemd-sysv-219-78.el7.x86_64.rpm
telnet-0.17-65.el7_8.x86_64.rpm
telnet-server-0.17-65.el7_8.x86_64.rpm
xinetd-2.3.15-14.el7.x86_64.rpm
zlib-1.2.7-18.el7.x86_64.rpm
zlib-devel-1.2.7-18.el7.x86_64.rpm
注意:这下rpm包可能随时间更新,版本有所变化,所以还是根据官网下载当时的包。
升级次序
1.1 rpm -Uvh pam-1.1.8-23.el7.x86_64.rpm --nodeps --force
1.2 rpm -Uvh pam-devel-1.1.8-23.el7.x86_64.rpm --nodeps -force
1.3 rpm -Uvh xinetd-2.3.15-14.el7.x86_64.rpm --nodeps -force
1.4 rpm -Uvh zlib-1.2.7-18.el7.x86_64.rpm --nodeps -force
1.5 rpm -Uvh zlib-devel-1.2.7-18.el7.x86_64.rpm --nodeps -force
备注:其它运行时提醒需要什么,就安装什么。在官网去下载.
2.启动xinetd
#systemctl start xinetd
查看状态
#systemctl status xinetd
#systemctl enable xinetd

3.启动telnet
# systemctl start telnet.socket
# systemctl status telnet.socket
# systemctl enable telnet.socket

4.默认情况下,telnet是不允许root登录的。
执行命令:
# echo "pts/0" >> /etc/securetty
# echo "pts/1" >> /etc/securetty

5.关闭防火墙
# systemctl stop iptables

6.编辑pam配置文件,以便telnet允许root登录。
# vi /etc/pam.d/login
注释 这一行
auth [user_unknown=ignore succes=ok ignore=ignore ...]

7.编辑配置文件:
#vi /etc/pam.d/remote
如图注释这一行
auth required pam_securetty.so

8.重启xinetd,telnet服务
#systemctl restart xinetd
#systemctl restart telnet.socket

9.然后从其他服务器利用telnet测试登录(当然另外一台服务器上已经安装了telnet)
#telnet ip
输入账号密码,登录成功。
telnet可以登录,实际上是开了另外一条可以登录服务器的通道,以免ssh升级出错,造成无法登录服务器。

10.升级 openssl
11.先确保你的服务器上已经有gcc,gcc-c++。这两个是编译工具。
#rpm -qa |grep gcc
没有安装。
则执行安装,这里我已经下载了gcc,gcc-c++的包。
如果你的服务器联网,可以执行:
#yum install gcc gcc-c++

12.官网下载openssl-1.1.1i.tar.gz,并解压 tar -zxvf openssl-1.1.1i.tar.gz
13.下载基线openssl版本:openssh-1.0.le.tar.gz,
并解压 tar -zxvf openssh-1.0.le.tar.gz
(https://www.openssl.org/source/old/1.0.1/openssl-1.0.1e.tar.gz)
14.卸载旧的openssl包。
#for i in $(rpm -qa |grep openssl);do rpm -e $i --nodeps ;done
15.进入openssl-1.1.1i 目录
cd openssl-1.1.1i
执行
./config shared
16.执行 make&&make install
17.安装完毕。
执行命令:
#echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
#ldconfig
配置ssl库
#cp /usr/local/ssl/lib/libssl.so.1.1 /usr/lib64
#cp /usr/local/ssl/lib/libcrypto.so.1.1 /usr/lib64
#ln -s /usr/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.10
#ln -s /usr/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so
#ln -s /usr/lib64/libssl.so.1.1 /usr/lib64/libssl.so.10
#ln -s /usr/lib64/libssl.so.1.1 /usr/lib64/libssl.so
#ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
#ln -s /usr/local/ssl/include/openssl /usr/include/openssl
查看openssl版本
#openssl version -a
升级成功
18.此时由于openssl升级到最新,导致老版本的wge、yum等命令无法使用
19.进入openssh-1.0.le
20.
#./config shared zlib-dynamic
#make
21.
将生成的 libssl.so.1.0.0,libcrypto.so.1.0.0两个文件拷贝到/usr/lib64
22.#cd /usr/lib64/
23.ln -s libssl.so.1.0.0 libssl.so.10 (如果提示已经存在,则先删除链接)
24.ln -s libcrypto.so.1.0.0 libcrypto.so.10 (如果提示已经存在,则先删除链接)
25.尝试、wget、yum等命令,发现可以使用了...