升级OpenSSH到8.8p1版本解决漏洞扫描修复高危漏洞问题

一、升级说明

1、升级OpenSSH后,原有公钥失效,信任关系需要重新配置;

2、升级过程需要停止sshd服务,会导致ssh和sftp无法使用;

3、升级需要关闭防火墙服务;

4、升级需要关闭selinux服务;

5、升级前需要开启telnet,防止升级失败,系统无法登录,对应的防火墙需要开启23端口,安装需要telnet相关包(推荐通过系统ISO安装)

6、升级过程中需要刷新lib库:ldconfig -v;

7、升级顺序:顺序是zlib库-> openssl -> openssh;

8、升级需要gcc、make、perl、zlib、zlib-devel、pam、pam-devel依赖包;

二、安装包准备

需要准备的安装包(点击可本地下载):

openssh-8.8p1.tar.gz  openssl-1.0.2o.tar.gz zlib-1.2.11.tar.gz

 拷贝到/usr/local/src目录

cp openssh-8.8p1.tar.gz  openssl-1.0.2o.tar.gz zlib-1.2.11.tar.gz  /usr/local/src/ 

网盘下载地址

链接:https://pan.baidu.com/s/1q8LU5giWcdrssdYdKkA84A?pwd=fbql

提取码:fbql

三、安装并启用Telnet

1、安装telnet服务端

yum -y install xinetd telnet-server

2、默认情况下,系统是不允许root用户telnet远程登录的。如果要使用root用户直接登录,需设置如下内容。或者可以添加一个可以登录的用户,登录并su到root用户(建议采用此方法,保证系统安全)。此步骤可跳过!

允许root用户通过telnet登陆:

编辑/etc/pam.d/login,注释掉下面这行

vi /etc/pam.d/login

#auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so

3、添加超级用户登陆设备至/etc/securetty文件

  1. cp /etc/securetty /etc/securetty.bak
  2. echo 'pts/0' >> /etc/securetty
  3. echo 'pts/1' >> /etc/securetty
  4. echo 'pts/2' >> /etc/securetty

4、开启root用户远程登陆。此步骤可跳过!

编辑/etc/pam.d/remote,注释下列这行:

vi /etc/pam.d/remote

#auth required pam_securetty.so

5、重启telnet和xinetd服务【telnet服务依赖于xinetd服务】

  1. systemctl start xinetd
  2. systemctl start telnet.socket

PS:如果开启了防火墙,需要将23端口(系统默认23为telnet端口)添加到防火墙允许的端口的列表中。

四、安装升级

(1)、升级前环境准备

1、将上文下载的三个文件上传至服务器,目录可自行设定,方便即可。

2、关闭系统防火墙

systemctl stop firewalld.service

3、关闭SElinux

检查是否关闭:

getenforce

如果未关闭,关闭之

setenforce 0

上面只是临时关闭了,重启后不生效。下面改配置文件,使永久生效。

vi /etc/selinux/config

修改:

SELINUX=disabled

保存退出。

4、安装相关依赖包

yum -y install gcc make perl zlib zlib-devel pam pam-devel openssl-devel

(2)、升级openSSH(注意从这步开始,通过Telnet登录到服务器,务必)

备份ssh配置文件

mv   /etc/ssh /etc/ssh_bak

2、查看系统原有openssh包

rpm -qa | grep openssh

根据上面查询出的结果,卸载系统里原有Openssh(一般有三个包,全部卸载)

rpm -e --nodeps  xxxxxxxxxx

卸载完成后执行rpm -qa | grep openssh,确保没有回显

3、编译安装zlib

解压刚才上传到服务器的zlib-1.2.11.tar.gz,并进行编译安装

  1. tar -xzvf zlib-1.2.11.tar.gz  
  2. cd zlib-1.2.11
  3. ./configure --prefix=/usr/local/zlib

如果报错类似下图所示,请安装gcc

  1. make
  2. make install

验证zlib安装是否成功,要包含include、lib、share三个目录。

ll /usr/local/zlib

  1. 新建并编辑配置文件:
  2. vi /etc/ld.so.conf.d/zlib.conf 
  3. 加入如下内容后保存退出
  4. /usr/local/zlib/lib 
  5. 刷新库文件,加载刚才编译安装的zlib生成的库文件
  6. ldconfig -v 或者(/sbin/ldconfig -v)

4、编译安装openssl

解压安装openssl包,并进行编译安装

  1. tar -xzvf openssl-1.0.2o.tar.gz
  2. cd openssl-1.0.2o
  3. ./config shared zlib --prefix=/usr/local/openssl
  4. make      (时间比较长,切勿打断)
  5. make install     (时间比较长,切勿打断)
  6. 重命名现有文件目录
  7. mv /usr/bin/openssl /usr/bin/openssl.bak
  8. 创建ssl相关软连接
  9. ln -s /usr/local/openssl/bin/openssl   /usr/bin/openssl
  10. ln -s /usr/local/openssl/include/openssl  /usr/include/openssl
  11. 编辑配置文件
  12. vi /etc/ld.so.conf.d/ssl.conf
  13. 加入如下内容后保存退出
  14. /usr/local/openssl/lib
  15. 刷新库文件,加载刚才编译安装的ssl生成的库文件
  16. ldconfig -v
  17. 查看openssl版本
  18. openssl version 

5、升级openssh,编译安装

1、tar -zxvf openssh-8.8p1.tar.gz

2、cd openssh-8.8p1

3. ./configure --prefix=/usr/ --sysconfdir=/etc/ssh/ -with-openssl-includes=/usr/include/openssl --with-ssl-dir=/usr/local/openssl/   --with-pam  --with-zlib --with-md5-passwords 

  1. 配置成功提示

4、make

​​​​​​​make install

  1. make install 成功

修改配置文件,允许root直接登录​​​​​​​

1、echo "PasswordAuthentication yes"   >> /etc/ssh/sshd_config​​​​​​​

2、echo "PermitRootLogin yes" >> /etc/ssh/sshd_config​​​​​​​

ssh服务必须开机自启动,因此要进行一些设置​​​​​​​

3、cp contrib/redhat/sshd.init /etc/init.d/sshd​​​​​​​

4  chmod +x /etc/init.d/sshd​​​​​​​

5、chkconfig --add sshd​​​​​​​

6、chkconfig sshd on​​​​​​​

7、systemctl start sshd

验证ssh版本

ssh -V

注意文章里文件的安装目录与路径不要修改,修改后可能导致升级不成功。

升级完记得把telnet服务关闭以及禁用root 直接登陆 修改还原 /pam.d下的配置文件。

rpm -e telnet-server-0.17-64.el7.x86_64

一 问题描述

ssh 192.168.1.101登陆报错:

no hostkey alg

二 解决办法

vi /etc/ssh/sshd_config
添加一行内容:
HostKeyAlgorithms +ssh-rsa,ssh-dss

无法ssh远程登陆  需要核实 PermitRootLogin yes 是否开启

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值