【Linux】 - openSSH升级

本文介绍如何通过升级OpenSSH版本来修复服务器上的多个高危漏洞,包括CVE-2020-15778、CVE-2021-28041等。在Ubuntu16.04.2LTS环境下,详细记录了从准备阶段到最终启动服务的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

升级原因

服务器openSSH 8.2 被扫描出多个高危漏洞,要打各种补丁或者升级,此处采用升级的方式修复。

漏洞影响版本
Openssh 命令注入漏洞(CVE-2020-15778)【低可信】影响OpenSSH:8.4p1以下版本(含)
OpenSSH 安全漏洞(CVE-2021-28041)【低可信】影响OpenSSH:8.2版本(含)到8.3版本
OpenSSH 输入验证错误漏洞(CVE-2020-12062)【低可信】影响OpenSSH:8.5以下版本

环境

  • Ubuntu 16.04.2 LTS
  • openSSH 8.2

升级步骤

  1. 准备

为了防止升级过程中无法登陆,可暂时开启telnet方式登录

$ sudo apt-get install openbsd-inetd
$ sudo apt-get install telnetd
$ sudo /etc/init.d/openbsd-inetd restart
# 查看 telnet服务是否开启
$ sudo netstat -a | grep telnet
# 创建一个非root账户
$ useradd tu
# 设置密码
$ passwd tu 
# 升级完之后删除用户 关闭telnet服务,一定要关闭哦
  1. 安装
# 1. 下载包
$ wget https://cloudflare.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.5p1.tar.gz
# 配置
$ ./configure --prefix=/usr/local/ --sysconfdir=/etc/ssh --with-pam --with-tcp-wrappers
# 编译
$ make
# 安装
$ make install
# 替换原有的sshd和ssh命令 (where ssh|sshd)
$ ln -s /usr/local/sbin/sshd  /usr/sbin/sshd
# 查看service注册的脚本地址 替换对应配置的位置
$ cat /lib/systemd/system/ssh.service
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
  1. 启动
# 校验sshd_config参数 根据结果更改配置文件
$ sshd -t
# 替换配置文件 将不支持的参数注释
$ sed -i 's/UsePrivilegeSeparation/# UsePrivilegeSeparation/g' /etc/ssh/sshd_config && \
sed -i 's/KeyRegenerationInterval/# KeyRegenerationInterval/g' /etc/ssh/sshd_config && \
sed -i 's/ServerKeyBits/# ServerKeyBits/g' /etc/ssh/sshd_config && \
sed -i 's/RhostsRSAAuthentication/# RhostsRSAAuthentication/g' /etc/ssh/sshd_config && \
sed -i 's/RSAAuthentication/# RSAAuthentication/g' /etc/ssh/sshd_config 
# 启动
service ssh restart
### 升级 OpenSSH 至 9.9p1 版本 为了在 bc-linux 上将 OpenSSH 升级到 9.9p1 版本,需遵循一系列特定的操作流程来确保系统的稳定性和安全性。 #### 准备工作 确保已备份重要数据并确认当前环境支持新版本的安装。建议先更新系统软件包列表以获取最新的依赖关系信息[^2]。 #### 下载 OpenSSH 源码 前往官方提供的下载页面 `Index of /pub/OpenBSD/OpenSSH/portable/` 获取所需版本的源文件,并将其保存至本地服务器。使用 wget 或 curl 工具可以方便地完成此操作: ```bash wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p1.tar.gz ``` #### 解压与进入目录 利用 tar 命令解压缩刚刚下载下来的归档文件,并切换到解压后的目录下继续后续步骤: ```bash tar xf openssh-9.9p1.tar.gz cd openssh-9.9p1 ``` #### 安装前准备 对于基于 RedHat 的发行版如 CentOS,在编译安装之前可能需要移除现有的 OpenSSH 软件包以免造成冲突。执行如下命令可实现这一点(注意这会删除现有 SSH 服务,请谨慎操作): ```bash yum remove openssh -y ``` #### 配置编译选项 根据实际需求调整配置参数,通常情况下默认设置已经足够满足大多数场景的要求。运行 configure 脚本来初始化构建过程: ```bash ./configure --prefix=/usr \ --sysconfdir=/etc/ssh \ --with-md5-passwords \ --with-pam \ --with-selinux \ --without-audit ``` #### 编译与安装 启动 make 进程开始编译源代码,完成后再次调用 make install 将生成的目标程序复制到相应位置: ```bash make && make install ``` #### 后续处理 重新加载或重启 sshd 服务使更改生效;验证新的 OpenSSH 是否正常运作以及监听端口状态是否正确无误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生如夏花般绚丽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值