Centos7 升级 openSSH 到8.8p1的详细步骤

        由于项目构建时间比较长,近期安全检查发现openssh有漏洞。所以要升级openssh到8.8p1版本。由于ssh用于远程连接,所以要谨慎操作。本文讲的步骤是在Centos7.3系统、原openssh是系统安装时自带的7.6版本基础上进行升级(其他版本类似),建议生成环境要先做测试,之后再在生产环境升级。

一、升级说明

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,zlib-1.2.11.tar.gz,openssl-1.0.2o.tar.gz

下载地址:

百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间https://pan.baidu.com/s/19Jfg8fdnat8oP6G8nmKiHQ提取码:6x5r

三、安装并启用Telnet

1、安装telnet服务端

yum -y install xinetd telnet-server

image.png

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

image.png

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

image.png

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

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

vi /etc/pam.d/remote

#auth required pam_securetty.so

image.png

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

 
  1. systemctl restart telnet.socket
  2. systemctl restart xinetd

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

四、安装升级

(1)、升级前环境准备

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

2、关闭系统防火墙

systemctl stop firewalld.service

3、关闭SElinux

检查是否关闭:

getenforce

如果未关闭,关闭之

setenforce 0

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

  vi /etc/selinux/config

修改:

  SELINUX=disabled

保存退出。

image.png

4、安装相关依赖包

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

image.png

安装完毕后执行下面命令,确保所有依赖包正常安装

rpm -qa | egrep "gcc|make|perl|zlib|zlib-devel|pam|pam-devel"

image.png

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

1、停止ssh服务

systemctl stop sshd

备份ssh配置文件

cp -r /etc/ssh /etc/ssh.old 

2、查看系统原有openssh包

rpm -qa | grep openssh

image.png

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

rpm -e --nodeps  xxxxxxxxxx

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

image.png

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

image.png

 
  1. make
  2. make install

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

ll /usr/local/zlib

image.png

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

4、编译安装openssl

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

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

image.png

5、升级openssh,编译安装

1、tar -zxvf openssh-8.8p1.tar.gz
2、cd openssh-8.8p1
3、./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-privsep-path=/var/lib/sshd
4、make
修改文件权限
5、chmod 600 /etc/ssh/ssh_host_rsa_key
6、chmod 600 /etc/ssh/ssh_host_ecdsa_key
7、chmod 600 /etc/ssh/ssh_host_ed25519_key
make install

image.png

 
修改配置文件,允许root直接登录
1、echo "PasswordAuthentication yes"   >> /etc/ssh/sshd_config
2、echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
ssh服务必须开机自启动,因此要进行一些设置
3、cp -p 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 restart sshd

验证ssh版本

ssh -V

ssh登录测试,可以成功登录。

image.png

openssh版本升级完成!

如果之前是rpm包安装的。并且按照以上步骤操作,可以直接以下命令进行回滚

# yum -y install openssh-clients
# yum -y install openssh-server
# yum -y install openssh

转载请注明: feichai 2019年05月22日于 废柴博客 发表

  • 8
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要升级CentOS 7的OpenSSH版本到8.8,可以按照以下步骤进行: 1. 安装EPEL存储库: ``` sudo yum install epel-release ``` 2. 安装OpenSSH 8.8: ``` sudo yum install openssh-server ``` 3. 启动OpenSSH服务: ``` sudo systemctl start sshd ``` 4. 验证OpenSSH版本: ``` ssh -V ``` 如果显示的版本为OpenSSH 8.8,则升级成功。 请注意,在升级OpenSSH之前,建议备份重要的配置文件和数据。升级过程可能会影响系统的稳定性和安全性。 ### 回答2: 在升级 CentOS 7 的 OpenSSH 之前,需要先确认系统版本。可以通过以下命令检查: ``` cat /etc/centos-release ``` 接下来,需要确保系统已经安装了 EPEL 软件源。如果未安装,可以通过以下命令安装: ``` yum install epel-release -y ``` 安装 EPEL 软件源后,就可以使用以下命令升级 OpenSSH: ``` yum --enablerepo=epel-testing install openssh -y ``` 执行这个命令之后,系统会自动下载和安装最新版本的 OpenSSH。安装完成后,可以使用以下命令确认版本: ``` ssh -V ``` 升级完成后,需要注意一些事项,例如备份现有 OpenSSH 配置文件等。新版本的 OpenSSH 可能会有一些不兼容的更新,需要进行配置调整。同时,也需要确保升级后的 OpenSSH 在安全性方面没有问题。建议仔细阅读系统日志和相关文档,以确保升级后系统的运行稳定和安全。 ### 回答3: CentOS 7是一款广受欢迎的服务器操作系统,由于其稳定性和可靠性被广泛使用。OpenSSH是一套免费开源的SSH协议的实现,可以通过加密通道来保证安全性,防止中间人攻击。然而,CentOS 7默认安装的OpenSSH版本较低,不能满足一些新功能和安全性需求。在这种情况下,用户可以选择将OpenSSH版本升级到8.8来增强安全性和性能。 以下是在CentOS 7上升级OpenSSH 8.8的步骤: 1. 安装OpenSSH编译工具 在升级过程中,需要使用OpenSSH编译工具,因此需要使用以下命令安装: sudo yum install gcc make pam-devel zlib-devel 2. 下载OpenSSH8.8 从OpenSSH官方网站上,下载最新的OpenSSH 8.8版本: sudo wget https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.8p1.tar.gz 3. 解压下载的文件 使用以下命令解压下载的文件: sudo tar -zxvf openssh-8.8p1.tar.gz 4. 编译和安装OpenSSH 接下来,需要编译OpenSSH,使用以下命令: cd openssh-8.8p1 sudo ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/lib64/openssl sudo make sudo make install 5. 禁用老版本的OpenSSH 现在,需要停止老版本的OpenSSH服务,并禁止其自动启动,使用以下命令: sudo systemctl stop sshd sudo systemctl disable sshd 6. 启用新版本的OpenSSH 接下来,需要启动新版本的OpenSSH服务,并确认其运行状态,使用以下命令: sudo systemctl start sshd sudo systemctl status sshd 7. 测试新版本的OpenSSH 现在,使用SSH客户端连接到服务器,并检查新版本的OpenSSH功能是否正常。如果所有步骤都执行正确,则应该成功升级OpenSSH 8.8。 总结 CentOS 7是一款功能强大的服务器操作系统,其默认安装的OpenSSH版本相对较低。通过按照上述步骤升级OpenSSH 8.8,可以提高安全性和性能,避免一些可能的安全隐患。为了确保成功升级,请务必逐步执行上述步骤,检查每个命令的输出和状态,并测试新版本的OpenSSH是否正常。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值