IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> centos7升级openssh至openssh8.7.p1 -> 正文阅读

[系统运维]centos7升级openssh至openssh8.7.p1

背景概要

OpenSSH(OpenBSD Secure Shell)是 Openbsd 计划组的一套用于安全访问远程计算机 的连接工具。该工具是 SSH 协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。
OpenSSH 8.3p1 及之前版本中的 scp 的 scp.c 文件存在操作系统命令注入漏洞。该漏洞 源于外部输入数据构造操作系统可执行命令过程中,网络系统或产品未正确过滤其中的特殊 字符、命令等。攻击者可利用该漏洞执行非法操作系统命令。
绿盟对我司的服务器进行漏洞扫描,扫描漏洞说明centos7系统本身自带的openssh服务版本过低,openssh也会暴露出openssl相关漏洞,所以要升级centos系统openssl及openssh服务修复漏洞。

注意事项

由于升级openssh9.0.p1会影响到当前堡垒机的兼容性,目前需要升级到openssh8.7.p1

修复建议

1、官方下载链接:https://www.openssh.com/openbsd.html
阿里云镜像下载链接:https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/
2、升级前,建议通过白名单方式,先打开 TELET 端口,避免升级 OPENSSH 失败 无法连接服务器 3、升级需要做好 openssh 备份

系统版本信息

当前版本:OpenSSH_6.6.1p1
更新版本:OpenSSH_8.7p1
在这里插入图片描述

修复准备(telnet使用说明)

# 防止ssh中断无法登录的情况
#查看是否安装telnet服务
yum list telnet*
yum list xinetd

#安装Telnet服务并配置
yum -y install telnet telnet-server xinetd

#启动telnet服务
systemctl restart xinetd
systemctl restart telnet.socket

#查看telnet端口是否开启
rpm -ivh nmap-6.40-19.el7.x86_64
nmap 127.0.0.1
#23/tcp   open  telnet

#尝试telnet
telnet ip 23

# telnet: connect to address ip: No route to host是防火墙的问题
# 查看防火墙某个端口是否打开
firewall-cmd --query-port=23/tcp
#查看已开启的防火墙端口
firewall-cmd --zone=public --list-ports
# 解决方法:开放服务器的23端口
firewall-cmd --permanent --add-port=23/tcp
firewall-cmd --reload
# 关闭防火墙某个端口
firewall-cmd --permanent --remove-port=23/tcp

#关闭telnet服务
systemctl stop xinetd
systemctl stop telnet.socket

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

修复进行时

1.下载openssh-8.7.1压缩包

cd /home/runtrend/       # 进入到用户目录下     
wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-8.7p1.tar.gz   #下载openssh-8.7版本
# 没有wget的话就yum install -y wget

2.安装基础依赖包

yum install distro-sync rpm-build zlib-devel openssl-devel gcc perl-devel pam-devel xmkmf libXt-devel gtk2-devel make -y

3.备份旧版本的openssh,这里推荐两个备份都进行(备份系统原ssh相关命令)

备份一:
cp /usr/bin/ssh /usr/bin/ssh_bak
cp /usr/sbin/sshd /usr/sbin/sshd_bak
cp /etc/ssh/sshd_config /etc/ssh/sshd_config_bak

备份二:
mkdir /usr/bin/sshbak7.4/
mkdir /usr/sbin/sshbak7.4/
mkdir /usr/libexec/opensshbak7.4/
mv /usr/libexec/openssh/sftp-server  /usr/libexec/opensshbak7.4/
mv /usr/bin/ssh-copy-id /usr/bin/sshbak7.4/
mv /usr/bin/ssh-add /usr/bin/sshbak7.4/
mv /usr/bin/ssh-agent /usr/bin/sshbak7.4/
mv /usr/bin/ssh-keygen /usr/bin/sshbak7.4/
mv /usr/bin/ssh-keyscan /usr/bin/sshbak7.4/
mv /usr/bin/scp /usr/bin/sshbak7.4/
mv /usr/bin/sftp /usr/bin/sshbak7.4/
mv /usr/bin/ssh /usr/bin/sshbak7.4/
mv /usr/sbin/sshd /usr/sbin/sshbak7.4/

4.开始编译安装新版本的openssh

编译安装说明
# --prefix=PREFIX        #安装到哪个路径,默认[/usr/local]
# --sysconfdir=DIR        #配置路径,默认[PREFIX/etc] 
# --mandir=DIR           #帮助文档路径
# -with-md5-passwords    #开启使用MD5的密码
# --with-zlib=PATH        #指定zlib的安装路径
# --with-ssl-dir=PATH     #指定openssl的安装路径

tar -zxvf openssh-8.7p1.tar.gz
cd openssh-8.7p1
./configure --prefix=/usr/local/openssh8.7 --sysconfdir=/etc/ssh8.7/ --with-md5-passwords --mandir=/usr/share/man --with-zlib --with-pam --with-ssl-dir=/usr/local/openssl
make && make install

5.查看编译安装是否成功

/usr/local/openssh8.7/bin/ssh -V    或者 ssh -V 
# 如果使用的是第一种备份,ssh -V不会报错
# ssh -V:OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013
# /usr/local/openssh8.7/bin/ssh -V:OpenSSH_8.7p1, OpenSSL 1.0.2k-fips  26 Jan 2017
# 如果使用的是第二种备份,ssh -V是错误的
# /usr/local/openssh8.7/bin/ssh -V:OpenSSH_8.7p1, OpenSSL 1.0.2k-fips  26 Jan 2017

6.替换ssh命令与常用工具

cd /home/runtrend/openssh-8.7p1/     ##编译包解压的目录
# 如果是备份一的话,需要复制这些文件需要被覆盖掉,备份二的话不需要
cp -p sftp-server  /usr/libexec/openssh/
cp contrib/ssh-copy-id /usr/bin/ssh-copy-id
cp -p /usr/local/openssh8.7/bin/* /usr/bin/
cp -p /usr/local/openssh8.7/sbin/* /usr/sbin/

7.在这里在输入ssh -V就可以了

8.SSH重启之前可以先测试配置文件是否有问题,防止重启SSH失败,远程连接断了,如果是本地终端连接可以直接重启

/usr/local/openssh8.7/sbin/sshd -t -f /etc/ssh/sshd_config 

9.配置文件错误解决
在这里插入图片描述

当遇到文件权限错误的时候,说明秘钥文件权限太开放,修改秘钥的权限
chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
chmod 600 /etc/ssh/ssh_host_ed25519_key

在这里插入图片描述

# 然后还有一个说要修改配置文件的问题,将这个提示注销掉就可以了(不修改也是可以的,不会有报错)
vi /etc/ssh/sshd_config
# 注释掉这三行
# GSSAPIAuthentication yes
# GSSAPICleanupCredentials no
# UsePrivilegeSeparation sandbox		# Default for new installations.

在这里插入图片描述

当遇到错误的SSH2密码规范时,需要使用ssh -Q cipher 或者ssh -Q mac来修改
# /etc/ssh/sshd_config line 155: Bad SSH2 cipher spec 'aes128-ctr,aes192-ctr'
#/etc/ssh/sshd_config line 156: Bad SSH2 mac spec 'hmac-sha1,hmac-ripemd160'.
#这里的内容表示是最后面添加的MACs的内容有错误,可能是ssh版本不一致或者是什么导致的,我们要修改的就是这段内容
#如果sshd -T提示的错误是 Bad SSH2 mac spec,就使用ssh -Q mac查看然后修改Macs的内容
#如果错误是Bad SSH2 cipher spe,就使用ssh -Q cipher,然后修改配置文件中的cipher的内容
#将查出来的内容新增到后面就好了,下面的是我的服务器的密码规范
Ciphers 3des-cbc,aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com
MACs hmac-sha1,hmac-sha1-96,hmac-sha2-256,hmac-sha2-512,hmac-md5,hmac-md5-96,umac-64@openssh.com,umac-128@openssh.com,hmac-sha1-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-md5-etm@openssh.com,hmac-md5-96-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com

10.重启sshd服务

cp /home/runtrend/openssh-8.7p1/contrib/redhat/sshd.init /etc/init.d/sshd    #复制ssh的启动程序
systemctl daemon-reload              #重启守护进程服务
systemctl enable sshd.service        #将sshd设置为开机自启动状态
systemctl restart sshd.service       #重启sshd服务
systemctl status sshd.service        #查看sshd服务状态

在这里输入ssh -V就可以看到openssh已经更新到最新版本了,到这里就结束啦。

到这里要关闭掉telnet服务,关闭方法请看上面“修复准备”

完结撒花^_^

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-24 18:35:01  更:2022-05-24 18:37:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:52:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码