• Linux 升级OpenSSH至最新版本。


    原因

    云服务器(Linux) 报了一个漏洞修复 , 提示需要修复一下 . . .

    漏洞名称

    OpenSSH权限提升漏洞(CVE-2021-41617)

    漏洞详情

    由于OpenSSH在执行AuthorizedKeysCommand或AuthorizedPrincipalsCommand时未能正确初始化,运行时可能会被设置为以其他用户的权限运行。这些指令将继承 sshd启动时的组的权限。根据系统配置的不同,可能会导致获得意外的权限,最终导致权限提升。

    修复建议

    升级OpenSSH至最新版本

    0.0.准备工作.由于升级过程ssh会连接不上,需要先开启telnet服务,这个一定不要忘记

    #开启Telnet服务
    chkconfig telnet on
    

    然后使用另外一台服务器,看能不能通过Telnet连接到这台升级OpenSSH的服务器.

    #比如升级OpenSSH服务器地址为"X.X.X.X"
    telnet X.X.X.X
    

    0.1.准备工作.安装依赖软件包

    yum install wget gcc -y
    yum install -y zlib-devel openssl-devel 
    yum install pam-devel libselinux-devel zlib-devel openssl-devel -y
    

    1.0.备份ssh文件,如果升级出问题,再回滚

    cp -r  /etc/ssh   /etc/ssh20211111
    cp -r  /etc/pam.d /etc/pam.d20211111
    cp -r /etc/init.d/sshd /etc/init.d/sshd20211111
    #这个文件夹我的服务器里面没有,所以报错了,但是我忽略没有管,继续往下走就行了→报错信息→cp: 无法获取"/etc/init.d/sshd" 的文件状态(stat): 没有那个文件或目录
    cp  /usr/bin/ssh /usr/bin/ssh20211111
    

    2.0.下载新版的OpenSSH

    #去指定文件夹下下载安装包 ( 后续还要在此文件夹下解压文件,编译安装系列操作 )
    cd /usr/local/src
    #根据自己需要安装版本 ( 我这里是安装的8.6版本 )
    wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.6p1.tar.gz
    

    3.0.卸载旧版OpenSSH

    一代新人换旧人...

    #查看已经安装的OpenSSH相关软件
    rpm -qa | grep openssh
    #输出...
    #openssh-7.4p1-21.el7.x86_64
    #openssh-server-7.4p1-21.el7.x86_64
    #openssh-clients-7.4p1-21.el7.x86_64
    
    #卸载旧版本 ( 旧版本名称大家的都不一样,具体卸载名称需要根据自己查找到的名称进行卸载 )
    #卸载命令模板"rpm -e --nodeps {查到的安装的软件名称}"
    rpm -e --nodeps openssh-7.4p1-21.el7.x86_64
    rpm -e --nodeps openssh-server-7.4p1-21.el7.x86_64
    rpm -e --nodeps openssh-clients-7.4p1-21.el7.x86_64
    #应该有命令是可以批量卸载的吧...自行探索吧...
    

    4.0.安装 - 解压,并切换目录

    #解压
    tar -zxvf openssh-8.6p1.tar.gz
    #切换目录 cd ( change directory )
    cd openssh-8.6p1.tar.gz
    

    4.1.安装 - 执行配置命令

    #注意下,配置的路径后续还需要改,
    ./configure --prefix=/usr/local/openssh/ --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-openssl-includes=/usr --with-privsep-path=/var/lib/sshd
    

    4.2.安装 - 编译 & 安装

    #编译 ( 如果没有执行上一步"./configure ..."的话,这个编译步骤是无法执行的 .
    make
    
    #安装
    make install
    

    4.3.安装 - 复制配置文件

    老实说,这一步是我最迷糊的步骤,各种复制,复制的文件比较多 . . .

    #我是直接复制执行的 . . .
    cp -p contrib/redhat/sshd.init /etc/init.d/sshd
    chmod +x /etc/init.d/sshd
    chkconfig --add sshd
    cp sshd_config /etc/ssh/sshd_config
    cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd
    cp ssh-keygen /usr/bin/
    

    4.4.安装 - 更改配置文件 ( 共2个文件需要编辑 )

    #第1个需要编辑配置文件
    vim /etc/init.d/sshd
    

    具体修改内容↓
    1.
    SSHD=/usr/sbin/sshd 改为 SSHD=/usr/local/openssh/sbin/sshd
    2.
    /usr/sbin/ssh-keygen -A 改为 /usr/local/openssh/bin/ssh-keygen -A
    3.
    $SSHD $OPTIONS && success || failure 这一行的上面加上 → OPTIONS="-f /etc/ssh/sshd_config"


    #第2个需要编辑的配置文件
    vim /etc/ssh/sshd_config
    

    这个好搞,只需要在底部加上2行配置就行了

    PasswordAuthentication yes
    PermitRootLogin yes
    

    5.0.生成认证

    #执行以下两个命令:提示是否覆盖按"y",后面直接回车就好
    ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
    ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
    

    6.0.修改权限

    chmod 600 /etc/ssh/ssh_host_ecdsa_key
    chmod 600 /etc/ssh/ssh_host_rsa_key
    

    7.0.启动服务

    servie sshd start
    

    8.0.验证 - 查看版本

    ssh -V
    OpenSSH_8.6p1, OpenSSL 1.0.2k-fips  26 Jan 2017
    

    上午安装完成之后执行ssh -V,记得是报错了,
    然后执行的sshd -V,
    下午再次执行ssh -V就可以了. . .
    终于成功了 . . .

    摘抄文档

  • 相关阅读:
    Linux之权限
    Linux基础和文件操作
    linux之用户、用户组、用户提权
    linux之Vim使用
    java面向对象
    eclipse首选项常用设置
    eclipse中添加项目运行程序
    eclipse的基本配置
    eclipse安装
    Jemter压力测试核心流程
  • 原文地址:https://www.cnblogs.com/love-zf/p/15517737.html
Copyright © 2020-2023  润新知