• Linux(Centos7)OpenSSH漏洞修复,升级最新openssh-9.7p1


    一、OpenSSH漏洞

    服务器被扫描出了漏洞需要修复,准备升级为最新openssh服务
    在这里插入图片描述
    在这里插入图片描述

    1. 使用ssh -v查看本机ssh服务版本号

    ssh -V
    

    虚拟机为OpenSSH7.4p1,现在准备升级为OpenSSH9.7p1
    在这里插入图片描述
    2. 准备好需要用到的安装包

    链接:https://pan.baidu.com/s/1fN624AdqSp7aG2QXs8nAKw?pwd=8888 
    提取码:8888
    

    在这里插入图片描述
    3. 将安装包全部上传至服务器/opt目录(可以是任意目录,解压时注意路径)
    在这里插入图片描述
    4. 安装telnet服务。为了保险起见,假如ssh更新失败断开又连不上我们可以使用telnet服务连接。此步骤可跳过大家根据自己实际情况来。升级OpenSSH之前多打开一个连接窗口,假如升级失败了卸载了SSH也还是能连上的,只是不能断开,断开就连不上了。

    4.1 telnet服务是由xinetd管理的,需要安装xinetd服务才能启动telnet-server

    yum -y install telnet-server xinetd
    

    在这里插入图片描述在这里插入图片描述
    4.2 添加telnet配置文件

    echo "service telnet
    {
        flags        = REUSE
        socket_type    = stream        
        wait        = no
        user        = root
        server        = /usr/sbin/in.telnetd
        log_on_failure    += USERID
        disable        = no
    }" > /etc/xinetd.d/telnet 
    

    在这里插入图片描述
    4.3 启动xinetd

    systemctl start xinetd && systemctl status xinetd
    

    在这里插入图片描述
    4.4 开机自启xinetd

    systemctl enable xinetd
    

    4.5 创建连接账号密码

    #创建连接账号
    useradd admins
    #设置连接密码
    passwd admins
    #设置密码
    Asd123!!!
    

    在这里插入图片描述
    4.6 测试连接
    使用win+r输入cmd打开指令板,输入telnet 服务器IP在这里插入图片描述
    输入刚刚创建的账号密码连接,和SSH连接一样

    #步骤4.5创建的
    账号: admins
    密码: Asd123!!!
    

    在这里插入图片描述
    4.7 现在不需要ssh连接工具也能连接了,这样即便ssh连接失败也能用指令板操作。
    在这里插入图片描述
    5. 备份之前的SSH配置文件

    cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
    cp -p /usr/sbin/sshd /usr/sbin/sshd.bak
    cp -p /usr/bin/ssh /usr/bin/ssh.bak
    cp -rf /usr/bin/openssl /usr/bin/openssl.bak
    cp -p /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
    cp -p /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub.bak
    cp -rf /usr/lib/systemd/system /system.bak
    cp /etc/pam.d/sshd /etc/pam.d/sshd.bak
    

    在这里插入图片描述
    6. 依赖安装-绝大部分应该都已经装过,可以只装没装过的

    yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel pam-devel zlib-devel perl-IPC-Cmd
    

    在这里插入图片描述

    二、安装zlib

    1. 解压

    tar -zxvf zlib-1.3.1.tar.gz -C /usr/local/
    
    cd /usr/local/zlib-1.3.1/
    

    在这里插入图片描述
    在这里插入图片描述
    2. 编译 && 安装

    ./configure --prefix=/usr/local/zlib
    

    在这里插入图片描述

    make && make install
    

    在这里插入图片描述
    在这里插入图片描述

    三、安装OpenSSL

    1. 解压

    cd /opt
    
    tar -zxvf openssl-3.3.0.tar.gz -C /usr/local/
    
    cd /usr/local/openssl-3.3.0
    

    在这里插入图片描述
    2. 安装依赖

    yum install -y perl-CPAN perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
    

    在这里插入图片描述

    perl-IPC-Cmd,Data-Dumper-2不装直接安装openssl会报错,可能是虚拟机比较老,正常服务器应该有安装,可先跳过,如果报错在回来装

    3. 安装perl-IPC-Cmd

    cp /opt
    unzip perl-IPC-Cmd.zip -d /usr/local/
    cd /usr/local
    

    在这里插入图片描述

    cd perl
    rpm -ivhU * --nodeps --force
    

    在这里插入图片描述
    4. 安装Data-Dumper-2.183

    cp /opt
    tar -zxvf Data-Dumper-2.183.tar.gz -C /usr/local
    cd Data-Dumper-2.183
    

    在这里插入图片描述

    cd Data-Dumper-2.183
    perl Makefile.PL
    make
    make install
    

    在这里插入图片描述
    5. 安装openssl

    cd /opt
    tar -zxvf openssl-3.3.0.tar.gz -C /usr/local/
    cd /usr/local/openssl-3.3.0/
    
    ./config  --prefix=/usr/local/ssl  --shared
    

    在这里插入图片描述
    6. 编译安装,过程比较久,大概十来分钟

    make && make install
    

    在这里插入图片描述
    编译安装完成
    在这里插入图片描述
    7. 配置

    #依次执行
    mv /usr/bin/openssl /usr/bin/oldopenssl
    ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
    ln -s /usr/local/ssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3
    ln -s /usr/local/ssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3
    
    echo "/usr/local/ssl/lib64" >> /etc/ld.so.conf
    
    ldconfig
    

    在这里插入图片描述
    8. 查看更新后的版本

    openssl version -v
    

    在这里插入图片描述

    四、安装OpenSSH

    1. 卸载旧版本openssh7.4p1注意:卸载完千万不能断开,断开就连不上了

    yum remove -y openssh
    

    在这里插入图片描述

    2. 清理残余文件

    rm -rf /etc/ssh/*
    

    在这里插入图片描述
    3. 解压

    cd /opt
    tar -zxvf openssh-9.7p1.tar.gz -C /usr/local/
    cd /usr/local/openssh-9.7p1
    

    在这里插入图片描述
    4. 编译安装

    ./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl
    

    在这里插入图片描述

    在这里插入图片描述

    make && make install 
    

    在这里插入图片描述

    5. 配置ssh

    #ssh允许root登录、需要密码进行验证
    echo 'PermitRootLogin yes' >>/usr/local/openssh/etc/sshd_config
    echo 'PubkeyAuthentication yes' >>/usr/local/openssh/etc/sshd_config
    echo 'PasswordAuthentication yes' >>/usr/local/openssh/etc/sshd_config
    
    #将编译安装的新配置文件   拷贝到原路径下
    cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config
    cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd
    cp /usr/local/openssh/bin/ssh /usr/bin/ssh
    cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
    cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub
    
    #拷贝启动脚本
    cp -p contrib/redhat/sshd.init /etc/init.d/sshd
    #给sshd添加可执行权限
    chmod +x /etc/init.d/sshd
    #设置开机自启
    systemctl enable sshd
    #重新启动sshd服务
    systemctl restart sshd
    #查看sshd服务状态
    systemctl status sshd
    

    在这里插入图片描述
    6. 查看OpenSSH版本,显示新版本就是升级成功了,如果显示还是旧的话断开重连一下再查看版本,可能没刷新

    ssh -V
    

    在这里插入图片描述

  • 相关阅读:
    HTML5的新特性?伪类和伪元素?
    通过RedisTemplate简单实现延时队列
    【Ubuntu笔记】录屏安装
    小熊听书项目的测试
    AppLink定时调度操作
    OS 二级页表
    【数智化人物展】同方有云联合创始人兼总经理江琦:云计算,引领数智化升级的动能...
    Spark转换、执行、shuffle等常用算子归类
    Spring Bean自动装配
    VulnHub Tre
  • 原文地址:https://blog.csdn.net/dontYouWorry/article/details/139629793