前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CentOS 7系统 OpenSSH和OpenSSL版本升级指南

CentOS 7系统 OpenSSH和OpenSSL版本升级指南

原创
作者头像
洛秋_
发布2024-12-31 12:18:33
发布2024-12-31 12:18:33
1.5K0
举报

CentOS 7系统 OpenSSH和OpenSSL版本升级指南

在处理服务器安全问题时,及时升级关键组件的版本是非常重要的。本文将详细介绍如何在CentOS 7系统上升级OpenSSH和OpenSSL到最新稳定版本,以解决已知的安全漏洞。

如果使用红帽系统,可以联系厂家打补丁或者升级处理

环境说明

当前系统版本

代码语言:bash
复制
[root@tamkems-yy ~]# cat /etc/redhat-release 
CentOS Linux release 7.8.2003 (Core)

当前组件版本

代码语言:bash
复制
[root@tamkems-yy ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
[root@tamkems-yy ~]# openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017

现存安全漏洞

当前版本存在以下安全漏洞:

  • OpenSSH 安全漏洞(CVE-2023-51767)
  • OpenSSH 安全漏洞(CVE-2023-38408)
  • OpenSSH 命令注入漏洞(CVE-2020-15778)
  • OpenSSH 欺骗安全漏洞(CVE-2019-6110)
  • OpenSSH信息泄露漏洞(CVE-2020-14145)
  • OpenSSH 用户枚举漏洞(CVE-2018-15919)
  • OpenSSH 安全漏洞(CVE-2023-48795)
  • OpenSSH CBC模式信息泄露漏洞(CVE-2008-5161)
  • 等多个安全漏洞...

升级目标版本

  • OpenSSH: 9.6p1
  • OpenSSL: 1.1.1w

升级准备工作

在开始升级之前,需要做好以下准备:

  1. 系统备份# 创建备份目录 mkdir -p /root/ssh_backup_$(date +%Y%m%d) # 备份当前配置 cp -r /etc/ssh/* /root/ssh_backup_$(date +%Y%m%d)/ cp /etc/sysconfig/sshd /root/ssh_backup_$(date +%Y%m%d)/
  2. 安装必要的编译工具# 安装开发工具组 yum groupinstall -y "Development Tools" # 安装依赖包 yum install -y zlib-devel openssl-devel perl perl-devel pam-devel

OpenSSL升级步骤

1. 下载和解压

代码语言:bash
复制
cd /usr/local/src
wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
tar -zxf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w

2. 编译安装

代码语言:bash
复制
# 配置
./config --prefix=/usr/local/openssl shared zlib

# 编译和测试
make
make test

# 安装
make install

3. 配置环境

代码语言:bash
复制
# 配置动态链接库
echo "/usr/local/openssl/lib" > /etc/ld.so.conf.d/openssl.conf
ldconfig

# 替换原有的OpenSSL
mv /usr/bin/openssl /usr/bin/openssl.old
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

OpenSSH升级步骤

1. 下载和解压

代码语言:bash
复制
cd /usr/local/src
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.6p1.tar.gz
tar -zxf openssh-9.6p1.tar.gz
cd openssh-9.6p1

2. 编译安装

代码语言:bash
复制
# 配置
./configure \
    --prefix=/usr \
    --sysconfdir=/etc/ssh \
    --with-ssl-dir=/usr/local/openssl \
    --with-zlib \
    --with-pam \
    --with-md5-passwords \
    --with-tcp-wrappers

# 编译和安装
make
make install

3. 创建systemd服务配置

代码语言:bash
复制
# 创建 systemd 服务文件
cat > /usr/lib/systemd/system/sshd.service << 'EOF'
[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target

[Service]
Type=exec
ExecStart=/usr/sbin/sshd -D -e
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=3s

[Install]
WantedBy=multi-user.target
EOF

4. 更新SSH配置文件

代码语言:bash
复制
# 创建新的 sshd_config 配置文件
cat > /etc/ssh/sshd_config << 'EOF'
# 基本配置
Port 22
AddressFamily any
ListenAddress 0.0.0.0
ListenAddress ::

# 协议版本
Protocol 2

# 主机密钥
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

# 日志级别
SyslogFacility AUTHPRIV
LogLevel INFO

# 认证配置
PermitRootLogin yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes
PermitEmptyPasswords no
ChallengeResponseAuthentication no

# 其他设置
X11Forwarding yes
PrintMotd no
UsePAM yes
UseDNS no
Subsystem sftp /usr/libexec/openssh/sftp-server
EOF

5. 设置正确的文件权限

代码语言:bash
复制
# 设置关键文件权限
chmod 755 /usr/sbin/sshd
chmod 755 /etc/ssh
chmod 644 /etc/ssh/sshd_config
chmod 600 /etc/ssh/ssh_host_*_key
chmod 644 /etc/ssh/ssh_host_*_key.pub

6. 重启服务

代码语言:bash
复制
# 重新加载 systemd 配置
systemctl daemon-reload

# 重启 sshd 服务
systemctl restart sshd

# 检查服务状态
systemctl status sshd

7. 验证升级

代码语言:bash
复制
# 检查 SSH 版本
ssh -V

# 尝试本地连接测试
ssh -v localhost

故障排查指南

如果升级后遇到问题,可以按以下步骤排查:

  1. 检查日志文件tail -f /var/log/secure tail -f /var/log/messages
  2. 检查防火墙设置firewall-cmd --list-services | grep ssh
  3. 如需回滚,执行以下操作:
    • 停止sshd服务
    • 从备份目录恢复配置文件
    • 重启服务

安全建议

完成升级后,建议采取以下安全措施:

  1. 加强SSH配置
    • 禁用不安全的加密算法
    • 限制root用户登录
    • 设置登录失败次数限制
    • 配置密钥认证
  2. 定期维护
    • 检查系统日志
    • 监控失败的登录尝试
    • 定期检查服务状态

总结

通过以上步骤,我们已经成功将OpenSSH和OpenSSL升级到了最新的稳定版本,解决了多个安全漏洞。建议在执行升级操作前,先在测试环境中进行验证,确保升级过程不会影响到生产环境的正常运行。

参考文档

👉 最后,愿大家都可以解决工作中和生活中遇到的难题,剑锋所指,所向披靡~

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CentOS 7系统 OpenSSH和OpenSSL版本升级指南
    • 环境说明
      • 当前系统版本
      • 当前组件版本
    • 现存安全漏洞
    • 升级目标版本
    • 升级准备工作
    • OpenSSL升级步骤
      • 1. 下载和解压
      • 2. 编译安装
      • 3. 配置环境
    • OpenSSH升级步骤
      • 1. 下载和解压
      • 2. 编译安装
      • 3. 创建systemd服务配置
      • 4. 更新SSH配置文件
      • 5. 设置正确的文件权限
      • 6. 重启服务
      • 7. 验证升级
    • 故障排查指南
    • 安全建议
    • 总结
    • 参考文档
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档