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

CentOS7.9安装OpenSSL 1.1.1t和OpenSSH9.9p1


一、临时开启telnet登录方式,避免升级失败无法登录系统
(注意telnet登录方式存在安全隐患,升级openssh相关服务后要记得关闭)
 
1.安装telnet服务
yum -y install xinetd telnet*
 
2.允许root用户通过telnet登陆,编辑文件注释掉下面这行:
vim /etc/pam.d/login
#auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
 
3.备份配置文件/etc/securetty
cp /etc/securetty /etc/securetty.bak
 
4.添加超级用户登陆设备至/etc/securetty文件:
echo "pts/1" >> /etc/securetty
echo "pts/2" >> /etc/securetty
echo "pts/3" >> /etc/securetty
echo "pts/4" >> /etc/securetty
echo "pts/5" >> /etc/securetty
echo "pts/6" >> /etc/securetty
echo "pts/7" >> /etc/securetty
echo "pts/8" >> /etc/securetty
echo "pts/9" >> /etc/securetty
echo "pts/10" >> /etc/securetty

 
5.开启root用户远程登陆,编辑文件注释掉下面这行:
vim /etc/pam.d/remote
#auth required pam_securetty.so

 
6.创建 Telnet 的 xinetd 配置文件,使用下面的命令创建并编辑/etc/xinetd.d/telnet文件:
vim /etc/xinetd.d/telnet
 
在文件中添加以下内容:
# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet
{
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/sbin/in.telnetd
        log_on_failure  += USERID
        disable         = no
}
 

编辑完成后,保存并退出。
 
7.防火墙规则放行telnet默认端口23
firewall-cmd --add-port=23/tcp --zone=public --permanent
firewall-cmd --reload

 
8.启动 xinetd 服务
systemctl start xinetd
 
9.如果要禁用telnet服务,执行如下操作:
#停止telnet服务
systemctl stop xinetd
systemctl disable xinetd
systemctl stop telnet.socket

#防火墙禁用端口
firewall-cmd --remove-port=23/tcp --zone=public --permanent
firewall-cmd --reload

 
#编辑配置文件,恢复注释过的配置项:
vim /etc/pam.d/login
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so

 
 
vim /etc/pam.d/remote
auth required pam_securetty.so

 
二、编译安装 OpenSSL 1.1.1t(全新安装)

1.下载依赖
yum install -y gcc make perl zlib-devel

2.在进行升级操作之前,对现有的 OpenSSL 和 OpenSSH 配置文件进行备份,防止升级过程中出现问题导致配置丢失。
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
cp /etc/ssh/ssh_config /etc/ssh/ssh_config.bak


3.下载并解压(路径根据实际情况修改)
mkdir -p /root/soft && cd /root/soft
wget -O openssl-1.1.1t.tar.gz https://www.openssl.org/source/openssl-1.1.1t.tar.gz
tar -xzf openssl-1.1.1t.tar.gz

 
4.配置编译
cd openssl-1.1.1t
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib

 
5.编译安装
make -j$(nproc) 
make install 

 
6.验证安装结果
ls -l /usr/local/openssl/{lib,include/openssl}

# 必须存在以下文件:
lib/libssl.so.1.1
lib/libcrypto.so.1.1

 
7. 配置系统环境变量,让系统能够找到新安装的 OpenSSL 库
echo "/usr/local/openssl/lib" > /etc/ld.so.conf.d/openssl.conf
ldconfig

8. 处理 SSH 配置文件过时的选项,编辑 /etc/ssh/sshd_config 文件,注释掉不支持的选项。
vi /etc/ssh/sshd_config
 
在文件中找到以下几行,在行首添加 # 进行注释:
#GSSAPIAuthentication yes
#GSSAPICleanupCredentials yes
#UsePAM yes

 
保存并退出文件。

9. 修正 SSH 主机密钥文件权限,将 SSH 主机密钥文件权限修改为 600,确保只有文件所有者可读写。
chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
chmod 600 /etc/ssh/ssh_host_ed25519_key


三、编译 OpenSSH 9.9p1(绑定 OpenSSL 1.1.1t)
1:下载安装包和编译
cd /root/soft
wget -O openssh-9.9p1.tar.gz  https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p1.tar.gz
tar -xzf openssh-9.9p1.tar.gz
cd /root/soft/openssh-9.9p2

 
#编译安装文件
./configure --with-ssl-dir=/usr/local/openssl --with-zlib --sysconfdir=/etc/ssh
 
2.编译安装(含动态链接修复)
make -j$(nproc) && make install
 
# 永久生效动态链接(避免重启失效)
echo '/usr/local/openssl-1.1.1t/lib' >> /etc/ld.so.conf.d/openssl-1.1.conf

# 验证 libssl.so.1.1 路径
ldconfig -v 
 

3. 配置 SSH 服务,将原有的 SSH 服务配置文件替换为新安装的 OpenSSH 提供的配置文件,并设置权限。
cp -f contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
chkconfig --add sshd

4 启动 SSH 服务,启动 SSH 服务并设置为开机自启。
systemctl start sshd
systemctl enable sshd

 
5. 验证版本,验证 OpenSSL 和 OpenSSH 是否成功升级到指定版本。
/usr/local/openssl/bin/openssl version
ssh -V

 
6. 验证 SSH 服务,检查 SSH 服务是否正常运行。
systemctl status sshd

 最后要记得,按照前面步骤禁用telnet登录方式。

相关文章:

  • 小结:BFD
  • Redis ssd是什么?Redis 内存空间优化的点都有哪些?embstr 和 row、intset、ziplist分别是什么?
  • LeetCode题解1297. 子串的最大出现次数
  • 大模型评测调研报告
  • 计算机网络 | 应用层(6) -- 套接字编程
  • 大模型基础(三):Llama3复现
  • Mac桌面幻灯片,Google文档,google硬盘和google等图标如何移除
  • Docker(二):docker常用命令
  • 2025系统架构师---解释器架构风格‌
  • Rust:安全与性能兼得的现代系统编程语言
  • 深入探索Python Pandas:解锁数据分析的无限可能
  • 【Java】分布式事务解决方案
  • 「Mac畅玩AIGC与多模态02」部署篇01 - 在 Mac 上部署 Ollama + Open WebUI
  • (MySQL)表的操作
  • Ant(Ubuntu 18.04.6 LTS)安装笔记
  • 「Mac畅玩AIGC与多模态03」部署篇02 - 在 Mac 上部署 Dify
  • Pydantic:校验器(@validator)、模型嵌套、模型继承
  • 使用cesium设置第一视角
  • openharmony—4.1 softbus_tool 工具编译使用测试笔记(持续更新)
  • ubuntu 安装ollama后,如何让外网访问?
  • 国家税务总局:“二套转首套”可以享受贷款利息个税专项扣除
  • 新任浙江省委常委、杭州市委书记刘非开展循迹溯源学习调研
  • 俄联邦安全局:俄军高级官员汽车爆炸案嫌疑人已被捕
  • VR数字沉浸体验又添新节目,泰坦尼克号驶进文旅元宇宙
  • 特朗普政府称将恢复被终止的外国学生合法身份
  • 济南市莱芜区委书记焦卫星任济南市副市长