您的位置:首页 > 房产 > 家装 > 100件环保创意产品设计_石家庄快速网站搭建_白银网站seo_微博营销成功案例8个

100件环保创意产品设计_石家庄快速网站搭建_白银网站seo_微博营销成功案例8个

2025/1/15 15:08:46 来源:https://blog.csdn.net/weixin_50902636/article/details/144971485  浏览:    关键词:100件环保创意产品设计_石家庄快速网站搭建_白银网站seo_微博营销成功案例8个
100件环保创意产品设计_石家庄快速网站搭建_白银网站seo_微博营销成功案例8个

rpmbuild入门知识
openssh/ssl二进制升级


文章目录

  • 前言
  • 一、资源准备
    • 1.下载openssh、openssl二进制包
    • 2.安装rpmbuild工具
    • 3.拷贝源码包到SOURCES目录下
    • 4.系统开启telnet,防止意外导致shh无法连接
    • 5.编译工具安装
    • 6.补充说明
  • 二、制作 OpenSSL RPM 包
    • 1.编写 SPEC 文件
    • 2.验证 SPEC 文件
    • 3.执行构建命令
    • 4.查看构建完成的rpm包
  • 三、通过RPM包更新 OpenSSL
    • 1.检查并备份旧openssl相关文件
    • 2.卸载旧版本openssl
    • 3.安装新版openssl
    • 4.验证openssl版本


前言

2025年第一个漏洞登场,系统中目前在使用的是OpenSSH_7.4p1, OpenSSL 1.0.2k-fips,然后就收到了漏扫团队的邮件,说该版本的openssh存在Openssh存在远程代码执行漏洞(CVE-2024-6387),因此需要升级到7.9版本及以上。在2024年8月份也写过一篇通过二进制方式升级openssh的文章,也就是顶部的第二篇文章,但是过程比较繁琐。本次将使用rpmbuild的知识,将源码包构建为RPM包形式,实现一键部署升级,提高效率。


一、资源准备

系统 centos_7.6、x86架构
在这里插入图片描述

oldnew
openssh_7.4p1openssh_9.8p1
OpenSSL 1.0.2k-fipsopenssl-1.1.1s

1.下载openssh、openssl二进制包

1、下载openssh源码包
[root@localhost ~]# wget  https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz
--2025-01-06 11:02:15--  https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz
Resolving cdn.openbsd.org (cdn.openbsd.org)... 146.75.115.52, 2a04:4e42:15::820
Connecting to cdn.openbsd.org (cdn.openbsd.org)|146.75.115.52|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1910393 (1.8M) [application/octet-stream]
Saving to: ‘openssh-9.8p1.tar.gz’38% [=========================================>               729,088     49.9KB/s  eta 22s2、下载openssl源码包
[root@localhost ~]# wget https://github.com/openssl/openssl/archive/refs/tags/OpenSSL_1_1_1s.tar.gz

2.安装rpmbuild工具

[root@localhost ~]# yum install -y rpm-build
[root@localhost ~]# yum install rpmdevtools
[root@localhost ~]# yum install rpmlint -y #spec文件检查工具
[root@localhost ~]# vim /root/.rpmmacros
%_topdir /export/rpmbuild  #/root/.rpmmacros文件是存储各种宏定义,比如_topdir宏的值来自定义打包路径

创建rpmbuild目录

[root@localhost ~]# cd /export/
[root@localhost /export]# rpmdev-setuptree
[root@localhost /export]# cd rpmbuild && ls
BUILD  RPMS  SOURCES  SPECS  SRPMS

在这里插入图片描述

3.拷贝源码包到SOURCES目录下

[root@localhost ~]# mv openssh-9.8p1.tar.gz /export/rpmbuild/SOURCES
[root@localhost ~]# mv OpenSSL_1_1_1s.tar.gz /export/rpmbuild/SOURCES

在这里插入图片描述

4.系统开启telnet,防止意外导致shh无法连接

[root@localhost ~]# yum install -y telnet-server
[root@localhost ~]# yum install -y telnet
[root@localhost ~]# yum install -y xinetd #也可以不装
[root@localhost ~]# systemctl start telnet.socket && systemctl start xinetd.service#因为默认情况下系统是不允许root用户telnet远程登录的。如果要使用root用户直接登录,需设置如下内容
[root@localhost ~]# echo  'pts/0'  >> /etc/securetty 
[root@localhost ~]# echo  'pts/1'  >> /etc/securetty#开启telnet连接
[root@localhost ~]# telnet localhost
输入用户名
输入密码
完成登录

在这里插入图片描述

5.编译工具安装

[root@localhost ~]# yum install -y gcc make  gcc-c++ perl perl-WWW-Curl

至此,前期资源准备完成

6.补充说明

1、OpenSSH-9.8p1依赖OpenSSL-1.1.1及以上版本, 因此需要先升级openssl2、OpenSSH-8.6后默认为不允许root登录3、较新版本的CentOS7中 pam_stack.so模块已经被弃用删除, 请备份 /etc/pam.d/sshd4、默认允许使用PAM登录认证;5、默认允许使用X11Forwarding图形模块;6、需修改ssh_host_rsa_key、ssh_host_ecdsa_key、ssh_host_ed25519_key这三个文件的权限,OpenSSH-8.6之后缩小了这三个文件的权限为0600, 大于该权限将会导致SSHD启动失败

二、制作 OpenSSL RPM 包

1.编写 SPEC 文件

代码如下(示例):

Name:       openssl
Version:    1.1.1s
Release:    1%{?dist}
Summary:    Utilities from the general purpose cryptography library with TLS implementation
Group:      System Environment/Libraries
License:    GPLv2+
URL:        https://www.openssl.org/
Source0:    https://www.openssl.org/source/%{name}-%{version}.tar.gz
BuildRequires:  make gcc perl perl-WWW-Curl
Requires:   %{name} = %{version}-%{release}
BuildRoot:  %_topdir/BUILDROOT%global openssldir /usr/openssl%description
The OpenSSL toolkit provides support for secure communications between
machines.%package devel
Summary: Secure Sockets Layer and cryptography static libraries and headers
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
%description devel
The OpenSSL devel tool%prep
%setup -q%build
./config --prefix=%{openssldir} --openssldir=%{openssldir}
make %{?_smp_mflags}%install
[ "%{buildroot}" != "/" ] && %{__rm} -rf %{buildroot}
%make_install
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_libdir}
ln -sf %{openssldir}/lib/libssl.so.1.1 %{buildroot}%{_libdir}
ln -sf %{openssldir}/lib/libcrypto.so.1.1 %{buildroot}%{_libdir}
ln -sf %{openssldir}/bin/openssl %{buildroot}%{_bindir}# 安装man手册
mkdir -p %{buildroot}%{_mandir}/man1
cp -p man/man1/openssl.1 %{buildroot}%{_mandir}/man1/%clean
[ "%{buildroot}" != "/" ] && %{__rm} -rf %{buildroot}%files
%{openssldir}
%defattr(-,root,root)
%{_bindir}/openssl
%{_libdir}/libcrypto.so.1.1
%{_libdir}/libssl.so.1.1
%{_mandir}/man1/openssl.1   # 确保man页面文件被列出%files devel
%{openssldir}/include/*
%defattr(-,root,root)%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig

2.验证 SPEC 文件

代码如下(示例):

errors为0则验证通过

[root@localhost SPECS]# rpmlint openssl.spec 
openssl.spec: W: invalid-url Source0: https://www.openssl.org/source/openssl-1.1.1s.tar.gz <urlopen error ('_ssl.c:602: The handshake operation timed out',)>
0 packages and 1 specfiles checked; 0 errors, 1 warnings.

3.执行构建命令

[root@localhost SPECS]# rpmbuild  -D "version 1.1.1s" -ba openssl.spec

在这里插入图片描述
在这里插入图片描述

4.查看构建完成的rpm包

在这里插入图片描述
注意事项: 上述 SPEC文件只构建了 openssl,openssl-devel和openssl-debuginfo三个包, 而且 更新之后 man openssl 会提示找不到手册,对比网上其他的SPEC文件少了很多内容,总之不影响使用

三、通过RPM包更新 OpenSSL

1.检查并备份旧openssl相关文件

[root@localhost SPECS]#  whereis openssl
openssl: /usr/bin/openssl /usr/lib64/openssl /usr/include/openssl  /usr/share/man/man1/openssl.1ssl.gz

找到几个就备份几个

[root@localhost SPECS]# cp -rp /usr/bin/openssl  /usr/bin/openssl.old
[root@localhost SPECS]# cp -rp /usr/lib64/openssl /usr/lib64/openssl.old
[root@localhost SPECS]# cp -rp /usr/include/openssl  /usr/include/openssl.old
[root@localhost SPECS]# cp -rp /usr/share/man/man1/openssl.1ssl.gz /usr/share/man/man1/openssl.1ssl.gz.old

2.卸载旧版本openssl

[root@localhost SPECS]# rpm -e openssl --nodeps

3.安装新版openssl

升级openssl注意事项

1、只需要升级 openssl-1.1.1s 
2、openssl-devel可以不升级
3、openssl-libs 切记不能升级

升级

[root@localhost SPECS]# rpm -ivh ../RPMS/x86_64/openssl-1.1.1s-1.el7.x86_64.rpm --nodeps
准备中...                          ################################# [100%]
正在升级/安装...1:openssl-1.1.1s-1.el7             ################################# [100%]

在这里插入图片描述

4.验证openssl版本

在这里插入图片描述
至此,openssl升级完成.紧接着下篇文章升级openssh


版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com