ToB企服应用市场:ToB评测及商务社交产业平台

标题: CVE-2024-6387&Open SSH漏洞彻底解决举措(含踩坑内容) [打印本页]

作者: 风雨同行    时间: 2024-8-22 10:44
标题: CVE-2024-6387&Open SSH漏洞彻底解决举措(含踩坑内容)
一、漏洞名称

OpenSSH 远程代码执行漏洞(CVE-2024-6387)
二、漏洞概述

Open SSH是基于SSH协议的安全网络通讯工具,广泛应用于远程服务器管理、加密文件传输、端口转发、远程控制等多个领域。近日被爆出存在一个远程代码执行漏洞,由于Open SSH服务器端程序存在竞争条件缺陷,未经身份验证的攻击者可利用该漏洞在Linux系统上以root身份远程执行代码,可全面接受系统、安装恶意软件、窜改、删除或窃取系统数据,创建后门等。受影响版本为8.5p1<=version<9.8p1。目前Open SSH官方已发布新版本完成漏洞修复。(更新链接:https://www.openssh.com/releasenotes.html)
三、缓解措施

自行百度,关闭ssh、 允许特定用户访问等
四、修复发起

发起升级OpenSSH至安全版本,彻底解决。
各位老板不要着急、这里有坑,假如服务器Openssh>=1.1.1那么恭喜直接升级Openssh即可。
由于本人服务器版本是OpenSSL 1.0.2k-fips在升级过程中卸载、重装服务经过多次实行终极等已解决。
踩坑一:
OpenSSL 1.0.2k-fips版本,升级条件Openssh需大于1.1.1,否则升级提示Open SSH版本低
踩坑二:
升级OpenSSL 成功后,openssl verison与 ssh -V 结果下的openssl版本不同等问题,导致升级OpenssH也已失败告终。至此请看正文解决办法,一起到底升级成功。
4.1、查看服务器OpenSSL版本设置

  1. openssl version
复制代码
  1. [root@localhost ~]# openssl version
  2. OpenSSL 1.0.2k-fips  26 Jan 2017
复制代码
4.2、查看升级服务器OpenSSL版本

   ssh -V
  1. [root@localhost ~]# ssh -V
  2. OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
复制代码
4.3、查看服务器版本

  1. [root@localhost ~]# uname -a
  2. Linux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
复制代码
给各人看下云服务器版本基于CentOS 7.6版本升级 
4.4、终极目标


先试试先版本,由于升级成功了下次在升级至OpenSSH 9.8p1
  1. OpenSSH 7.4p1 -> OpenSSH 9.3p1
  2. OpenSSL 1.0.2k-fips -> OpenSSL 3.1.2
复制代码
4.4、版本直通车链接

  1. OpenSSL官网地址:https://www.openssl.org/
  2. OpenSSH官网地址:https://www.openssh.com/
复制代码
4.5、小心驶得万年船

telnet安装以防万一详细安装请看上一篇文章、由于本人已实行升级顺遂暂未发现升级失败现象,各位看官可大胆实行。无误后升级生产环境
4.6、自我安慰一下

数据备份一下,虽然升级成功了,没有导致服务器链接不上的可能。
  1. mv /usr/bin/openssl /usr/bin/openssl.old
  2. mv /etc/ssh /etc/ssh.old
  3. mkdir /usr/bin/bak
  4. cp -arpf /usr/bin/{cp,sftp,ssh,ssh-add,ssh-agent,ssh-keygen,ssh-keyscan} /usr/bin/bak/
  5. cp -arpf /usr/sbin/sshd /usr/sbin/sshd.bak
  6. cp -arpf /etc/sysconfig/sshd /etc/sysconfig/sshd.bak
  7. cp -arpf /etc/pam.d/sshd /etc/pam.d/sshd.bak
复制代码
五、奏是个干升级openssl

5.1、下载OpenSSL、OpenSSH、zlib

  1. 创建download文件夹(根据自己喜好)
  2. wget https://www.openssl.org/source/openssl-3.1.2.tar.gz --no-check-certificate
  3. wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p1.tar.gz
  4. wget http://www.zlib.net/zlib-1.3.1.tar.gz
复制代码
  [root@yfvyy5b2on3knb8q ~]# cd download/
  1. [root@yfvyy5b2on3knb8q download]# ll -a
  2. total 18528
  3. drwxr-xr-x   5 root root      4096 Jul  9 18:24 .
  4. dr-xr-x---.  5 root root      4096 Jul 10 08:06 ..
  5. drwxr-xr-x   7 1000  1000    20480 Jul  9 18:41 openssh-9.3p1
  6. -rw-r--r--   1 root root   1856839 Mar 16  2023 openssh-9.3p1.tar.gz
  7. drwxrwxr-x  24 root root      4096 Jul  9 18:33 openssl-3.1.2
  8. -rw-r--r--   1 root root  15560427 Jan 22 19:24 openssl-3.1.2.tar.gz
  9. drwxr-xr-x  14  501 games     4096 Jul  9 18:25 zlib-1.3.1
  10. -rw-r--r--   1 root root   1512791 Jan 23 03:53 zlib-1.3.1.tar.gz
复制代码
5.2、解压

  1. tar xvf openssh-9.3p1.tar.gz
  2. tar xvf openssl-3.1.2.tar.gz
  3. tar xvf zlib-1.3.1.tar.gz
复制代码
5.3、安装依赖

  1. yum install gcc
  2. yum install gcc-c++
  3. yum install perl
  4. yum install perl-IPC-Cmd
  5. yum install pam
  6. yum install pam-devel
复制代码
5.4 、安装升级zlib

  1. cd zlib-1.3.1
  2. ./configure --prefix=/usr/local/zlib-1.3.1
  3. make  && make install
复制代码
5.5、安装升级openssl

  1. cd openssl-3.1.2
  2. ./config --prefix=/usr/local/openssl-3.1.2 make && make install
  3. echo '/usr/local/openssl-3.1.2/lib64' >> /etc/ld.so.conf
  4. ln -s /usr/local/openssl-3.1.2/bin/openssl /usr/bin/openssl
  5. ln -s /usr/local/openssl-3.1.2/include/openssl /usr/include/openssl
  6. ll -s /usr/bin/openssl
  7. ll -s /usr/include/openssl
  8. ln -s /usr/local/openssl-3.1.2/lib64/libssl.so.3 /usr/lib64/libssl.so.3
  9. ln -s /usr/local/openssl-3.1.2/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3
  10. ldconfig -v
复制代码
5.6、查看版本
  1. openssl version
复制代码
  1. [root@yfvyy5b2on3knb8q download]# openssl version
  2. OpenSSL 3.1.2 1 Aug 2023 (Library: OpenSSL 3.1.2 1 Aug 2023)
复制代码
六、升级openssh

  1. cd openssh-9.3p1
复制代码
 6.1、编译、验证测试环境

  1. ./configure --prefix=/usr/local/openssh-9.3p1 --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/openssl-3.1.2 --with-zlib=/usr/local/zlib-1.3.1 --without-hardening
  2. make && make install
复制代码
 6.2、安装

  1. make && make install
复制代码
 6.3、数据备份

  1. cp -arpf /usr/local/openssh-9.3p1/bin/scp /usr/bin/
  2. cp -arpf /usr/local/openssh-9.3p1/bin/sftp /usr/bin/
  3. cp -arpf /usr/local/openssh-9.3p1/bin/ssh /usr/bin/
  4. cp -arpf /usr/local/openssh-9.3p1/bin/ssh-add /usr/bin/
  5. cp -arpf /usr/local/openssh-9.3p1/bin/ssh-agent /usr/bin/
  6. cp -arpf /usr/local/openssh-9.3p1/bin/ssh-keygen /usr/bin/
  7. cp -arpf /usr/local/openssh-9.3p1/bin/ssh-keyscan /usr/bin/
  8. cp -arpf /usr/local/openssh-9.3p1/sbin/sshd /usr/sbin/sshd
  9. cp -a contrib/redhat/sshd.init /etc/init.d/sshd
  10. cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
  11. chmod +x /etc/init.d/sshd
  12. mv /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service.bak
复制代码
  
     6.4、启动sshd

  1. systemctl daemon-reload
  2. systemctl enable sshd.socket
  3. sshd -t
  4. systemctl restart sshd
复制代码
6.5、查看版本

  1. [root@yfvyy5b2on3knb8q openssh-9.3p1]# openssl version
  2. OpenSSL 3.1.2 1 Aug 2023 (Library: OpenSSL 3.1.2 1 Aug 2023)
  3. [root@yfvyy5b2on3knb8q openssh-9.3p1]# ssh -V
  4. OpenSSH_9.3p1, OpenSSL 3.1.2 1 Aug 2023
  5. [root@yfvyy5b2on3knb8q openssh-9.3p1]# uname -a
  6. Linux yfvyy5b2on3knb8q 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
  7. [root@yfvyy5b2on3knb8q openssh-9.3p1]#
复制代码
末了不要着急,由于sshd发生了变革,需要特殊留意,需要更改设置
  1. vim  /etc/ssh/sshd_config
复制代码
  1.  Port 22
  2.  PermitRootLogin yes
复制代码
  1. Port 22
  2. #AddressFamily any
  3. #ListenAddress 0.0.0.0
  4. #ListenAddress ::
  5. #HostKey /etc/ssh/ssh_host_rsa_key
  6. #HostKey /etc/ssh/ssh_host_ecdsa_key
  7. #HostKey /etc/ssh/ssh_host_ed25519_key
  8. # Ciphers and keying
  9. #RekeyLimit default none
  10. # Logging
  11. #SyslogFacility AUTH
  12. #LogLevel INFO
  13. # Authentication:
  14. #LoginGraceTime 2m
  15. PermitRootLogin yes
  16. #StrictModes yes
  17. #MaxAuthTries 6
  18. #MaxSessions 10
复制代码
 6.6、无误后关闭telnet服务,没有安装telnet

  1. systemctl stop telnet.socket
  2. systemctl disable telnet.socket
  3. systemctl stop xinetd
  4. systemctl disable xinetd
复制代码
openssl版本高于1.1.1直接升级openssh即可!
根据步骤6执行更换高版本即可!


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




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4