• redhat 7.4从openssh7.6离线升级openssh8.4p1解决方法


    具体需求

           这几天生产环境服务器又进行了安全扫描,每次都会报一下漏洞错误。虽然只有一个高危问题,但是每次看到ssh远程漏洞都很烧脑 “主要是里面坑太多了”,闲话就不说了,今天我们来看看从redhat7.4 的openssh7.4、7.6、8.1离线网的环境中升级到openssh8.4p1吧!!

     漏洞以及环境问题

     OpenSSH 命令注入漏洞(CVE-2020-15778) 报的远程漏洞问题,因为Linux服务器都在公司内部,不能连接公网。

     需要注意

    为了防止升级失败,可以在升级之前安装telnet服务,通过Telnet连接服务器进行升级。如果大家觉得麻烦或者冒险一下安装telnet这步骤可以省略。

    1、安装telnet,防止ssh升级失败导致链接失败
    rpm -ivh telnet-server-0.17-64.el7.x86_64.rpm
    rpm -ivh telnet-0.17-64.el7.x86_64.rpm

    下载地址:telnet-server-0.17-64.el7.x86_64、telnet-0.17-64.el7.x86_64、xinetd-2.3.15-14.el7.x86_64
    2、在防火墙上开放telnet端口
    firewall-cmd --zone=public --add-port=23/tcp --permanent
    ----加载配置生效
    firewall-cmd --reload
    —加入自启动
    chkconfig telnet on
    systemctl enable telnet.socket
    systemctl start telnet.socket
    ----默认不允许root连接,所以新增了账号
    useradd atest
    passwd atest

    下载依赖openssl、zlib、openssh

    下载安装文件:openssh8.4需要的 openssl-1.1.1g, openssh-8.4p1,zlib-1.2.11

    解压升级包

    
    

    tar -zxvf Zlib-1.2.11.tar.gz
    tar -zxvf openssh-8.4p1.tar.gz
    tar -zxvf Openssl-1.1.1g.tar.gz

    编译安装zlib

    cd zlib-1.2.11
    ./configure --prefix=/usr/local/zlib
    make && make install

    编译安装openssl

    cd openssl-1.1.1g
    ./config --prefix=/usr/local/ssl -d shared
    make && make install
    echo '/usr/local/ssl/lib' >> /etc/ld.so.conf
    ldconfig -v

    安装openssh

    1  cd openssh-8.4p1
    2 ./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl
    3 make && make install
     sshd_config文件修改
    5 echo 'PermitRootLogin yes' >>/usr/local/openssh/etc/sshd_config
    6 echo 'PubkeyAuthentication yes' >>/usr/local/openssh/etc/sshd_config
    7 echo 'PasswordAuthentication yes' >>/usr/local/openssh/etc/sshd_config

    备份原有文件,并将新的配置复制到指定目录

     1 mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
     2 cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config
     3 mv /usr/sbin/sshd /usr/sbin/sshd.bak
     4 cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd
     5 mv /usr/bin/ssh /usr/bin/ssh.bak
     6 cp /usr/local/openssh/bin/ssh /usr/bin/ssh
     7 mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
     8 cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
     9 mv /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub.bak
    10 cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub

     启动sshd

    systemctl restart sshd.service
    [root@localhost ~]# ssh -V OpenSSH_8.4p1, OpenSSL 1.1.1g 21 Apr 2020

     报错问题以及解决方案

      如果sshd服务器无法启动,可以试试以下方法:

      先停掉sshd服务,将systemctl原服务器删除,使用安装包里自带的sshd.init,复制到/etc/init.d/sshd,重启即可

    systemctl stop sshd.service
    rm -rf /lib/systemd/system/sshd.service 
    systemctl daemon-reload
    cp /opt/openssh8.4/openssh-8.4p1/contrib/redhat/sshd.init /etc/init.d/sshd
    /etc/init.d/sshd restart
    systemctl status sshd
    systemctl daemon-reload

     以上文件存放路径我放到根目录 /opt/下面了,可以按你自己解压文件路径即可。

    添加开机启动

    chkconfig --add sshd
    
    chkconfig --list sshd

    最后上一张图查看ssh启动状态

    systemctl status sshd

    这一步ssh服务器已安装完成。

    如果遇到xshell 和SecureCRT 提示:

    Key exchange failed.
    No compatible key exchange method. The server supports these methods: curve25519

    请大家把 Xshell 和CRT 升级到更高版本吧! 

    到此,完成了openssh 7.6升级到 8.4版本已完成,希望对大家有所帮助。

  • 相关阅读:
    js 创建Table,每行3列的方式
    多线程 笔记
    WCF binding
    table 变量
    Excel数据使用sql语句导入sqlserver (64位)
    sqlserver链接服务器到Mysql
    easyui datagrid 返回数据正确 fit='true' 时不显示内容
    js设置文本框只读属性的小bug
    windows64位下的redis及memcached的安装和使用
    spring.Net (Mvc)属性依赖注入------实例化对象
  • 原文地址:https://www.cnblogs.com/angelasp/p/13926453.html
Copyright © 2020-2023  润新知