OpenSSH 升级

升级机器信息收集

OpenSSH/openssl 版本 OpenSSH_6.9p1, OpenSSL 1.0.2j-fips  26 Sep 2016
系统:CentOS release 6.5 (Final)
内核版本:2.6.32-431.el6.x86_64

离线操作说明: 本文是离线操作的,其中依赖的所有的包,都是下载到本地,然后scp 或者其它方式上传到我们的没有外网的机器上的。

主要流程为:

  1. 基于 Dropbear 设置备用 ssh 服务器
  2. 备份 SSH 配置
  3. 编译安装 Openssl (按需)
  4. 升级Openssh
  5. 验证

风险点:

  1. 可能由于 Openssh 更新失败,导致 sshd 服务异常,影响正常登陆。
  2. 也可能存在上述内容升级过程中因依赖问题导致失败。

一、基于 Dropbear 设置备用 ssh 服务器

Dropbear 是一个相对轻量级的SSH服务器和客户端。它是与 OpenSSH 〜/ .ssh / authorized_keys公钥认证兼容的。 我们通过Dropbear 搭建一个新的SSH 服务器。 主要是为了避免在 升级 OpenSSH 的时候,ssh 连接异常,登陆不上服务器。

https://matt.ucc.asn.au/dropbear/dropbear.html

  1. 配置一个新的SSH 服务 dropbear

    wget  https://matt.ucc.asn.au/dropbear/dropbear-2020.80.tar.bz2
    tar -xjf dropbear-2020.80.tar.bz2
    cd dropbear-2020.80
    ./configure && make && make scp && make install
    mkdir /etc/dropbear
    /usr/local/bin/dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key
    /usr/local/bin/dropbearkey -t rsa -s 4096 -f /etc/dropbear/dropbear_rsa_host_key
    /usr/local/sbin/dropbear -p 25022 # 这个加下到开机启动中。 后面再除去。
  2. 测试 dropbear 服务是否可以正常提供SSH 服务

    1. 关闭 sshd,然后通过 dropbear 提供的端口进行登录。 仍然用原来的用户和密码。

二、 Openssh 更新

升级版本为: Openssh7.4 与 阿里云(ECS Centos7.7)版本一致。 OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017

2.1 ssh配置 备份

cp -raf /etc/ssh /etc/ssh.bak2020
cp -raf /etc/init.d/sshd /etc/init.d/sshd.bak2020
cp -raf /root/.ssh/ /root/.ssh.bak2020
cp -raf /home/yeemiao/.ssh/ /home/yeemiao/.ssh.bak2020

2.2 openssh 升级

yum   remove  openssh  # 卸载 openssh
wget https://openbsd.mirror.netelligent.ca/pub/OpenBSD/OpenSSH/portable/openssh-7.4p1.tar.gz
tar -xzvf openssh-7.4p1.tar.gz
cd openssh-7.4p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-ssl-dir=/usr/local/openssl102j/ # 注意 --with-ssl-dir 值为 openssl 安装的目录。
make && make install &&
install -v -m755 contrib/ssh-copy-id /usr/bin &&
install -v -m644 contrib/ssh-copy-id.1 /usr/share/man/man1 &&
install -v -m755 -d /usr/share/doc/openssh-7.4p1 &&
install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-7.4p1 mv /etc/init.d/sshd /etc/init.d/sshd.bak2020_2
cp -raf /etc/init.d/sshd.bak2020 /etc/init.d/sshd
mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak2020_2
cp -raf /etc/ssh.bak2020/sshd_config /etc/ssh/sshd_config service sshd restart
chkconfig sshd on

Openssl 升级(由于Openssh编译失败)

异常信息:

error: *** Can't find recent OpenSSL libcrypto (see confiig.log)

解决办法: 重新编译个 openssl

在测试环境这个问题没有出现,可能由于正式环境原来编辑的 openssl 不完整,重新编译下就行了。

重新编译可以保留原来的 openssl, 然后使用一个新的目录即可。

openssl 备份

cp -raf /usr/bin/openssl /usr/bin/openssl.old
cp -raf /usr/include/openssl /usr/include/openssl.old
cp -raf /usr/lib64/libssl.so /usr/lib64/libssl.so.lod
cp -raf /usr/lib64/libssl.so.1.0.1e /usr/lib64/libssl.so.1.0.1e.old
cp -raf /usr/lib64/libssl.so.10 /usr/lib64/libssl.so.10.old
cp -raf /usr/lib64/libcrypto.so.10 /usr/lib64/libcrypto.so.10.old

openssl 安装

Openssl 下载地址: https://www.openssl.org/source/old/1.0.2/

我这使用的版本是 openssl-1.0.2j

tar  -xzvf  openssl-1.0.2j.tar.gz
cd openssl-1.0.2j/
./config --prefix=/usr/local/openssl102j shared
make && echo $?
make test && echo $?
make install && echo $?

openssl 配置

#  以下删除的前面都已经备份
rm -rf /usr/bin/openssl
ln -s /usr/local/openssl102j/bin/openssl /usr/bin/openssl
rm /usr/include/openssl
ln -s /usr/local/openssl102j/include/openssl /usr/include/openssl
rm /usr/lib64/libssl.so
ln -s /usr/local/openssl102j/lib/libssl.so.1.0.0 /usr/lib64/libssl.so
rm /usr/lib64/libssl.so.10
ln -s /usr/local/openssl102j/lib/libssl.so.1.0.0 /usr/lib64/libssl.so.10
rm /usr/lib64/libcrypto.so.10
ln -s /usr/local/openssl102j/lib/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so.10 echo "/usr/local/openssl102j/lib" >> /etc/ld.so.conf

加载依赖和检查

ldconfig -v
openssl version -a

参考文献

Openssl 下载地址: https://www.openssl.org/source/old/1.0.2/

https://www.cnblogs.com/leekeggs/p/9557205.html

https://blog.csdn.net/u012949658/article/details/53771871

Centos6.5 离线 Openssh 升级的更多相关文章

  1. CentOS6.5的openssl升级

    CentOS6.5的openssl升级:(修复心脏漏血漏洞) [root@linux1 ~]# rpm -qi openssl|grep VersionVersion : 1.0.1e Vendor: ...

  2. Centos 6.x Openssh 升级 7.7p1 版本

    OpenSSH 升级 目前在一家金融公司上班,正好赶上金融公司各种暴雷,本人心里慌慌的. 然后就是金融公司要进行的最低的三级等保评测,各种修改系统安全,密码强度.WAF.防火墙等各种. 评测公司对我司 ...

  3. 记录openssl和openssh升级中遇到的问题以及解决方法

    本文档讲述的升级操作是基于操作系统centos6.5,使用的openssl版本是openssl-1.0.2l.tar.gz,openssh版本是openssh-7.6p1.tar.gz. 1. 依赖检 ...

  4. 【原创】大叔问题定位分享(28)openssh升级到7.4之后ssh跳转异常

    服务器集群之间忽然ssh跳转不通 # ssh 192.168.0.1The authenticity of host '192.168.0.1 (192.168.0.1)' can't be esta ...

  5. centos6.5源码升级内核

    centos6.5源码升级内核 升级前 系统版本:  CentOS5.5 内核版本:  2.6.18-194.el5 升级前做过简单配置文件修改 yum -y upgrade    升级后 系统版本: ...

  6. CentOS6.x服务器OpenSSH平滑升级到7.3p版本——拒绝服务器漏洞攻击

    对于新安装的Linux服务器,默认OpenSSH及OpenSSL都不是最新的,需要进行升级以拒绝服务器漏洞攻击.本次介绍的是升级生产环境下CentOS6.x系列服务器平滑升级OpenSSL及OpenS ...

  7. CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

    对于新安装的Linux服务器,默认OpenSSH及OpenSSL都不是最新的,需要进行升级以拒绝服务器漏洞攻击.本次介绍的是升级生产环境下CentOS6.x系列服务器平滑升级OpenSSL及OpenS ...

  8. centos7生产环境下openssh升级

    由于生产环境ssh版本太低,导致使用安全软件扫描时提示系统处于异常不安全的状态,主要原因是ssh漏洞.推荐通过升级ssh版本修复漏洞 因为是生产环境,所以有很多问题需要注意.为了保险起见,在生产环境下 ...

  9. CentOS openssh升级到openssh-7.2版本

    查看现在的版本SSH -V 一.准备 备份ssh目录(重要) cp -rf /etc/ssh /etc/ssh.bak [ 可以现场处理的,不用设置 安装telnet,避免ssh升级出现问题,导致无法 ...

随机推荐

  1. 实战分享丨MySQL 与Django版本匹配相关经验

    摘要:关于MySQL 与Django版本匹配相关知识的经验分享. run: (env) E:\PythonPro\PyDjangoProDemo011\xuanyuaniotpro>python ...

  2. TypeScript 安装及基础运行环境搭建

    安装 TypeScript npm install -g typescript 安装成功后,命令行输入 tsc -v 命令提示当前安装的 TypeScript 版本: 出现版本号即安装成功. 使用 V ...

  3. python基础 Day7

    python Day7 基础数据类型的补充 str的数据类型补充 capitalize函数将首字母大写,其余变小写 s1="taibei" print(s1.capitalize( ...

  4. arp_ignore与arp_announce

    arp_ignore:定义接收到ARP请求时的响应级别0:只要本地设置的有相应的地址,就给予响应.(默认)1:仅回应目标IP地址是本地的入网地址的arp请求.2:仅回应目标IP地址是本地的入网地址,而 ...

  5. 基于 abp vNext 微服务开发的敏捷应用构建平台 - 设计构想

    许多中小企业的管理模式都是在自身的发展过程中不断摸索,逐步建立起来的,每一家都有其独有的管理模式,而且随着企业的不断发展,管理模式也在不断变化中.企业在发展壮大的过程中离不开信息化系统的支撑,企业在构 ...

  6. 2020.5.28 第八篇 Scrum冲刺博客

    Team:银河超级无敌舰队 Project:招新通 项目冲刺集合贴:链接 目录 一.每日站立会议 1.1 会议照片 1.2 项目完成情况 二.项目燃尽图 三.签入记录 3.1 代码/文档签入记录 3. ...

  7. 怎么给Ubuntu Server安装GUI桌面

    sudo apt update sudo apt upgrade sudo add-apt-repository universe sudo add-apt-repository multiverse ...

  8. 牛客网PAT练兵场-A除B

    题目地址:https://www.nowcoder.com/pat/6/problem/4043 题解:遍历大数,边除边输出,最后得到余数输出即可 /** * *作者:Ycute *时间:2019-1 ...

  9. vs _ 用户代码片段 _ html模板

    自定义模板:首选项 -> 用户代码片段 - >(如果没有自己创个)html.json t : 表示缩进 n:表示换行 ----------------------------------- ...

  10. centos6.8上安装部署 jhipster-registry

    必备环境:jdk8,git,maven 1.安装nodejs #由于采用编译的方式很容易出现一些意外的惊喜,所以我们这儿直接用yum命令安装 #1.查看nodejs版本(命令中不要加 -y 如果版本不 ...