centos7下升级openssh9.4p1及openssl1.1.1v版本

背景:客户服务器扫描出一些漏洞,发现和版本有关,漏洞最高的版本是9.3p2,所以我们安装一个openssh9.4p1版本及openssl1.1.1v版本

虽然我们进行了镜像备份,为了安全先安装telnet以防止升级失败无法通过ssh连接服务器

一、安装telnet

1、安装配置telnet,一般Linux系统自带telnet客户端,只需安装服务端即可,另外telnet运行需要依靠xinetd组件

yum install telnet-server.x86_64 xinetd.x86_64

2、运行telnet服务

systemctl enable telnet.socket

systemctl start telnet.socket

systemctl start xinetd

systemctl status telnet.socket

3、移除文件

linux默认不允许root账户telnet远程登录,需要移除配置文件,保证root账户能够远程登录

mv /etc/securetty /etc/securetty.bak

firewall-cmd --zone=public --add-port=23/tcp --permanent

firewall-cmd --reload

4、使用xshell工具telnet协议连接服务器

二、安装openssl及openssh

下载安装包

cd /home/openssh_package

wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1v.tar.gz

wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.4p1.tar.gz

2.1 升级openssl

1、备份原来的openssl

mv /usr/bin/openssl /usr/bin/openssl_bak

mv /usr/include/openssl /usr/include/openssl_bak

2、解压源码包

tar -zxvf openssl-1.1.1v.tar.gz

3、进行编译安装

安装依赖包

yum -y install zlib* pam-* gcc make

cd openssl-1.1.1v/

./config --prefix=/usr/local/openssl --shared

make

make install

4、配置软连接,如果提示已存在,参数换位-b,并使用openssl version查看版本

ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl

ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1

ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

2.2 升级openssh

1、更改ssh目录名,在升级时如果ssh目录存在,配置文件不会被覆盖

mv /etc/ssh /etc/ssh_bak

2、解压源码包

tar -zxvf openssh-9.4p1.tar.gz

安装pam

yum -y install pam-devel

安装依赖包

yum -y install zlib* pam-* gcc make

3、编译安装

./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/openssl/include --with-ssl-dir=/usr/local/openssl --with-zlib --with-md5-passwords --with-pam

make -j4

make install

4、复制配置文件

cp -a contrib/redhat/sshd.init /etc/init.d/sshd

chmod u+x /etc/init.d/sshd

5、配置/etc/ssh/sshd_config文件,允许root账户远程登录

vim /etc/ssh/sshd_config

PasswordAuthentication yes //取消该行注释

PermitRootLogin yes //添加该行,允许root账户远程登录

6、添加ssh开机自启动

chkconfig --add sshd

chkconfig sshd on

7、更改root密码

passwd root

输入新的密码

重启sshd服务

systemctl restart sshd

8、使用新密码重新连接服务器

9、查看ssh的版本

版本已更新

如果开始没有mv /etc/ssh操作可能存在的问题:

1、Permissions 0640 for '/etc/ssh/ssh_host_ed25519_key' are too open

ssh权限太大

解决办法:

权限变成600

chmod 0600 /etc/ssh/ssh_host_rsa_key

chmod 0600 /etc/ssh/ssh_host_ecdsa_key

chmod 0600 /etc/ssh/ssh_host_ed25519_key

2、/etc/ssh/sshd_config line 79: Unsupported option GSSAPIAuthentication

/etc/ssh/sshd_config line 80: Unsupported option GSSAPICleanupCredentials

解决办法

注释掉/etc/ssh/sshd_config文件的79和80行

相关推荐
张小姐的猫10 分钟前
【Linux】网络编程 —— HTTP协议(上)
linux·运维·服务器·网络·http·单例模式·策略模式
国科安芯10 分钟前
星间光链路:AS32S601型抗辐射MCU在空间激光通信终端控制中的技术实现
服务器·网络·单片机·嵌入式硬件·物联网·安全·信息与通信
小稻穗26 分钟前
市场调研样本选型坐标系:2026六家国内样本平台能力横向校验
大数据·运维·数据分析
栩栩云生35 分钟前
AI 写代码犯的错,早被写进了错题集
linux·安全·ai编程
AOwhisky1 小时前
Python 学习笔记(第十三期)——运维自动化(下·前篇):远程命令执行——paramiko基础篇
运维·python·学习·云原生·自动化·运维开发·paramiko
AOwhisky1 小时前
Python 学习笔记(第十四期)——运维自动化(下·中篇):远程文件传输——paramiko进阶篇
运维·python·学习·云原生·自动化·文件传输·paramiko
imc.112 小时前
linux基础IO
linux·运维·服务器
躺不平的理查德2 小时前
让Ubuntu 的第二块网卡 ens37 永久固定为 192.168.30.111
运维·服务器
bitbrowser2 小时前
Facebook 验证反复回到原页面,应该从哪里排查
运维·服务器·facebook
Land03293 小时前
AI网页元素变化无法自动修复?自带元素自愈的自动化解决方案
运维·人工智能·ai·自动化·rpa