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

标题: Centos7,升级OpenSSH(亲测有用适用于小白) [打印本页]

作者: 八卦阵    时间: 2024-9-9 03:57
标题: Centos7,升级OpenSSH(亲测有用适用于小白)


项目场景:

OpenSSH 升级, OpenSSH 更新, OpenSSH 漏洞修复
漏洞信息:OpenSSH 命令注入漏洞(CVE-2023-51385)
以及日常运维升级openssh参考。

注意!!!,如果本机未安装telnet

建议打开多个SSH终端连接使用top避免设备断链,并安装telnet服务器,确保在SSH服务器升级异常时,可以通过telnet服务器长途连接,举行告急题目修复处置惩罚。
在升级前一定要备份原有的设置文件,以防出现意外环境。
如是个人学习升级openssh,建议升级前拍摄快照。

题目描述

升级原设备openssh,有利于设备运行安全。

本文章用于修复OpenSSH命令注入漏洞(CVE-2023-51385)
   该漏洞影响 Linux、macOS、BSD 以及其他操作系统上 OpenSSH 客户端和服务器实现的所有用户。由于 OpenSSH 是使用最广泛的 SSH 实现之一,因此影响相称广泛。
  如果乐成使用,该缺陷大概会被用来绕过身份验证并获得对运行易受攻击的 OpenSSH 版本的系统的未经授权的长途访问。攻击者可以发起进一步的攻击、升级权限、偷取数据等等。
  升级前准备:

安装所需软件包,以及用于编译和安装从源代码构建的软件
  1. yum install wget gcc openssl-devel pam-devel rpm-build zlib-devel -y
复制代码
  如出现一下内容为以及将所需软件包安装完成,无需再安装
  
若yum出现bug,后续会编写文章举行解决。

编译安装openssl:

下载编译openssl

  1. #查询openssl版本信息命令
  2. 1.openssl version
  3. #查询后显示本版信息为OpenSSL 1.几的版本后可跳过openssl安装
  4. #两个下载连接都可下载,第二条连接禁用 SSL/TLS 证书验证。避免证书过期拉取不到软件包
  5. 2.
  6. wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1t.tar.gz
  7. wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1t.tar.gz --no-check-certificate
复制代码
  下载完成后,将软件包解压到以下目录下
  1. 3.tar xf openssl-1.1.1t.tar.gz -C /usr/local
  2. #开始编译安装openssl
  3. 4.# 进入openssl目录
  4. cd /usr/local/openssl-1.1.1t
  5. # 编译安装openssl
  6. ./config shared --prefix=/usr/local/openssl
  7. make -j 4
  8. make install
复制代码
为openssl创建软连接,

  1. echo "/usr/local/openssl/lib/" >> /etc/ld.so.conf
  2. # 加载配置文件
  3. ldconfig
  4. # 备份以前的openssl
  5. mv /usr/bin/openssl /usr/bin/openssl.old
  6. # 软连接,如果提示软连接已存在,记得备份软连接,然后在执行下面再次软连接,要不然会出问题,会导致root目录看不了,磁盘看不了,sftp连接不上;
  7. ln -sv /usr/local/openssl/bin/openssl /usr/bin/openssl
  8. ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
  9. ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
  10. #创建完成后使用
  11. openssl version -a
  12. #进行验证,查看本机ssl是否安装成功
复制代码
对openssh举行升级操作

查看本机openssh当前安装的软件包,并卸载

  1. [root@localhost ~]# rpm -qa | grep openssh
  2. openssh-clients-7.4p1-21.el7.x86_64
  3. openssh-7.4p1-21.el7.x86_64
  4. openssh-server-7.4p1-21.el7.x86_64
  5. # 查看当前OpenSSH版本(Centos7 默认使用OpenSSH_7.4p1)
  6. [root@localhost ~]# ssh -V
  7. OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
  8. # 备份现有的SSH
  9. [root@localhost ~]# mv /etc/ssh/ /etc/ssh.bak
  10. [root@localhost ~]# mv /usr/bin/ssh /usr/bin/ssh.bak
  11. [root@localhost ~]# mv /usr/sbin/sshd /usr/sbin/sshd.bak
  12. # 如果您是第一次升级,备份/etc/init.d/sshd时会不存在,不影响后续操作
  13. [root@localhost ~]# mv /etc/init.d/sshd /etc/init.d/sshd.bak
  14. mv: 无法获取'/etc/init.d/sshd' 的文件状态(stat): No such file or directory
  15. # 卸载现有OpenSSH
  16. rpm -e --nodeps $(rpm -qa |grep openssh)
复制代码
卸载现有OpenSSH后使用该命令再次查看是否卸载乐成
没有内容视为下载完成
  1. rpm -qa | grep openssh
复制代码
下载编译openssh

  1. wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.6p1.tar.gz
复制代码
编译安装openssh

  1. # 将下载的openssh安装包移动到/usr/local下
  2. [root@localhost ~]# mv openssh-9.6p1.tar.gz /usr/local/
  3. # 进入/usr/local/目录解压openssh9.3
  4. [root@localhost ~]# cd /usr/local/
  5. [root@localhost local]# tar xf openssh-9.6p1.tar.gz
  6. # 进入openssh目录
  7. [root@localhost local]# cd openssh-9.6p1
  8. # 编译安装
  9. [root@localhost openssh-9.6p1]# CCFLAGS="-I/usr/local/include" \
  10. LDFLAGS="-L/usr/local/lib64" \
  11. ./configure \
  12. --sysconfdir=/etc/ssh \
  13. --with-zlib \
  14. --with-ssl-dir=/usr/local/openssl
  15. [root@localhost openssh-9.6p1]# make -j 4
  16. [root@localhost openssh-9.6p1]# make install
复制代码
授权该目录权限

  1. chmod 600 /etc/ssh/*
复制代码
复制设置文件

  1. [root@localhost openssh-9.6p1]# cp -rf /usr/local/sbin/sshd /usr/sbin/sshd
  2. [root@localhost openssh-9.6p1]# cp -rf /usr/local/bin/ssh /usr/bin/ssh
  3. [root@localhost openssh-9.6p1]# cp -rf /usr/local/bin/ssh-keygen /usr/bin/ssh-keygen
  4. [root@localhost openssh-9.6p1]# cp -ar /usr/local/openssh-9.6p1/contrib/redhat/sshd.init /etc/init.d/sshd
  5. [root@localhost openssh-9.6p1]# cp -ar /usr/local/openssh-9.6p1/contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
复制代码
修改设置文件

  1. # 修改配置允许root用户远程登录(允许使用密码登录,允许root远程登录,开启端口,赋予/etc/init.d/sshd权限)
  2. cat >>/etc/ssh/sshd_config<<EOF
  3. PermitRootLogin yes
  4. X11Forwarding yes
  5. PasswordAuthentication yes
  6. KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,curve25519-sha256@libssh.org
  7. EOF
  8. [root@localhost openssh-9.6p1]# sed -i "s/^#Port/Port/g" /etc/ssh/sshd_config
  9. [root@localhost openssh-9.6p1]# chmod 755 /etc/init.d/sshd
复制代码
启用sshd,生成服务设置文件,并重启服务

  1. # 启用sshd,生成服务配置文件
  2. [root@localhost openssh-9.6p1]# systemctl enable sshd
  3. sshd.service is not a native service, redirecting to /sbin/chkconfig.
  4. Executing /sbin/chkconfig sshd on
  5. # 重启服务
  6. [root@localhost openssh-9.6p1]# systemctl restart sshd
  7. # 查看服务状态
  8. [root@localhost openssh-9.6p1]# systemctl status sshd
复制代码
若执行service sshd start时出现以下错误

  1. #执行即可解决
  2. yum install openssh-server
复制代码
验证是否升级openssh乐成
 文章参考A-刘晨阳-CSDN博客

  1. [root@localhost ~]# ssh -V
  2. OpenSSH_9.6p1, OpenSSL 1.1.1t  7 Feb 2023
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




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