centos7升级OpenSSH 至 OpenSSH_8.6版本

一、概念简介

 

  • OpenSSH

       OpenSSH为SSH协议的免费开源实现,用来进行远程控制,或在计算机之间传送文件,可以有效防止远程管理过程中的信息泄露问题,通过SSH可以对所有传输的数据进行压缩、加密,能够防止DNS欺骗和IP欺骗,具有安全性高,传输快的优点。

       笔者整改网络安全漏洞时,使用的云虚拟机CentOS7自带的OpenSSH版本(OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017)漏扫出很多高风险漏洞,预采用升级处理(升至OpenSSH_8.6p1, OpenSSL 1.1.1g  21 Apr 2020),而升级OpenSSH需先升级OpenSSL(国际标准的加密及身份认证通信协议)。经升级整改后再漏扫复核,测得结果为:OpenSSH高危漏洞数为0,且未引入新漏洞(日期2021/5/8)。

 

二、升级操作:

 

  • 开启telnet备用远程连接,防止ssh意外中断后可采用备用控制渠道

 

1)安装telnet服务,用于远程控制处理ssh升级

防止SSH远程控制时,升级过程中出现连接中断,可通过telnet备用方式进行远程连接(由于telnet是明文传输,不安全,只作为临时使用,升级完成后,必须停止卸载该服务)

#安装telnet服务
yum -y install telnet-server
#启动telnet服务
systemctl start telnet.socket
#检测防火墙状态  
systemctl status firewalld
#开启防火墙23端口(若防火墙禁用的请略过该命令)
firewall-cmd --permanent --add-port=23/tcp --zone=public
firewall-cmd --reload
#默认情况下,linux不允许root用户以telnet方式登录linux主机,移除securetty文件
mv /etc/securetty{,.bak}

2)若ssh中断可采用telnet进行远程控制,进行处理ssh升级

#使用windows打开cmd窗口,使用telnet远程控制服务器,telnet命令没开启的请自行百度教程
telnet [服务器ip]

centos7升级OpenSSH 至 OpenSSH_8.6版本

 

  • OpenSSH升级

 

1)安装相关命令依赖 

#安装相关命令依赖 
yum install -y pam* zlib*

2)备份原SSH配置

#备份原ssh配置
mv /etc/ssh /etc/ssh_bak

3)停止并卸载原有的OpenSSH

systemctl stop sshd
#查看安装的ssh
rpm -qa | grep openssh
#卸载rpm安装的ssh
yum remove openssh*

4)安装升级OpenSSL

#安装OpenSSL(1.1.1g)
mkdir ./sshupdate
cd ./sshupdate
wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
tar -xzvf openssl-1.1.1g.tar.gz
cd openssl-1.1.1g
./config --prefix=/usr/ --openssldir=/usr/ shared
make && make install

#查看升级后的openssl版本
openssl version

centos7升级OpenSSH 至 OpenSSH_8.6版本

5)安装OpenSSH

笔者拉https://cdn.openbsd.org这个域名资源时,发现部分cdn加速节点有问题拉不下来,若出现笔者这种情况,可以使用源地址(非常慢)https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.6p1.tar.gz

#安装OpenSSH(8.6p1)
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.6p1.tar.gz
tar -xzvf openssh-8.6p1.tar.gz
cd openssh-8.6p1
./configure --with-zlib --with-ssl-dir --with-pam --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc/ssh
make && make install
cp contrib/redhat/sshd.init /etc/init.d/sshd
#查看升级后的ssh版本
ssh -V

centos7升级OpenSSH 至 OpenSSH_8.6版本

6)修改ssh配置文件

#修改ssh配置文件,将#PermitRootLogin prohibit-password参数改成 PermitRootLogin yes 并取消注释
vim /etc/ssh/sshd_config
#关闭selinux
sed -i.bak 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
setenforce 0

centos7升级OpenSSH 至 OpenSSH_8.6版本

7)重启OpenSSH

#重启OpenSSH
nohup service sshd restart
nohup systemctl restart sshd
#添加到自启动
chkconfig --add sshd

8)测试


SSH重开窗口连接服务器。

 

  • 卸载不安全的telnet备用远程连接

 

#卸载telnet服务
sudo yum remove telnet-server

 

 

上一篇:远程登陆Ubuntu


下一篇:CentOS7开启SSH服务