当前位置:   article > 正文

Centos7.9-升级openssh9.7p1,修复安全漏洞

Centos7.9-升级openssh9.7p1,修复安全漏洞

Centos7.9-升级openssh9.7p1,修复安全漏洞

说明:ssh服务可以说是最重要的服务之一,远程管理基本都是使用这个了。然而如果出现漏洞,就存在很大的风险,需要及时升级ssh版本来修复漏洞。

主要方法:利用ansible批量源码编译安装openssh

                    

思路:

首先在ansible主控端,创建个关于升级openssh的目录,将需要升级的ssh9.7p1tar包下载至该目录;在/etc/ansible/hosts主机清单填写想要升级的那些主机,可写ip地址,域名;在上述目录中编写shell安装openssl3-1.5,openssh-9.7p1一键安装脚本;最后撰写playbook剧本:首先调用yum模块在所有主机通过安装所需要升级的依赖,再调用copy模块将主控端的tar包,脚本分发到目标主机,脚本分发过去时并没有执行权限,再调用file模块授权分发过去的脚本赋予执行权限,最后调用shell模块执行被控端的脚本升级openssh9.7p1版本。 在运行playbook剧本前检查主控端与被控端是否做好ssh免密通信!!!

问:为什么升级openssh时也要同时升级openssl?

       答:升级 OpenSSH 时需要升级 OpenSSL,是因为 OpenSSH 使用 OpenSSL 库来实现加密通信功能。OpenSSL 是一个开源的加密库,为许多应用程序提供了加密功能。OpenSSH 作为一个安全的远程登录工具,使用 OpenSSL 提供的加密算法来保护通信数据的安全性。因此,为了确保 OpenSSH 在进行加密通信时能够使用最新的加密算法和安全漏洞修复,升级 OpenSSH 时也需要升级 OpenSSL。这样可以保证系统在进行远程登录和文件传输时的安全性和稳定性。

主控端: 以下操作都在/openssh_upgrade_9.7/目录下

1.下载所需软件包

       mkdir -p /openssh_upgrade_9.7/

       wget -P /openssh_upgrade_9.7/ https://www.openssl.org/source/openssl-3.1.5.tar.gz --no-check-certificate       #下载openssl3.1.5

       wget -P /openssh_upgrade_9.7/ https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.7p1.tar.gz --no-check-certificate       #下载openssh9.7p1

---------------------------------------------------------------------------

2.撰写一键安装openssl-3.1.5 shell脚本

       vim upgrade_openssl.sh

              #!/bin/bash

                cd /usr/local/src/

                mv /usr/lib64/openssl /usr/lib64/openssl.old

                yum -y remove openssl

                tar xf openssl-3.1.5.tar.gz

                cd /usr/local/src/openssl-3.1.5

                ./config --prefix=/usr

                make && make install

---------------------------------------------------------------------------

3.撰写一键安装openssh-9.7p1 shell脚本

       vim upgrade_openssh.sh

              #!/bin/bash

                cd /usr/local/src/

                tar xf openssh-9.7p1.tar.gz

                mkdir /etc/ssh.bak

                mv /etc/ssh/ /etc/ssh.bak

                cd /usr/local/src/openssh-9.7p1

                ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl --with-md5-passwords

                make && make install

                cp /usr/local/src/openssh-9.7p1/contrib/redhat/sshd.init /etc/init.d/sshd

                mv /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service.bak

                cp /etc/ssh/sshd_config{,.bak}

                sed -i 's/^PermitRootLogin/#&/' /etc/ssh/sshd_config

                sed -i '32i PermitRootLogin yes' /etc/ssh/sshd_config

                chkconfig --add sshd

                systemctl daemon-reload

                systemctl restart sshd

---------------------------------------------------------------------------

4.撰写playbook剧本

       vim one-click-upgrade.yml

---

- hosts: all

  tasks:

  - name: yum安装所需升级依赖

    yum:

      name: "{{ packages }}"

    vars:

      packages:

        - gcc

        - gcc-c++

        - openssl-devel

        - libstdc++*

        - libcap*

        - pam-devel

        - zlib-devel

        - perl

        - perl-IPC-Cmd

  - name: copy所需安装包,脚本到目标主机

    copy:

      src: /ssh_upgrade_9.7/

      dest: /usr/local/src/

  - name: 授权copy过去的脚本赋予执行权限

    file:

      path: /usr/local/src/upgrade_openss*

      mode: '0755'

  - name: 调用shell脚本升级ssl3.1.5

    shell: /usr/local/src/upgrade_openssl.sh

  - name: 调用shell脚本升级ssh9.7p1

shell: /usr/local/src/upgrade_openssh.sh

5.主机清单撰写

vim /etc/ansible/hosts

上述playbook中-hosts:all 代表所有主机,如果想升级某个区段可写-host:web

6.运行playbook剧本

上述全绿代表运行成功

7.在主控端调用command模块查看被控端openssl,openssh是否升级成功 例:

上述代表运行成功

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/285795
推荐阅读
相关标签
  

闽ICP备14008679号