centos 升级openssl与openssh
undefinedundefined
1.简介#
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下载地址:https://ftp.openssl.org/source/
openssh下载地址:https://ftp.riken.jp/pub/OpenBSD/OpenSSH/portable/ ,以 p1.tar.gz结尾的即可,选择自己想要的版本 或 https://www.openssh.com/releasenotes.html
2.安装Telnet (防止升级失败,连不上服务器)#
yum -y install telnet*
systemctl enable telnet.socket #将服务开机自启
systemctl start telnet.socket #开启服务
ss -antpl |grep 23
确认服务是否启动,同时用另一台机器测试一下是否可以正常连接
telnet 实验机器ip 23
3.升级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 最后查看版本,更新完毕
4.升级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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2019-11-23 使用rsync在Windows(服务端)与Linux (客户端)之间的同步
2019-11-23 制作linux 随身碟