当前位置: 首页 > news >正文

CentOS 7.6 升级 Openssl 及 Openssh 方法文档

1、上传相关安装包至服务器

环境准备

1.上传软件包至/root/soft 目录下

2.服务开启外网,安装依赖包需要使用

2、安装依赖包

2.1.安装新版 perl

检测服务器当前 perl 包版本

perl -v

安装 5.40.0 版本的 perl

cd /root/soft

tar zxvf perl-5.40.0.tar.gz

cd perl-5.40.0/

./Configure -des -Dprefix=/usr/local/perl -Dusethreads -Uversiononly

make && make install

替换老版本 perl 命令

cd /usr/bin

mv perl perl.old #把原来的 perl 更名为 perl.old,弃用。

ln -s /usr/local/perl/bin/perl /usr/bin/perl #做一个软链接,使用新的 perl

验证安装完成

perl -v

2.2.安装其他依赖包

配置 yum

cd /etc/yum.repos.d/

mkdir bk

mv *.repo bk

sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

安装依赖包

yum -y install pam-devel tcp_wrappers tcp-wrappers-devel gcc gcc-c++ glibc make

autoconf openssl-devel zlib-devel

3、升级 Openssl 3.3.2

检查服务器当前 openssl 版本

openssl version

OpenSSL 1.0.2k-fips 26 Jan 2017

查看当前 openssl 相关文件路径

whereis openssl

备份当前 openssl 相关文件

mv /usr/bin/openssl /usr/bin/openssl.old

mv /usr/include/openssl /usr/include/openssl.old

卸载当前 openssl

yum remove openssl

编译安装 openssl3.3.2 版本

cd /root/soft

tar zxvf openssl-3.3.2.tar.gz

cd openssl-3.3.2/

./config shared zlib --prefix=/usr/local/openssl --openssldir=/usr/local/openssl

make

make install

创建新版本链接

ln -s /usr/local/openssl/bin/openssl /usr/bin/ln -s /usr/local/openssl/lib64/libssl.so.3 /usr/lib64/

ln -s /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib64/

ln -s /usr/local/openssl/include/openssl /usr/include/openssl

重新编译 lib

echo "/usr/local/openssl/lib64" >> /etc/ld.so.conf.d/ssl.conf

ldconfig -v

验证 openssl 版本

openssl version

OpenSSL 3.3.2 3 Sep 2024 (Library: OpenSSL 3.3.2 3 Sep 2024)

4、升级 Openssh 9.8p1

4.1.安装 telnet 工具

安装 telnet

yum install telnet* -y

systemctl start telnet.socket

systemctl enable telnet.socket

临时关闭安全登录,否则无法进行远程 telnet 连接,升级完成后需要改回来

mv /etc/securetty /etc/securetty.bak

有防火墙记得关闭防火墙,并关闭 SELinux

firewall-cmd --state

systemctl stop firewalld.service

测试 telnet 远程登录

telnet 192.168.101.198

4.2.通过 telnet 登录升级 openssh

##使用 telnet 远程登录,是为了防止 sshd 服务升级失败,远程连不上服务器

telnet IP 地址

检查服务器当前 openssh 版本

ssh -v

OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017

查看当前 openssh 相关文件路径

where is openssh

备份 openssh 配置文件

mv /etc/ssh /etc/ssh.bak

mv /usr/bin/ssh /usr/bin/ssh.bak

mv /usr/sbin/sshd /usr/sbin/sshd.bak

备份 pam 验证文件

mv /etc/pam.d/sshd /etc/pam.d/sshd.old

卸载旧的 openssh 软件包

yum remove openssh

4.3.编译安装 openssh9.8p1

编译安装

cd /root/soft

tar zxvf openssh-9.8p1.tar.gz

cd openssh-9.8p1/

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam

--with-tcp-wrappers --with-ssl-dir=/usr/local/openssl/ --without-hardening --with-zlib

make && make install

创建启动脚本

cp contrib/redhat/sshd.init /etc/init.d/sshd

配置 PAM 模块

vi /etc/pam.d/sshd

#%PAM-1.0

auth                        required                         pam_sepermit.so

auth                        substack                         password-auth

auth                        include                            postlogin

# Used with polkit to reauthorize users in remote sessions

-auth                         optional                         pam_reauthorize.so prepare

account                    required                         pam_nologin.so

account                    include                          password-auth

password                 include                          password-auth

# pam_selinux.so close should be the first session rule

session                         required                 pam_selinux.so close

session                         required                 pam_loginuid.so

# pam_selinux.so open should only be followed by sessions to be executed in the

user context

session                         required                 pam_selinux.so open env_params

session                         required                 pam_namespace.so

session                         optional                 pam_keyinit.so force revoke

session                         include                 password-auth

session                         include                 postlogin

# Used with polkit to reauthorize users in remote sessions

-session                 optional                 pam_reauthorize.so prepare

还原并开启安全登录

mv /etc/securetty.bak /etc/securetty

重启 ssh 服务

chkconfig --add sshd

chkconfig sshd on

systemctl enable sshdsystemctl restart sshd

查看版本

ssh -V

OpenSSH_9.8p1, OpenSSL 3.3.2 3 Sep 2024

4、检测

修改配置文件,启用 root 登录

vi /etc/ssh/sshd_config

PermitRootLogin yes

PasswordAuthentication yes

UsePAM yes

重启 ssh 服务

systemctl restart sshd

测试 ssh

ssh ip 地址

关闭 telnet 服务

systemctl stop telnet.socket

systemctl disable telnet.socket

相关文章:

  • 达梦数据库-报错-01-[-3205]:全文索引词库加载出错
  • 【图像大模型】AnimateDiff:基于扩散模型的视频生成技术解析与实践指南
  • 机器学习第二十五讲:TensorFlow → 乐高式搭建深度学习模型
  • uniapp原生插件
  • vscode里几种程序调试配置
  • Swagger、Springfox、Springdoc-openapi 到底是什么关系
  • .NET外挂系列:7. harmony在高级调试中的一些实战案例
  • Jetson系统烧录与环境配置全流程详解(含驱动、GCC、.Net设置)
  • hadoop 无法存储数据到hbase里面 已经解决
  • 【论文阅读】LLaVA-OneVision: Easy Visual Task Transfer
  • Grafana XSSOpenRedirectSSRF漏洞复现(CVE-2025-4123)
  • AI与.NET技术实操系列(七):使用Emgu CV进行计算机视觉操作
  • 微信小程序调用蓝牙API “wx.writeBLECharacteristicValue()“ 报 errCode: 10008 的解决方案
  • 无法访问org.springframework.boot.SpringApplication
  • Android Studio 开发环境兼容性检索(AGP / Gradle / Kotlin / JDK)
  • 【数据架构03】数据治理架构篇
  • k8s容器入门(2) 容器化组件“可漂移“
  • 使用KubeKey快速部署k8s v1.31.8集群
  • 黑马k8s(十三)
  • Python刷题:神奇的函数
  • 原创 网站 源码/优化网站怎么做
  • 网站建设与管理怎么做/网站模板大全
  • 浙江坤宇建设有限公司网站/公众号推广
  • 专业的深圳网站建设公司哪家好/nba最新排名东西部
  • 个人是否可以做网站/网站域名综合查询
  • 安卓盒子做网站/百度搜索广告收费标准