Linux【安全 02】OpenSSH漏洞修复(离线升级最新版本流程)网盘分享3个安装 ...

打印 上一主题 下一主题

主题 958|帖子 958|积分 2874

本文仅针对CentOS7.8版本,其他版本未测试,安装包文件放置在/home/openssh目录下,某些命令包含此路径。
1. 漏洞信息

OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有用阻止窃听、连接劫持以及其他网络级的攻击。


  • 7.7及之前版本中存在竞争条件问题漏洞。该漏洞源于网络系统或产品在运行过程中,并发代码需要互斥地访问共享资源时,对于并发访问的处置惩罚不妥。
  • 8.3p1及之前版本中的scp的scp.c文件存在操纵系统命令注入漏洞。该漏洞源于外部输入数据构造操纵系统可实行命令过程中,网络系统或产品未正确过滤其中的特殊字符、命令等。攻击者可使用该漏洞实行非法操纵系统命令。
  • 7.6之前的版本中的sftp-server.c文件的‘process_open’函数存在安全漏洞,该漏洞源于程序在只读模式下没有正确的阻止写入操纵。攻击者可使用该漏洞创建长度为零的文件。
  • 5.7版本至8.3版本的客户端中存在信息泄露漏洞。攻击者可使用该漏洞获取信息。
  • 7.8及之前版本中的auth-gss2.c文件存在信息泄露漏洞。该漏洞源于网络系统或产品在运行过程中存在设置等错误。未授权的攻击者可使用漏洞获取受影响组件敏感信息。
2. 情况说明

  1. # 系统版本
  2. CentOS Linux release 7.8.2003 (Core)
  3. # 当前OpenSSH版本
  4. OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
复制代码
3.依赖安装

3.1 在线安装

  1. # X.用于编译zlib【亲测不用安装】可忽略
  2. yum install gcc gcc-c++ make -y
  3. # 1.用于编译openssl【需要联网】
  4. yum install perl-CPAN perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker -y
复制代码

3.2 离线安装

  1. # 1.【已下载】的26个依赖文件
  2. perl-IPC-Cmd-0.80-4.el7.noarch.rpm
  3. pyparsing-1.5.6-9.el7.noarch.rpm
  4. gdbm-devel-1.10-8.el7.x86_64.rpm
  5. perl-Test-Harness-3.28-3.el7.noarch.rpm
  6. perl-ExtUtils-Manifest-1.61-244.el7.noarch.rpm
  7. perl-version-0.99.07-6.el7.x86_64.rpm
  8. perl-Perl-OSType-1.003-3.el7.noarch.rpm
  9. perl-Module-Load-Conditional-0.54-3.el7.noarch.rpm
  10. libdb-devel-5.3.21-25.el7.x86_64.rpm
  11. perl-Module-Load-0.24-3.el7.noarch.rpm
  12. perl-ExtUtils-MakeMaker-6.68-3.el7.noarch.rpm
  13. perl-local-lib-1.008010-4.el7.noarch.rpm
  14. perl-Data-Dumper-2.145-3.el7.x86_64.rpm
  15. perl-Digest-1.17-245.el7.noarch.rpm
  16. perl-Module-Metadata-1.000018-2.el7.noarch.rpm
  17. perl-Digest-SHA-5.85-4.el7.x86_64.rpm
  18. perl-Locale-Maketext-1.23-3.el7.noarch.rpm
  19. perl-Params-Check-0.38-2.el7.noarch.rpm
  20. perl-ExtUtils-ParseXS-3.18-3.el7.noarch.rpm
  21. systemtap-sdt-devel-4.0-13.el7.x86_64.rpm
  22. perl-devel-5.16.3-299.el7_9.x86_64.rpm
  23. perl-ExtUtils-CBuilder-0.28.2.6-299.el7_9.noarch.rpm
  24. perl-Locale-Maketext-Simple-0.21-299.el7_9.noarch.rpm
  25. perl-ExtUtils-Install-1.58-299.el7_9.noarch.rpm
  26. perl-Module-CoreList-2.76.02-299.el7_9.noarch.rpm
  27. perl-CPAN-1.9800-299.el7_9.noarch.rpm
  28. # 2.安装
  29. rpm -ivh *.rpm
复制代码
4.备份卸载

这里肯定要注意,假如使用的是工具连接的服务器,此时最好多打开几个窗口,sshd服务制止之后旧连接可以使用但是无法建立新的连接,也可以安装telnet进行服务器连接(使用telnet后云服务器报恶意文件,查看之后都是telnet的用户创建的,能不用的话尽量照旧不要用,毕竟又打开了一个可能遭遇暴力破解的端口)。
4.1 备份

  1. # 1.停止ssh服务
  2. systemctl stop sshd
  3. # 2.备份ssh文件
  4. cp -r /etc/ssh /etc/ssh.old
  5. cp -p /usr/bin/ssh /usr/bin/ssh.bak
  6. cp -p /usr/sbin/sshd /usr/sbin/sshd.bak
  7. cp -p /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
复制代码
4.2 卸载旧版本

  1. # 1.查询原有ssh包并卸载
  2. rpm -qa | grep openssh
  3. openssh-7.4p1-23.el7_9.x86_64
  4. openssh-clients-7.4p1-23.el7_9.x86_64
  5. openssh-server-7.4p1-23.el7_9.x86_64
  6. # 2.卸载
  7. rpm -e --nodeps openssh-7.4p1-23.el7_9.x86_64
  8. rpm -e --nodeps openssh-clients-7.4p1-23.el7_9.x86_64
  9. rpm -e --nodeps openssh-server-7.4p1-23.el7_9.x86_64
  10. # 合并脚本
  11. rpm -e --nodeps $(rpm -qa | grep openssh)
  12. # 3.验证
  13. rpm -qa | grep openssh
复制代码
5.安装

5.1 zlib

直接下载或官网下载后上传zlib-1.3.1.tar.gz文件:
  1. # 1.下载
  2. wget https://zlib.net/current/zlib.tar.gz
  3. # 2.解压文件
  4. tar -zxvf zlib.tar.gz
  5. cd  zlib-1.3.1
  6. # 3.编译安装zlib
  7. ./configure --prefix=/usr/local/zlib
  8. make && make install
复制代码
5.2 ssl

直接下载或官网下载后上传openssl-3.2.0.tar.gz文件:
  1. # 0.直接下载【根据版本需要进行下载】
  2. wget https://www.openssl.org/source/old/3.2/openssl-3.2.0.tar.gz
  3. # 1.解压文件
  4. tar -zxvf openssl-3.2.0.tar.gz
  5. cd openssl-3.2.0
  6. # 2.编译安装
  7. # --prefix指定编译到的目录 --shared作用是生成动态链接库(即.so库)
  8. ./config  --prefix=/usr/local/ssl  --shared
  9. # 编译安装ssl【10分钟左右】
  10. make && make install
  11. # 3.路径写入etc/ld.so.conf  
  12. # 这里有网友遇到过问题(32位系统兼容问题) 命令已修复从lib64改为lib 这样64位和32位置系统都能可以正常使用
  13. echo '/usr/local/ssl/lib64' >> /etc/ld.so.conf
  14. # echo '/usr/local/ssl/lib' >> /etc/ld.so.conf
  15. # 4.刷新库文件
  16. ldconfig -v
复制代码
5.3 openssh

5.3.1 安装

直接下载或官网下载后上传openssh-9.7p1.tar.gz:
  1. # 0.直接下载【最新版本】注意跟下载后上传的版本不是一样的
  2. wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/openssh-9.7.tar.gz
  3. # 1.解压
  4. tar -zxvf openssh-9.7p1.tar.gz
  5. cd openssh-9.7p1
  6. # 2.编译安装【3分钟左右】
  7. ./configure --prefix=/usr/local/ssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl
  8. make -j 4 && make install
复制代码


  • -j 4: 这是一个选项,用于指定同时实行的编译任务数(即并行度)。这里的数字 4 表现允许同时运行4个编译任务。启用多任务并行编译可以明显加速编译速率,特别是对于大型项目或具有多个相互独立模块的软件。通过使用 -j 参数,系统可以使用多核处置惩罚器的上风,同时处置惩罚多个编译任务,从而缩短团体编译时间。
5.3.2 设置

  1. # 1.ssh允许root登录 需要密码进行验证
  2. echo 'PermitRootLogin yes' >> /usr/local/ssh/etc/sshd_config
  3. echo 'PubkeyAuthentication yes' >>/usr/local/ssh/etc/sshd_config
  4. echo 'PasswordAuthentication yes' >>/usr/local/ssh/etc/sshd_config
  5. # 2.将编译安装的新配置文件拷贝到原路径下
  6. cp /usr/local/ssh/bin/ssh /usr/bin/ssh
  7. cp /usr/local/ssh/sbin/sshd /usr/sbin/sshd
  8. cp /usr/local/ssh/bin/ssh-keygen /usr/bin/ssh-keygen
  9. cp /usr/local/ssh/etc/sshd_config /etc/ssh/sshd_config
  10. cp /usr/local/ssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub
  11. # 3.拷贝启动脚本
  12. cp -p /opt/openssh/openssh-9.7p1/contrib/redhat/sshd.init /etc/init.d/sshd
  13. # 4.给sshd添加可执行权限
  14. chmod +x /etc/init.d/sshd
  15. # 5.设置开机自启
  16. systemctl enable sshd
  17. # 6.重新启动sshd服务
  18. systemctl restart sshd
  19. # 7.查看sshd服务状态
  20. systemctl status sshd
  21. # 8.查看ssh版本是否升级成功,可以查看到已经是9.5版本了
  22. ssh -V
  23. OpenSSH_9.7p1, OpenSSL 3.2.0 23 Nov 2023
复制代码
至此新版本升级成功。感谢以下博主的分享:
https://blog.csdn.net/morecccc/article/details/134758892
https://www.cnblogs.com/wjsqqj/p/17925907.html
6.脚本整理

  1. # 1.依赖安装
  2. rpm -ivh *.rpm
  3. # 2.停止sshd服务
  4. systemctl stop sshd
  5. # 3.删除已安装的openssh
  6. rpm -e --nodeps $(rpm -qa | grep openssh)
  7. # 4.zlib安装
  8. tar -zxvf zlib.tar.gz
  9. cd zlib-1.3.1
  10. ./configure --prefix=/usr/local/zlib
  11. make && make install
  12. # 5.ssl安装
  13. tar -zxvf openssl-3.2.0.tar.gz
  14. cd openssl-3.2.0
  15. ./config  --prefix=/usr/local/ssl  --shared
  16. make && make install
  17. echo '/usr/local/ssl/lib64' >> /etc/ld.so.conf
  18. ldconfig -v
  19. # 6.openssh安装
  20. tar -zxvf openssh-9.7p1.tar.gz
  21. cd openssh-9.7p1
  22. ./configure --prefix=/usr/local/ssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl
  23. make -j 4 && make install
  24. # 7.ssh配置
  25. echo 'PermitRootLogin yes' >> /usr/local/ssh/etc/sshd_config
  26. echo 'PubkeyAuthentication yes' >>/usr/local/ssh/etc/sshd_config
  27. echo 'PasswordAuthentication yes' >>/usr/local/ssh/etc/sshd_config
  28. # 2.将编译安装的新配置文件拷贝到原路径下
  29. cp /usr/local/ssh/bin/ssh /usr/bin/ssh
  30. cp /usr/local/ssh/sbin/sshd /usr/sbin/sshd
  31. cp /usr/local/ssh/bin/ssh-keygen /usr/bin/ssh-keygen
  32. cp /usr/local/ssh/etc/sshd_config /etc/ssh/sshd_config
  33. cp /usr/local/ssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub
  34. cp -p /opt/openssh/openssh-9.7p1/contrib/redhat/sshd.init /etc/init.d/sshd
  35. chmod +x /etc/init.d/sshd
  36. systemctl enable sshd
  37. systemctl restart sshd
  38. systemctl status sshd
复制代码
7.文件资源

   链接:https://pan.baidu.com/s/1tUBYK4WzCiJBcCqQDOtQhw?pwd=8tfv
提取码:8tfv
  


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大连密封材料

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表