一、概念简介

  • 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]

  • 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

5)安装OpenSSH

#安装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

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

6)修改ssh配置文件

#修改ssh配置文件,将#PermitRootLogin prohibit-password参数改成 PermitRootLogin yes 并取消注释,开启root权限登录
vim /etc/ssh/sshd_config

7)关闭selinux

#修改selinux配置参数,永久关闭selinux(重启后生效),也可vi /etc/selinux/config手动修改
sed -i.bak 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

#临时关闭selinux(使当前系统立即生效)
setenforce 0

8)重启OpenSSH

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

9)测试


SSH重开窗口连接服务器,查看是否可以正常登录。

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

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

Logo

华为云1024程序员节送福利,参与活动赢单人4000元礼包,更有热门技术干货免费学习

更多推荐