Lxn-Chan!

(~ ̄▽ ̄)→))* ̄▽ ̄*)o

前几日客户侧反馈服务器的openssh服务全是漏洞,要求升级,且升级过程必须完全离线,小小研究了一下,记录于此。

环境版本信息

  • 分支信息:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    [root@localhost ~]# cat /etc/os-release
    NAME="CentOS Linux"
    VERSION="7 (Core)"
    ID="centos"
    ID_LIKE="rhel fedora"
    VERSION_ID="7"
    PRETTY_NAME="CentOS Linux 7 (Core)"
    ANSI_COLOR="0;31"
    CPE_NAME="cpe:/o:centos:centos:7"
    HOME_URL="https://www.centos.org/"
    BUG_REPORT_URL="https://bugs.centos.org/"
    [root@localhost ~]# cat /etc/redhat-release
    CentOS Linux release 7.9.2009 (Core)
  • 内核信息:
    1
    2
    [root@localhost ~]# uname -a
    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
  • OpenSSL信息:
    1
    2
    [root@localhost ~]# openssl version
    OpenSSL 1.0.2k-fips 26 Jan 2017
  • openssh-server信息:
    1
    2
    [root@localhost ~]# ssh -V
    OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017

获取资源

在可联网的CentOS 7主机上下载资源。

  1. 下载Telnet,方便卸载sshd之后连接到服务器。如果能够直接访问服务器也可以不下载。
    1
    yum install --downloadonly --downloaddir=$PWD/telnet telnet-server xinetd
  2. 下载编译工具:
    1
    yum install --downloadonly --downloaddir=$PWD/compile zlib* pam-* gcc make perl* perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
  3. 下载openssl源码:
    1
    wget https://github.com/openssl/openssl/releases/download/OpenSSL_1_1_1w/openssl-1.1.1w.tar.gz -O openssl-1.1.1w.tar.gz
  4. 下载openssh源码:
    1
    wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p1.tar.gz

将上述下载的依赖项全部传入被升级主机。

安装telnet

  1. 安装rpm:
    1
    rpm -ivh *.rpm --nodeps --force
  2. 移除安全策略使得可以使用root账户从telnet登录:
    1
    mv /etc/securetty /etc/securetty.bak
  3. 启用telnet:
    1
    systemctl enable --now telnet.socket

随后即可使用telnet登录到主机。

编译安装OpenSSL

  1. 解压openssl:
    1
    tar -zxvf openssl-1.1.1w.tar.gz
  2. 创建配置文件:
    1
    cd openssl-1.1.1w && ./config --prefix=/usr/local/openssl
  3. 编译安装:
    1
    make -j8 && make install
  4. 创建连接:
    1
    2
    3
    ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
    ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
    ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
  5. 查看openssl版本:
    1
    2
    [root@localhost ~]# openssl version
    OpenSSL 1.1.1w 11 Sep 2023

编译安装openssh

  1. 先卸载原有的openssh-server防止冲突:
    1
    yum remove -y openssh
    备份并移走原有配置文件:
    1
    mv /etc/ssh /etc/ssh.bak
  2. 解压openssh源码:
    1
    tar -zxvf openssh-9.9p1.tar.gz && cd openssh-9.9p1
  3. 创建配置:
    1
    2
    3
    ./configure --prefix=/usr/ --sysconfdir=/etc/ssh  --with-openssl-includes=/usr/local/openssl/include \
    --with-ssl-dir=/usr/local/openssl --with-zlib --with-md5-passwords \
    CCFLAGS="-I /usr/lib/openssl/openssl/include" LDFLAGS="-L /usr/lib/openssl/openssl/lib64" --with-pam
  4. 编译安装:
    1
    make -j8 && make install
  5. 修改ssh配置文件/etc/ssh/sshd_config
    找到PermitRootLogin prohibit-password修改为PermitRootLogin yes
  6. 启动一下ssh看一下是否有问题:
    1
    /usr/sbin/sshd -D
    使用客户端连接一下测试是否有问题,能够登录的话直接Ctrl+C关闭即可。
  7. 创建systemd service文件/etc/systemd/system/sshd.service
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    [Unit]
    Description=OpenSSH server daemon
    After=network.target

    [Service]
    Type=notify
    EnvironmentFile=/etc/sysconfig/sshd
    ExecStart=/usr/sbin/sshd -D $OPTIONS
    ExecReload=/bin/kill -HUP $MAINPID
    KillMode=process
    Restart=on-failure
    RestartSec=42s

    [Install]
    WantedBy=multi-user.target
    然后创建一下环境变量,暂时不需要往里面写什么东西:
    1
    touch /etc/sysconfig/sshd
  8. 启动sshd服务:
    1
    systemctl enable --now sshd

至此升级结束。

1
2
3
4
5
6
[root@localhost ~]# openssl version
OpenSSL 1.1.1w 11 Sep 2023
[root@localhost ~]# ssh -V
OpenSSH_9.9p1, OpenSSL 1.1.1w 11 Sep 2023
[root@localhost ~]# uname -a
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'

 简单说两句



联系站长 | 服务状态 | 友情链接

备案号:辽ICP备19013963号

萌ICP备 20219421 号

津公网安备12011602300394号

中国互联网违法和不良信息举报中心

架构版本号:8.1.6 | 本站已全面支持IPv6

正在载入运行数据(1/2)请稍后...
正在载入运行数据(2/2)请稍后...

Copyright 2024 LingXuanNing, All rights reserved.