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

相关推荐
竣达技术2 分钟前
NAS / 服务器断电数据丢失?UPS 配套 USB关机保护板,市电断电池低自动提示服务器/电脑关机
运维·服务器·电脑
Lottie20268 分钟前
京东电商进阶运营:精准定价+安全铺货+竞品监控+利润管控全自动化方案
运维·安全·自动化
章老师说10 分钟前
NGINX官方谈Lua风险:这其实是两条网关技术路线之争
运维·nginx·负载均衡·lua·openresty
wbs_scy25 分钟前
仿 muduo 高并发服务器项目:实现 Any 通用容器并理解 std::any
运维·服务器
A_humble_scholar39 分钟前
Linux(十六)从页表到线程封装:深入理解 Linux 线程的共享、控制与封装
linux
海盗12341 小时前
.NET编码规范03-C#命名规范大全
linux·服务器·.net
WZF-Sang1 小时前
TCP和UDP协议
linux·服务器·网络·c++·学习·tcp/ip·udp
做个文艺程序员1 小时前
Linux第11篇:存储管理——磁盘分区、LVM 与文件系统
linux·运维·服务器
懂AI的老郑1 小时前
工业检测场景下智能体的应用:从自动化到智能化
运维·自动化
天空'之城1 小时前
Linux 系统编程 14:Reactor 反应堆模式
linux·开发语言·网络编程·reactor 反应堆模式