centos 升级openssl与openssh

发布时间 2023-11-23 16:10:25作者: 会bk的鱼

一、简介

Linux系统中Open SSH、Open SSL常常存在高危漏洞,如OpenSSL“心脏出血”漏洞,利用该漏洞,黑客可以获取约30%的https开头网址的用户登录账号密码,其中包括购物、网银、社交、门户等类型的知名网站等。 以及OpenSSH漏洞,如“OpenSSH远程代码执行漏洞CVE-2016-10009”, sshd服务可以利用转发的agent-socket文件,欺骗本机的ssh-agent来加载一个恶意的PKCS#11模块,从而可以远程执行代码,黑客利用漏洞实现远程命令执行,严重情况下可能会导致数据泄露。 我们一般通过升级openssh和openssl来解决系统中存在的相关高危漏洞。

OpenSSH 是使用 SSH 协议进行远程登录的连接工具。它加密所有通信讯息以消除窃听、连接劫持和其他攻击。此外,OpenSSH 提供
了大量的安全隧道功能、多种身份验证方法和复杂的配置选项。

OpenSSL 是一个开源的软库,使用包含了众多加解密算法,用于传输层安全性(TLS)和安全套接字层(SSL)协议的强大、商业级和功
能产全的工具包。主要库是以 C 语言所写成,实现了基本的加密功能,实现了SSL与TLS协议。

 

本次实验环境:centos7.9

openssl 升级至OpenSSL 3.1.4 24   查看当前版本 openssl version -a

openssh 升级至OpenSSH_9.5p1    查看当前版本 ssh -v

 

openssl下载地址:

openssh下载地址: ,以 p1.tar.gz结尾的即可,选择自己想要的版本   或 https://www.openssh.com/releasenotes.html

 

二、安装Telnet (防止升级失败,连不上服务器)

yum -y install telnet*

systemctl  enable telnet.socket     #将服务开机自启

systemctl start  telnet.socket   #开启服务

ss -antpl |grep 23    #确认服务是否启动,同时用另一台机器测试一下是否可以正常连接   telnet  实验机器ip  23

 

三、升级OpenSSl

1.安装依赖包

yum install zlib-devel openssl-devel sqlite-devel bzip2-devel libffi libffi-devel gcc gcc-c++  perl

2.解压安装

#我们将ssl安装在/usr/local/openssl目录下
tar -zxvf openssl-3.1.4.tar.gz
cd openssl-3.1.4
./config --prefix=/usr/local/openssl
#检查环境
./config -t
make      #编译
make install     #编译安装

 3. 备份当前openssl
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak

4. 配置使用新版本
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl

 5. 更新动态链接库数据并重新加载
echo /usr/local/openssl/lib64   >> /etc/ld.so.conf
ldconfig -v

 6. 查看是否升级成功
openssl version

7.移除旧版本
which openssl        #查看旧版本openssl命令在哪里
mv /usr/bin/openssl /usr/bin/openssl.old   #将旧版本openssl移除
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl           #新版本制作软链接
openssl version         最后查看版本,更新完毕

 

 四、升级openssh

 1.解压

tar -zxvf  openssh-9.5p1.tar.gz 

2.删除原有的ssh 相关文件      #注意!注意!注意!卸载后千万不要断开连接,也不可重启ssh服务和服务器。

yum remove openssh -y

rm -rf /etc/ssh/* 

3.重新编译新的ssh

cd  /opt/openssh-9.5p1
#安装编译
./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/openssl --with-md5-passwords --mandir=/usr/share/man --with-zlib=/usr/local/zlib --without-hardening

如报错 configure: error: PAM headers not found  请安装 yum -y install pam-devel

4.编译完成后在openssh-9.5p1目录下执行以下命令

cp ./contrib/redhat/sshd.init  /etc/init.d/sshd
cp ./contrib/redhat/sshd.pam  /etc/pam.d/sshd.pam
chmod +x /etc/init.d/sshd
chkconfig -add sshd
chkconfig sshd on
systemctl start sshd

5.查看版本

ssh -V

6.升级后无法远程登录的问题 (Access denied)

vi  /etc/ssh/sshd_config     

echo "PermitRootLogin yes" >> /etc/ssh/sshd_config    #直接用root登录终端(此处根据自身情况考虑)
echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config   #是否允许密码验证
echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config  #允许pubKey(类似id_rsa.pub)登录
echo 'X11Forwarding yes' >> /etc/ssh/sshd_config   #设置是否允许X11转发

 

参考链接:

https://zhuanlan.zhihu.com/p/607190408

https://blog.csdn.net/qq_27566167/article/details/128594728

https://blog.csdn.net/qq_27566167/article/details/128597276

https://blog.csdn.net/zhuzicc/article/details/108603855