Openssh漏洞升级修复

Openssh漏洞升级修复

  • 场景:
  • Openssh漏洞升级修复(适用于CentOS 6.7和6.8和6.9以及7.2和7.4等)
      • 通过主机扫描发现系统存在openssh漏洞,具体漏洞如下:
      • 升级注意事项 (一下所有的操作默认都是root或者管理员权限,如果遇到权限问题每个指令以及指令组合都要在前面加sudo)
          • 0.查看CentOS版本 1.cat /etc/issue 查看版本 2 . cat /etc/redhat-release 查看版本(推荐) 3.cat /proc/version 查看内核
          • 安装telnet服务
          • 安装xinetd服务
          • CentOS 6系列版本修改telnet配置文件(CentOS 7 以及以上版本跳过这一步)
          • CentOS 7系列版本通过下面四个指令 开启Telnet
          • 尝试用linux连接使用telnet连接是否成功,以后即可进行升级工作。
      • 升级openssh8.0
          • 1. 上传文件在下载好的openshh的文件在/usr/local/src 目录下(权限不足则放置在/home/目录下)
          • 2. 解压文件openssh-8.0p1.tar.gz
          • 3. cd 到openssh-8.0文件夹下
          • 4. 进行编译:(记得权限不足的话加sudo)
          • 5. 编译后输入`sudo make &&sudo make install`
          • 6. 查看是否升级成功:`ssh -V`
          • 7. 修改ssh配置文件
          • 8.重启sshd
          • 9. 利用linux连接工具连接测试是否能连接成功。
  • Linux升级Openssh版本
      • 0、升级背景:
      • 1、RPM搜索网站:
      • 2、升级有风险操作需谨慎(使用telnet兜底):
          • 1,离线包下载
          • 2,开始安装
          • 3,启动服务
          • 4,开始测试
      • 3、升级openSSH操作步骤:
          • 3.1准备OpenSSH升级包
          • 3.2准备升级脚本
          • 3.5下载openssh升级脚本(小编是手动下载上传的)
          • 3.6开始升级OpenSSH
          • 3.7升级结束

场景:

政府类项目上线,必然绕不开等保;什么?什么是等保?这里就不做解释了,先去百度看看吧;直入主题,测评中心扫描服务器漏洞时,扫出来了openSSH的‘安全漏洞’、‘远程代码执行漏洞’等等–>据了解,这是由于版本太低导致的。
Openssh漏洞升级修复_第1张图片
知道了原因,我们就开始升级吧!说是说升级,其实就是重新安装高版本openSSH(比如我选择的是openssh-7.9p1.tar.gz,原本是6.6)。




Openssh漏洞升级修复(适用于CentOS 6.7和6.8和6.9以及7.2和7.4等)

通过主机扫描发现系统存在openssh漏洞,具体漏洞如下:

OpenSSH sshd 安全漏洞(CVE-2015-8325)
OpenSSH 拒绝服务漏洞(CVE-2016-0778)
OpenSSH sshd 权限许可和访问控制漏洞(CVE-2015-5600)
OpenSSH sshd 安全漏洞(CVE-2016-6515)
OpenSSH 远程代码执行漏洞(CVE-2016-10009)
OpenSSH sshd 安全漏洞(CVE-2016-10010)
OpenSSH 安全漏洞(CVE2016-10009)
OpenSSH sshd 缓冲区错误漏洞(CVE-2016-10012)
OpenSSH J-PAKE授权问题漏洞(CVE-2010-4478)
OpenSSH‘hash_buffer’函数缓冲区溢出漏洞(CVE-2014-1692)
OpenSSH scp客户端安全漏洞(CVE-2018-20685)
OpenSSH 安全漏洞(CVE-2019-6109)
OpenSSH 安全漏洞(CVE-2019-6110)
OpenSSH 安全漏洞(CVE-2019-6111)
OpenSSH ……………………

升级注意事项 (一下所有的操作默认都是root或者管理员权限,如果遇到权限问题每个指令以及指令组合都要在前面加sudo)

0.查看CentOS版本 1.cat /etc/issue 查看版本 2 . cat /etc/redhat-release 查看版本(推荐) 3.cat /proc/version 查看内核

*指令尽量手敲!避免粘贴复制带来的空格或者换行或者制表符等输入!手敲一定要再三确认是否正确!

  1. 升级前对ssh文件进行备份 cp -r /etc/ssh /etc/ssh.old

  2. 升级过程未防止升级失败,需要先开启telnet服务,防止升级失败连接不上远程主机。

  3. 升级到openssh最新版本需要以下支持:

    • OpenSSL版本:目前OpenSSH8.0不支持OpenSSH1.1.x以上。否则编译的时候会报错。(openssl version 查看版本)

    • 没有openssl 直接yum install openssl

    • Zlib1.1.4或1.2.1.2或更高版本(rpm -q zlib rpm -q zlib-devel查看版本,zlib和zlib-devel都需满足)

    • 没有zlib的话,直接yum install zlib 和 yum install zlib-devel

    • gcc:因为编译需要gcc (gcc –v 查看gcc版本) 没有gcc 直接 yum install gcc

    • openssl-devel:编译时需要(rpm -qa|grep openssl 需存在openssl-devel-xxx.x86_64)

    • 没有的话直接yum install openssl-devel

    • 进行升级是需要对以上内容进行验证。

安装telnet服务
yum list |grep telnet 
yum install telnet-server.x86_64
安装xinetd服务
yum list |grep xinetd
yum install xinetd.x86_64
CentOS 6系列版本修改telnet配置文件(CentOS 7 以及以上版本跳过这一步)

vi /etc/xinetd.d/telnet (7以上版本很可能没这个文件)
Openssh漏洞升级修复_第2张图片

##### 由于默认centos不允许使用telnet登录,暂时修改为备份文件。 

sudo mv /etc/securetty  /etc/securetty.bak

运行telnet

service xinetd restart
CentOS 7系列版本通过下面四个指令 开启Telnet
systemctl enable telnet.socket  
systemctl start telnet.socket  
systemctl enable xinetd  
systemctl start xinetd

由于默认centos不允许使用telnet登录,暂时修改为备份文件。

mv /etc/securetty  /etc/securetty.bak
尝试用linux连接使用telnet连接是否成功,以后即可进行升级工作。

升级openssh8.0

1. 上传文件在下载好的openshh的文件在/usr/local/src 目录下(权限不足则放置在/home/目录下)
2. 解压文件openssh-8.0p1.tar.gz
tar –zxvf  openssh-8.0p1.tar.gz
3. cd 到openssh-8.0文件夹下
cd openssh-8.0p1
4. 进行编译:(记得权限不足的话加sudo)
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-privsep-path=/var/lib/sshd

编译出现以下问题

configure: error: no acceptable C compiler found in $PATH

问题解决:

yum install gcc
configure: error: * zlib.h missing - please install first or check config.log *

或者

configure: error: *** working libcrypto not found, check config.log

问题解决:yum install openssl openssl-devel -y 安装相关依赖包

修改一下文件权限(权限不足前加sudo,有时候第二个第三个无法执行无所谓,继续):

chmod 600 /etc/ssh/ssh_host_rsa_key

chmod 600 /etc/ssh/ssh_host_ecdsa_key

chmod 600 /etc/ssh/ssh_host_ed25519_key
5. 编译后输入sudo make &&sudo make install
6. 查看是否升级成功:ssh -V
7. 修改ssh配置文件

注意:默认是22端口,但是不能root直接登录。如果想直接使用root登录执行以下命令

echo "PermitRootLogin yes"  >>  /etc/ssh/sshd_config

vi /etc/ssh/sshd_config 修改 ,将 #Port 22前面的“#“ 删除 ,改为Port 22

8.重启sshd

centOS5和6用这个

 service sshd restart 

centOS7和8用

 systemctl restart sshd.service
9. 利用linux连接工具连接测试是否能连接成功。
  1. 能用ssh连接后卸载telnet服务,听说telnet没有ssh安全 ,一定是能用ssh连接后卸载telnet服务!

    这里很可能出现ssh openssh升级成功了但远程桌面(比如putty或者shell之类)没法登录的情况,只能通过本机ssh连接的情况。

    比如Access denied之类 这种情况可能因为修改了ssh加密方式或者某些文件没有随之更改导致的

    对于这种情况需要cat /etc/selinux/config 修改 SELINUX=enforcingSELINUX=disabled

    如果不想reboot还需设置

    setenforce 0
    
  2. 如果是能用Linux连接工具连接成功,先停用telnet服务 /etc/xinetd.d/telnet stop

    如果发现这一句不能用或者出现问题,直接跳过下面两个卸载

  3. 查看相关的telnet和xinetd版本

    rpm -qa |grep telnet
    
  4. 卸载telnet服务端(根据版本自己手敲):rpm –e telnet-server-0.17-48.el6.x86_64

  5. 卸载xinetd(根据版本自己手敲):rpm –e telnet-server.x86_64(如果嫌麻烦也可不卸载)

    如果是CentOS 6系列则vi /etc/xinetd.d/telnet,把之前修改的no再改回yes ,然后service xinetd restart

    如果是CentOS 7系列则 systemctl stop telnet.socket systemctl stop xinetd (权限不足别忘前加sudo)

    将修改后的securetty的文件修改过来

    mv  /etc/securetty.bak  /etc/securetty
    




Linux升级Openssh版本

0、升级背景:

通过漏洞扫描工具检测OpenSSH < 4.9“ForceCommand”指令绕过(CVE-2008-1657)、OpenSSH 用户名枚举漏洞(CVE-2018-15473),现要求修复该漏洞。

1、RPM搜索网站:

首先分享个免费实用的网站:https://crpm.cn/ 是一个RPM包搜索网站。

但是为什么要使用RPM包搜索网站呢?因为在Linux系统下安装工具和应用需要使用RPM包安装,使用RPM包搜索网站可以方便找到你需要RPM包。

而且不用登录就可以直接下载,没有各种限制。

它还里面还有各种系统的mirror源地址。并且提供了openssh最新的RPM包,方便升级openssh最新版本,解决openssh安全漏洞问题。

一个网站多个功能,特别的方便好用,并且支持中英文。

2、升级有风险操作需谨慎(使用telnet兜底):

1,离线包下载

(1)首先下载 telnet-client (或 telnet) 客户端软件包,这里我们下载 telnet-0.17-66.el7.x86_64.rpm 版本:

下载地址:http://www.rpmfind.net/linux/rpm2html/search.php?query=telnet
Openssh漏洞升级修复_第3张图片

(2)接着下载真正的 Telnet server 软件包,这里我们下载 telnet-server-0.17-66.el7.x86_64.rpm 版本:

下载地址:http://www.rpmfind.net/linux/rpm2html/search.php?query=telnet-server(x86-64)

Openssh漏洞升级修复_第4张图片
(3)由于 telnet-server 服务启动依赖 xinetd 服务,最后还要下载 xinetd 安装包,这里我们下载 xinetd-2.3.15-14.el7.x86_64.rpm 版本:

下载地址:http://www.rpmfind.net/linux/rpm2html/search.php?query=xinetd
Openssh漏洞升级修复_第5张图片

2,开始安装

(1)将下载下来的三个 rpm 包上传到服务器,
Openssh漏洞升级修复_第6张图片
Openssh漏洞升级修复_第7张图片

(2)首先执行如下命令安装 xinetd:

rpm -ivh xinetd-2.3.14-40.el6.x86_64.rpm

(3)接着执行如下命令安装客户端:

rpm -ivh telnet-0.17-64.el7.x86_64.rpm

(4)最后执行如下命令安装服务端:

rpm -ivh telnet-server-0.17-64.el7.x86_64.rpm

Openssh漏洞升级修复_第8张图片

(5)安装后可以执行如下命令查看是否安装成功:

rpm -qa | grep telnet
rpm -qa | grep xinetd

Openssh漏洞升级修复_第9张图片

3,启动服务

(1)telnet 服务默认是不开启的,编辑 telnet 配置文件:

vi /etc/xinetd.d/telnet

(2)将文件中 disable = yes 修改为 disable = no(如果 telnet文件不存在也没关系,我们直接创建,文件内容如下):

service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server =/usr/sbin/in.telnetd
log_on_failure += USERID
disable = no
}

(3)执行如下命令启动 telnet 依赖的 xinetd 服务:

systemctl start xinetd

(4)接着执行如下命令查看 xinetd 是否启动:

ps -ef |grep xinetd

在这里插入图片描述

4,开始测试

(1)执行如下 telnet 命令:
Openssh漏洞升级修复_第10张图片

3、升级openSSH操作步骤:

3.1准备OpenSSH升级包

Centos6系统

wget  http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-8.8p1-1.el6.x86_64.rpm
wget  http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-askpass-8.8p1-1.el6.x86_64.rpm
wget  http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-askpass-gnome-8.8p1-1.el6.x86_64.rpm
wget  http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-clients-8.8p1-1.el6.x86_64.rpm
wget  http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-server-8.8p1-1.el6.x86_64.rpm

Centos7系统

wget  http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-8.8p1-1.el7.centos.x86_64.rpm
wget  http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-askpass-8.8p1-1.el7.centos.x86_64.rpm
wget  http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-askpass-gnome-8.8p1-1.el7.centos.x86_64.rpm
wget  http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-clients-8.8p1-1.el7.centos.x86_64.rpm
wget  http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-server-8.8p1-1.el7.centos.x86_64.rpm

Centos8系统

wget  http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-8.8p1-1.el8.x86_64.rpm
wget  http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-clients-8.8p1-1.el8.x86_64.rpm
wget  http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-server-8.8p1-1.el8.x86_64.rpm
3.2准备升级脚本

http://mirrors.crpm.cn/openssh/x86_64/Packages/update-ssh.sh
3.3查看版本(Centos7系统为例)
在这里插入图片描述

3.4下载升级包(也可以上crpm.cn搜索rpm包)

wget  http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-8.8p1-1.el7.centos.x86_64.rpm
wget  http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-askpass-8.8p1-1.el7.centos.x86_64.rpm
wget  http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-askpass-gnome-8.8p1-1.el7.centos.x86_64.rpm
wget  http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-clients-8.8p1-1.el7.centos.x86_64.rpm
wget  http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-server-8.8p1-1.el7.centos.x86_64.rpm

小编这里是内网升级所以下载好后手动上传的

Openssh漏洞升级修复_第11张图片

3.5下载openssh升级脚本(小编是手动下载上传的)
 wget http://mirrors.crpm.cn/openssh/x86_64/Packages/update-ssh.sh
3.6开始升级OpenSSH
bash update-ssh.sh

Openssh漏洞升级修复_第12张图片

3.7升级结束

Openssh漏洞升级修复_第13张图片







Baimai

Openssh漏洞升级修复(适用于CentOS 6.7和6.8和6.9以及7.2和7.4等)

公众号:释然IT杂谈
微信号:ShiRan_IT
功能介绍:
本公众号专注于分享网络工程(思科、华为),系统运维(Linux)、以及安全等方面学习资源,以及相关技术文章、学习视频和学习书籍等。期待您的加入~~~关注回复“724”可领取免费学习资料(含有书籍)。

Linux升级Openssh版本

你可能感兴趣的:(公开,运维,运维,linux)