OpenSSH 安全漏洞(CVE-2020-14145)离线升级openssh9.3p1.tgz

 适用于centos7系统进行升级安装,主要针对无法连接互联网,无法使用yum命令的环境。

所需的程序和依赖离线包下载地址:

 openssh9.3升级离线包 :

https://www.aliyundrive.com/s/ju995tRYtnc
提取码:16sl

将离线包中的rpm文件夹拷贝到/var/opt路径下

 进入rpm文件夹,安装所有所需的rpm程序

cd /var/opt/rpm
rpm -Uvh  *.rpm  --nodeps  --force

配置telnet-server

升级openssh过程中,可能会因为网络不好或者其它一些原因导致ssh连接断开,通过ssh方式就无法再次连接服务器了,因此升级之前我们要配置好备用的远程连接方法,这里我们使用telnet-server来作为备用连接



# 启动telnet-server并设置开机自启动
systemctl start telnet.socket && systemctl enable telnet.socket

# 如果有防火墙,则需要放行23端口
firewall-cmd --zone=public --add-port=23/tcp --permanent

# 在使用 telnet 连接服务器时,默认是不允许使用root登陆的,因此需要创建一个普通用户并赋予sudo权限

# 添加普通用户并设置密码
useradd xiaozhi
echo 123456 | passwd --stdin xiaozhi

# 增加xiaozhi账号的sudo权限
chmod u+w /etc/sudoers

vi /etc/sudoers
xiaozhi ALL=(ALL)  NOPASSWD:ALL

# 上面配置完成后就可以在windows下的终端中使用telnet命令来测试连接
telnet 192.168.0.31 23

也可以直接用远程软件通过telnet的方式以及创建的用户名(xiaozhi)和密码(123456)连接服务器,确定备用远程可用再进行下面操作。

升级openssh

# 首先停止当前的ssh服务器
systemctl stop sshd


# 备份当前ssh服务
cp -a /etc/ssh /etc/ssh.bak
cp -a /usr/sbin/sshd /usr/sbin/sshd.bak
cp -a /usr/bin/ssh /usr/bin/ssh.bak


# 查看当前openssh的软件包
rpm -qa | grep openssh
openssh-clients-7.4p1-16.el7.x86_64
openssh-7.4p1-16.el7.x86_64
openssh-server-7.4p1-16.el7.x86_64


# 卸载这三个软件包
rpm -e `rpm -qa | grep openssh` --nodeps


# 解压源码包
tar -zxvf openssh-9.3p1.tar.gz
cd openssh-9.3p1


# 编译安装
./configure --prefix=/usr/local/openssh --with-ssl-dir=/usr/local/openssl --with-zlib
make
make install


# 配置启动脚本前先检查原来openssh的systemd配置文件,如果有则将其删除,防止和新的启动脚本冲突
# 正常情况下这些脚本都会在卸载老版本openssh的自动删除
ls /usr/lib/systemd/system/ssh*
rm -f /usr/lib/systemd/system/ssh*


# 拷贝启动脚本
cp contrib/redhat/sshd.init /etc/init.d/sshd


# 建立软连接
ln -s /usr/local/openssh/etc /etc/ssh
ln -s /usr/local/openssh/sbin/sshd /usr/sbin/
ln -s /usr/local/openssh/bin/* /usr/bin/


#重新加载reloda
systemctl daemon-reload

# 启动并设置开机自启动
systemctl start sshd && systemctl enable sshd


# 查看状态,已经是 running 状态了
systemctl status sshd

# 查看版本号已经升级成功
ssh -V
OpenSSH_9.3p1, OpenSSL 1.0.2k-fips  26 Jan 2017

# ssh的默认配置文件是禁止root用户远程登录的
# 若需要root用户远程登录,则按修改如下配置文件,然后重启ssh服务即可
vi /usr/local/openssh/etc/sshd_config


#在文件最后面添加下面内容
PermitRootLogin yes


#重启sshd
systemctl restart sshd


# ssh升级完成,测试ssh连接是否正常(有条件可以重启服务再测试ssh是否连接正常)
# 测试正常后就可以删除 telnet-server 和对应的用户了,删除步骤如下
systemctl stop telnet.socket
systemctl disable telnet.socket
rpm -e telnet-server

# 删除用户
userdel -r xiaozhi# 编辑sudo配置文件,去除对应配置段
vi /etc/sudoers

# 恢复sudo配置文件的权限
chmod u-w /etc/sudoers

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值