Centos7系统ssh默认版本一般是OpenSSH7.4左右,低版本是有漏洞的而且是高危漏洞,在软件交付安全扫描上是过不了关的,一般情况需要升级OpenSSH的最新版

今天详细说下升级最新版本处理过程(认真看会发现操作简单,因为写的操作很详细…)

1、第一步通过telnetserver连接服务器

现在绝大多数服务器的操作连接基本都是走的SSH协议,也就是常用的22端口。在升级OpenSSH的过程中会卸载版本安装版本,也就意味着升级过程中如果出现了问题,你可能会永远连不上你的服务器了,最后只能重装系统(在客户服务器上踩过雷…)

如何避免这个问题呢,就是采用telnet协议(23端口)来连接服务器,这样在SSH升级过程失败也不会有影响,重来就完事了 ~

安装telnetserver服务

#telnet服务是由xinetd管理的,需要安装xinetd服务才能启动telnet-server
yum -y install telnet-server xinetd

#添加telnet配置文件
echo "service telnet
{
    flags        = REUSE
    socket_type    = stream        
    wait        = no
    user        = root
    server        = /usr/sbin/in.telnetd
    log_on_failure    += USERID
    disable        = no
}" > /etc/xinetd.d/telnet 

#启动xinetd
systemctl start xinetd

#开机自启xinetd开机自启最好加上,升级完成SSH之后。会有重启环节,为防止意外服务最好自启 后续升级完成再关闭就行)
systemctl enable xinetd

服务安装完成,创建用户用来登录telnet

#telnet本身拒绝root用户远程登录,最好用普通用户登录 然后suroot账户
#创建账号
useradd test
#设置密码
passwd  test

用telnet方式连接登录服务器

[root@jinzhi01 ~]# telnet 192.168.0.200
Trying 192.168.0.200...
Connected to 192.168.0.200.
Escape character is '^]'.

Kernel 3.10.0-862.el7.x86_64 on an x86_64
jinzhi01 login: test
Password: 
Last login: Sat Dec  2 22:44:45 from jinzhi01
[test@jinzhi01 ~]$ su
密码:
[root@jinzhi01 test]# 

这里telnet网络连接安装完成了,安全部分已经得到保障,后续所有操作 都可以在telnet连接下进行(你会发现和SSH协议 除了登录有点区别,操作都是一样的)

2、安装opensslzlib

升级OpenSSH需要安装最新版的opensslzlib

openssl地址icon-default.png?t=N7T8https://www.openssl.org/source/

zlib地址icon-default.png?t=N7T8https://www.zlib.net/OpenSSH: for OpenBSDOpenSSH for OpenBSDicon-default.png?t=N7T8https://www.openssh.com/openbsd.html下载安装

#进入源码存放目录
cd /usr/local/src/
#下载openssh最新安装包
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.5p1.tar.gz
#下载ssl
wget https://www.openssl.org/source/openssl-3.2.0.tar.gz --no-check-certificate
#下载zlib
wget https://www.zlib.net/zlib-1.3.tar.gz

安装zlib

cd /usr/local/src/
#解压文件
tar zxvf zlib-1.3.tar.gz
cd  zlib-1.3
#安装前置依赖
yum install gcc gcc-c++ make -y 
#编译安装zlib
./configure --prefix=/usr/local/zlib
make && make install

安装openssl

cd /usr/local/src/
#解压文件
tar zxvf openssl-3.2.0.tar.gz
cd openssl-3.2.0

#安装相应的前置依赖
yum install -y perl-CPAN perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker

#--prefix指定编译到的目录,"shared"作用生成动态链接库(即.so库)
./config  --prefix=/usr/local/ssl  --shared
#编译安装ssl,这个安装过程很长大概有10分钟左右
make && make install

#路径写入etc/ld.so.conf
echo '/usr/local/ssl/lib64' >> /etc/ld.so.conf

3、备份并卸载老版本OpenSSH

#备份ssh配置文件
cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
cp -p /usr/sbin/sshd /usr/sbin/sshd.bak
cp -p /usr/bin/ssh /usr/bin/ssh.bak
cp -p /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
cp -p /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub.bak


#停止ssh服务
systemctl stop sshd
#备份ssh文件
cp -r /etc/ssh /etc/ssh.old 



#查询原有ssh包并卸载
rpm -qa | grep openssh
openssh-7.4p1-23.el7_9.x86_64
openssh-clients-7.4p1-23.el7_9.x86_64
openssh-server-7.4p1-23.el7_9.x86_64
#根据查询结果,卸载原有OpenSSH包
yum  remove openssh-7.4p1-23.el7_9.x86_64

#再次查看已经没有rpm -qa | grep openssh

4、升级OpenSSH


cd /usr/local/src/
#解压
tar zxvf  openssh-9.5p1.tar.gz
cd openssh-9.5p1
#编译安装openssh 指明zlib路径和ssl路径
./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl
make && make install 

#ssh允许root登录、需要密码进行验证
echo 'PermitRootLogin yes' >>/usr/local/openssh/etc/sshd_config
echo 'PubkeyAuthentication yes' >>/usr/local/openssh/etc/sshd_config
echo 'PasswordAuthentication yes' >>/usr/local/openssh/etc/sshd_config

#将编译安装的新配置文件   拷贝到原路径cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config
cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd
cp /usr/local/openssh/bin/ssh /usr/bin/ssh
cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub


#拷贝启动脚本
cp -p contrib/redhat/sshd.init /etc/init.d/sshd
#给sshd添加执行权限
chmod +x /etc/init.d/sshd
#设置开机自启
systemctl enable sshd
#重新启动sshd服务
systemctl restart sshd
#查看sshd服务状态
systemctl status sshd
#查看ssh版本是否升级成功,可以看到已经是9.5版本了
ssh -V
OpenSSH_9.5p1, OpenSSL 3.2.0 23 Nov 2023

这里升级基本完成了,可以通过reboot重启服务器 用来校验相关的自启服务 ~

原文地址:https://blog.csdn.net/morecccc/article/details/134758892

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_31558.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注