OpenSSH漏洞修复(升级最新版本流程)

简介: 【5月更文挑战第27天】OpenSSH漏洞修复(升级最新版本流程)

本文仅针对CentOS7.8版本,其他版本未测试,安装包文件放置在/home/openssh目录下,某些命令包含此路径。

环境说明

# 系统版本
CentOS Linux release 7.8.2003 (Core)

# 当前OpenSSH版本
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017

依赖安装

在线安装

# X.用于编译zlib【亲测不用安装】可忽略
yum install gcc gcc-c++ make -y 

# 1.用于编译openssl【需要联网】
yum install perl-CPAN perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker -y

image.png

离线安装

# 1.【已下载】的26个依赖文件
perl-IPC-Cmd-0.80-4.el7.noarch.rpm
pyparsing-1.5.6-9.el7.noarch.rpm
gdbm-devel-1.10-8.el7.x86_64.rpm
perl-Test-Harness-3.28-3.el7.noarch.rpm
perl-ExtUtils-Manifest-1.61-244.el7.noarch.rpm
perl-version-0.99.07-6.el7.x86_64.rpm
perl-Perl-OSType-1.003-3.el7.noarch.rpm
perl-Module-Load-Conditional-0.54-3.el7.noarch.rpm
libdb-devel-5.3.21-25.el7.x86_64.rpm
perl-Module-Load-0.24-3.el7.noarch.rpm
perl-ExtUtils-MakeMaker-6.68-3.el7.noarch.rpm
perl-local-lib-1.008010-4.el7.noarch.rpm
perl-Data-Dumper-2.145-3.el7.x86_64.rpm
perl-Digest-1.17-245.el7.noarch.rpm
perl-Module-Metadata-1.000018-2.el7.noarch.rpm
perl-Digest-SHA-5.85-4.el7.x86_64.rpm
perl-Locale-Maketext-1.23-3.el7.noarch.rpm
perl-Params-Check-0.38-2.el7.noarch.rpm
perl-ExtUtils-ParseXS-3.18-3.el7.noarch.rpm
systemtap-sdt-devel-4.0-13.el7.x86_64.rpm
perl-devel-5.16.3-299.el7_9.x86_64.rpm
perl-ExtUtils-CBuilder-0.28.2.6-299.el7_9.noarch.rpm
perl-Locale-Maketext-Simple-0.21-299.el7_9.noarch.rpm
perl-ExtUtils-Install-1.58-299.el7_9.noarch.rpm
perl-Module-CoreList-2.76.02-299.el7_9.noarch.rpm
perl-CPAN-1.9800-299.el7_9.noarch.rpm

# 2.安装
rpm -ivh *.rpm

备份卸载

这里一定要注意,如果使用的是工具连接的服务器,此时最好多打开几个窗口,sshd服务停止之后旧连接可以使用但是无法建立新的连接,也可以安装telnet进行服务器连接(使用telnet后云服务器报恶意文件,查看之后都是telnet的用户创建的,能不用的话尽量还是不要用,毕竟又打开了一个可能遭遇暴力破解的端口)。

备份

# 1.停止ssh服务
systemctl stop sshd

# 2.备份ssh文件
cp -r /etc/ssh /etc/ssh.old
cp -p /usr/bin/ssh /usr/bin/ssh.bak
cp -p /usr/sbin/sshd /usr/sbin/sshd.bak
cp -p /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak

卸载旧版本

# 1.查询原有ssh包并卸载
rpm -qa | grep openssh
openssh-7.4p1-23.el7_9.x86_64
openssh-clients-7.4p1-23.el7_9.x86_64
openssh-server-7.4p1-23.el7_9.x86_64

# 2.卸载
rpm -e --nodeps openssh-7.4p1-23.el7_9.x86_64
rpm -e --nodeps openssh-clients-7.4p1-23.el7_9.x86_64
rpm -e --nodeps openssh-server-7.4p1-23.el7_9.x86_64

# 合并脚本
rpm -e --nodeps $(rpm -qa | grep openssh)

# 3.验证
rpm -qa | grep openssh

安装

zlib

直接下载或官网下载后上传zlib-1.3.1.tar.gz文件:

# 1.下载
wget https://zlib.net/current/zlib.tar.gz

# 2.解压文件
tar -zxvf zlib.tar.gz
cd  zlib-1.3.1

# 3.编译安装zlib
./configure --prefix=/usr/local/zlib
make && make install

ssl

直接下载或官网下载后上传openssl-3.2.0.tar.gz文件:

# 0.直接下载【根据版本需要进行下载】
wget https://www.openssl.org/source/old/3.2/openssl-3.2.0.tar.gz

# 1.解压文件
tar -zxvf openssl-3.2.0.tar.gz
cd openssl-3.2.0

# 2.编译安装
# --prefix指定编译到的目录 --shared作用是生成动态链接库(即.so库)
./config  --prefix=/usr/local/ssl  --shared
# 编译安装ssl【10分钟左右】
make && make install

# 3.路径写入etc/ld.so.conf  
# 这里有网友遇到过问题(32位系统兼容问题) 命令已修复从lib64改为lib 这样64位和32位置系统都能可以正常使用
echo '/usr/local/ssl/lib64' >> /etc/ld.so.conf
# echo '/usr/local/ssl/lib' >> /etc/ld.so.conf

# 4.刷新库文件
ldconfig -v

openssh

安装

直接下载或官网下载后上传openssh-9.7p1.tar.gz

# 0.直接下载【最新版本】注意跟下载后上传的版本不是一样的
wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/openssh-9.7.tar.gz

# 1.解压
tar -zxvf openssh-9.7p1.tar.gz
cd openssh-9.7p1

# 2.编译安装【3分钟左右】
./configure --prefix=/usr/local/ssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl
make -j 4 && make install
  • -j 4: 这是一个选项,用于指定同时执行的编译任务数(即并行度)。这里的数字 4 表示允许同时运行4个编译任务。启用多任务并行编译可以显著加快编译速度,特别是对于大型项目或具有多个相互独立模块的软件。通过使用 -j 参数,系统可以利用多核处理器的优势,同时处理多个编译任务,从而缩短整体编译时间。

    配置

    ```bash

    1.ssh允许root登录 需要密码进行验证

    echo 'PermitRootLogin yes' >> /usr/local/ssh/etc/sshd_config
    echo 'PubkeyAuthentication yes' >>/usr/local/ssh/etc/sshd_config
    echo 'PasswordAuthentication yes' >>/usr/local/ssh/etc/sshd_config

2.将编译安装的新配置文件拷贝到原路径下

cp /usr/local/ssh/bin/ssh /usr/bin/ssh
cp /usr/local/ssh/sbin/sshd /usr/sbin/sshd
cp /usr/local/ssh/bin/ssh-keygen /usr/bin/ssh-keygen
cp /usr/local/ssh/etc/sshd_config /etc/ssh/sshd_config
cp /usr/local/ssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub

3.拷贝启动脚本

cp -p /opt/openssh/openssh-9.7p1/contrib/redhat/sshd.init /etc/init.d/sshd

4.给sshd添加可执行权限

chmod +x /etc/init.d/sshd

5.设置开机自启

systemctl enable sshd

6.重新启动sshd服务

systemctl restart sshd

7.查看sshd服务状态

systemctl status sshd

8.查看ssh版本是否升级成功,可以查看到已经是9.5版本了

ssh -V
OpenSSH_9.7p1, OpenSSL 3.2.0 23 Nov 2023

至此新版本升级成功。感谢以下博主的分享:
[https://blog.csdn.net/morecccc/article/details/134758892](https://blog.csdn.net/morecccc/article/details/134758892)
[https://www.cnblogs.com/wjsqqj/p/17925907.html](https://www.cnblogs.com/wjsqqj/p/17925907.html)
# 脚本整理
```bash
# 1.依赖安装
rpm -ivh *.rpm

# 2.停止sshd服务
systemctl stop sshd

# 3.删除已安装的openssh
rpm -e --nodeps $(rpm -qa | grep openssh)

# 4.zlib安装
tar -zxvf zlib.tar.gz
cd zlib-1.3.1
./configure --prefix=/usr/local/zlib
make && make install

# 5.ssl安装
tar -zxvf openssl-3.2.0.tar.gz
cd openssl-3.2.0
./config  --prefix=/usr/local/ssl  --shared
make && make install
echo '/usr/local/ssl/lib64' >> /etc/ld.so.conf
ldconfig -v

# 6.openssh安装
tar -zxvf openssh-9.7p1.tar.gz
cd openssh-9.7p1
./configure --prefix=/usr/local/ssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl
make -j 4 && make install

# 7.ssh配置
echo 'PermitRootLogin yes' >> /usr/local/ssh/etc/sshd_config
echo 'PubkeyAuthentication yes' >>/usr/local/ssh/etc/sshd_config
echo 'PasswordAuthentication yes' >>/usr/local/ssh/etc/sshd_config

# 2.将编译安装的新配置文件拷贝到原路径下
cp /usr/local/ssh/bin/ssh /usr/bin/ssh
cp /usr/local/ssh/sbin/sshd /usr/sbin/sshd
cp /usr/local/ssh/bin/ssh-keygen /usr/bin/ssh-keygen
cp /usr/local/ssh/etc/sshd_config /etc/ssh/sshd_config
cp /usr/local/ssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub
cp -p /opt/openssh/openssh-9.7p1/contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
systemctl enable sshd
systemctl restart sshd
systemctl status sshd
目录
相关文章
有N个软件包未被升级
有N个软件包未被升级
302 0
|
监控 安全 Linux
系统漏洞修复:升级OpenSSH+OpenSSL
系统漏洞修复:升级OpenSSH+OpenSSL
2071 0
|
5月前
|
存储 JSON Linux
新版本ONLYOFFICE8.0下载+安装+使用+测评,真的强大了不少
新版本ONLYOFFICE8.0下载+安装+使用+测评,真的强大了不少
136 0
|
6月前
|
iOS开发 MacOS
macOS10.13.6及以下版本不能自动升级到更高版本的解决方案
macOS10.13.6及以下版本不能自动升级到更高版本的解决方案
1693 1
|
6月前
|
Ubuntu 网络协议 Linux
Ubuntu系统升级16.04升级18.04
Ubuntu系统升级16.04升级18.04
373 0
|
6月前
|
Ubuntu 安全 C语言
Ubuntu 升级系统版本的注意事项:分享一些在Ubuntu升级系统版本时需要注意的事项和建议
Ubuntu 升级系统版本的注意事项:分享一些在Ubuntu升级系统版本时需要注意的事项和建议
208 0
|
安全 Java Apache
【已修复Log4j2漏洞】GrayLog安全版本4.2.3升级实践
【已修复Log4j2漏洞】GrayLog安全版本4.2.3升级实践
498 0
【已修复Log4j2漏洞】GrayLog安全版本4.2.3升级实践
|
Ubuntu 数据可视化 数据安全/隐私保护
Ubuntu更换镜像源,更快升级和更新软件
Ubuntu更换镜像源,更快升级和更新软件
1875 0
Ubuntu更换镜像源,更快升级和更新软件
|
SQL 弹性计算 安全
WordPress4.9 最新版本网站安全漏洞详情与修复
wordpress 目前互联网的市场占有率较高,许多站长以及建站公司都在使用这套开源的博客建站系统来设计网站,wordpress的优化以及html静态化,深受google以及搜索引擎的喜欢,全世界大约有着百分之28的网站都在使用这套系统,国外,外贸网站,个人博客使用的最多。
228 0
WordPress4.9 最新版本网站安全漏洞详情与修复
下一篇
无影云桌面