首页 > 系统相关 >Centos7,升级OpenSSH(亲测有效适用于小白)

Centos7,升级OpenSSH(亲测有效适用于小白)

时间:2024-08-03 18:26:03浏览次数:17  
标签:sshd p1 openssh openssl Centos7 于小白 usr OpenSSH root

项目场景:

OpenSSH 升级, OpenSSH 更新, OpenSSH 漏洞修复

漏洞信息:OpenSSH 命令注入漏洞(CVE-2023-51385)

以及日常运维升级openssh参考。


注意!!!,如果本机未安装telnet

建议打开多个SSH终端连接使用top避免设备断链,并安装telnet服务器,确保在SSH服务器升级异常时,可以通过telnet服务器远程连接,进行紧急问题修复处理。
在升级前一定要备份原有的配置文件,以防出现意外情况。

如是个人学习升级openssh,建议升级前拍摄快照。


问题描述

升级原设备openssh,有利于设备运行安全。

本文章用于修复OpenSSH命令注入漏洞(CVE-2023-51385)

该漏洞影响 Linux、macOS、BSD 以及其他操作系统上 OpenSSH 客户端和服务器实现的所有用户。由于 OpenSSH 是使用最广泛的 SSH 实现之一,因此影响相当广泛。

如果成功利用,该缺陷可能会被用来绕过身份验证并获得对运行易受攻击的 OpenSSH 版本的系统的未经授权的远程访问。攻击者可以发起进一步的攻击、升级权限、窃取数据等等。

升级前准备:

安装所需软件包,以及用于编译和安装从源代码构建的软件

yum install wget gcc openssl-devel pam-devel rpm-build zlib-devel -y

如出现一下内容为以及将所需软件包安装完成,无需再安装

若yum出现bug,后续会编写文章进行解决。


编译安装openssl:

下载编译openssl
#查询openssl版本信息命令
1.openssl version
#查询后显示本版信息为OpenSSL 1.几的版本后可跳过openssl安装
#两个下载连接都可下载,第二条连接禁用 SSL/TLS 证书验证。避免证书过期拉取不到软件包
2.
wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1t.tar.gz
wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1t.tar.gz --no-check-certificate

下载完成后,将软件包解压到以下目录下

3.tar xf openssl-1.1.1t.tar.gz -C /usr/local
#开始编译安装openssl
4.# 进入openssl目录
cd /usr/local/openssl-1.1.1t
# 编译安装openssl
./config shared --prefix=/usr/local/openssl
make -j 4
make install
为openssl创建软连接,
echo "/usr/local/openssl/lib/" >> /etc/ld.so.conf
# 加载配置文件
ldconfig
# 备份以前的openssl
mv /usr/bin/openssl /usr/bin/openssl.old
# 软连接,如果提示软连接已存在,记得备份软连接,然后在执行下面再次软连接,要不然会出问题,会导致root目录看不了,磁盘看不了,sftp连接不上;
ln -sv /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
#创建完成后使用
openssl version -a
#进行验证,查看本机ssl是否安装成功

对openssh进行升级操作

查看本机openssh当前安装的软件包,并卸载
[root@localhost ~]# rpm -qa | grep openssh
openssh-clients-7.4p1-21.el7.x86_64
openssh-7.4p1-21.el7.x86_64
openssh-server-7.4p1-21.el7.x86_64
# 查看当前OpenSSH版本(Centos7 默认使用OpenSSH_7.4p1)
[root@localhost ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
# 备份现有的SSH
[root@localhost ~]# mv /etc/ssh/ /etc/ssh.bak
[root@localhost ~]# mv /usr/bin/ssh /usr/bin/ssh.bak
[root@localhost ~]# mv /usr/sbin/sshd /usr/sbin/sshd.bak
# 如果您是第一次升级,备份/etc/init.d/sshd时会不存在,不影响后续操作
[root@localhost ~]# mv /etc/init.d/sshd /etc/init.d/sshd.bak
mv: 无法获取'/etc/init.d/sshd' 的文件状态(stat): No such file or directory
# 卸载现有OpenSSH
rpm -e --nodeps $(rpm -qa |grep openssh)

卸载现有OpenSSH后使用该命令再次查看是否卸载成功

没有内容视为下载完成

rpm -qa | grep openssh
下载编译openssh
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.6p1.tar.gz
编译安装openssh
# 将下载的openssh安装包移动到/usr/local下
[root@localhost ~]# mv openssh-9.6p1.tar.gz /usr/local/
# 进入/usr/local/目录解压openssh9.3
[root@localhost ~]# cd /usr/local/
[root@localhost local]# tar xf openssh-9.6p1.tar.gz
# 进入openssh目录
[root@localhost local]# cd openssh-9.6p1
# 编译安装
[root@localhost openssh-9.6p1]# CCFLAGS="-I/usr/local/include" \
LDFLAGS="-L/usr/local/lib64" \
./configure \
--sysconfdir=/etc/ssh \
--with-zlib \
--with-ssl-dir=/usr/local/openssl
[root@localhost openssh-9.6p1]# make -j 4
[root@localhost openssh-9.6p1]# make install
授权该目录权限
chmod 600 /etc/ssh/*
复制配置文件
[root@localhost openssh-9.6p1]# cp -rf /usr/local/sbin/sshd /usr/sbin/sshd
[root@localhost openssh-9.6p1]# cp -rf /usr/local/bin/ssh /usr/bin/ssh
[root@localhost openssh-9.6p1]# cp -rf /usr/local/bin/ssh-keygen /usr/bin/ssh-keygen
[root@localhost openssh-9.6p1]# cp -ar /usr/local/openssh-9.6p1/contrib/redhat/sshd.init /etc/init.d/sshd
[root@localhost openssh-9.6p1]# cp -ar /usr/local/openssh-9.6p1/contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
修改配置文件
# 修改配置允许root用户远程登录(允许使用密码登录,允许root远程登录,开启端口,赋予/etc/init.d/sshd权限)
cat >>/etc/ssh/sshd_config<<EOF
PermitRootLogin yes
X11Forwarding yes
PasswordAuthentication yes
KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,[email protected]
EOF

[root@localhost openssh-9.6p1]# sed -i "s/^#Port/Port/g" /etc/ssh/sshd_config
[root@localhost openssh-9.6p1]# chmod 755 /etc/init.d/sshd

启用sshd,生成服务配置文件,并重启服务

# 启用sshd,生成服务配置文件
[root@localhost openssh-9.6p1]# systemctl enable sshd
sshd.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig sshd on
# 重启服务
[root@localhost openssh-9.6p1]# systemctl restart sshd
# 查看服务状态
[root@localhost openssh-9.6p1]# systemctl status sshd

若执行service sshd start时出现以下错误

#执行即可解决
yum install openssh-server

验证是否升级openssh成功

 文章参考A-刘晨阳-CSDN博客

[root@localhost ~]# ssh -V
OpenSSH_9.6p1, OpenSSL 1.1.1t  7 Feb 2023

标签:sshd,p1,openssh,openssl,Centos7,于小白,usr,OpenSSH,root
From: https://blog.csdn.net/weixin_61753702/article/details/140846565

相关文章

  • centos7上dpdk绑定vfio-pci失败
    记一次使用dpdk中的报错:运行dpdk/usertools/dpdk-devbind.py-bvfio-pci02:05.0来绑定设备到vfio-pci时,报出了如下错误:Error:bindfailedfor0000:02:05.0-Cannotbindtodrivervfio-pci:[Errno19]NosuchdeviceError:unbindfailedfor0000:02:05.0-Cannot......
  • centos7 解决docker 拉取镜像错误 error pulling image configuration: download fai
    为什么会出现i/otimeout错误?i/otimeout错误主要是由于网络连接不稳定或者服务器响应慢导致的。当Docker尝试从镜像仓库拉取镜像时,如果在规定时间内没有得到响应,就会出现i/otimeout错误。“错误的根源在于网络连接和镜像仓库的响应速度” 解决方案:换源为了解决这个......
  • centos7 gcc+SCL升级
    1、环境说明[[email protected]]#gcc--versiongcc(GCC)4.8.520150623(RedHat4.8.5-44)Copyright(C)2015FreeSoftwareFoundation,Inc.Thisisfreesoftware;seethesourceforcopyingconditions.ThereisNOwarranty;not......
  • 执行`docker build -f ./dockerfile -t mycentos7:v1 .`时 `RUN yum install -y vim`
    执行dockerbuild-f./dockerfile-t时RUNyuminstall-yvim报错1.报错信息[+]Building0.9s(5/6)......
  • OpenSSH秘钥指纹图像生成算法
    OpenSSH秘钥指纹图像生成算法使用SSH秘钥生成时产生疑惑,它的randomartimage是如何生成的?下面进行了探索和研究引入生成位数为4096位的rsa公私钥ssh-keygen-trsa-b4096Generatingpublic/privatersakeypair.Enterfileinwhichtosavethekey(/root/.s......
  • OpenSSH升级到9.8脚本
    #!/bin/bash###########################################################Function:openssh-9.8p1update##Platform:Centos7.X##Version:2.0##Date......
  • 阿里云CentOS7.x ECS云盘在线扩容操作
    说明这里只介绍如何在线扩容操作系统:CentOS7.x以下操作实现给200G云盘扩容至300G;操作步骤创建快照找到需要扩容的云盘,创建快照,避免扩容出问题数据丢失,阿里云快照是收付费的,快照时长设置1天即可;操作比较简。磁盘创建快照创建快照配置截图(保留时间设置1天)在线扩容点......
  • VMWare设置桥接模式,CentOS7设置静态IP
    1、在VMWare中给虚拟机设置为桥接模式,如下图: 2、设置CentOS7静态IP(1)进入网络配置文件目录,命令如下:cd/etc/sysconfig/network-scripts/(2)查看网络配置文件(3)打开网络配置文件,命令如下:vimifcfg-ens33(4)参考以下对配置文件进行修改DEVICE=ens33#虚拟机网卡名......
  • 阿里云centos7运行yum命令出现网络不可达
    运行yumrepolistall|grepmysql出现https://download.docker.com/linux/centos/7/x86_64/stable/repodata/repomd.xml:[Errno14]curl#7-"Failedtoconnectto2a03:2880:f126:83:face:b00c:0:25de:Networkisunreachable"Tryingothermirror.https://......
  • Centos7.6升级Nginx到nginx-1.27.0
    Centos7.6升级Nginx到nginx-1.27.0 简介升级过程常见问题简介    Nginx更新到了1.27.0,为了系统的安全性将进行服务升级升级过程一、Nginx的卸载        升级前需要先卸载以前安装的版本1、yum的卸载>yumremovenginx同时还需要手动删除配置文......