Centos6.5 离线 Openssh 升级
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 或者其它方式上传到我们的没有外网的机器上的。
主要流程为:
- 基于 Dropbear 设置备用 ssh 服务器
- 备份 SSH 配置
- 编译安装 Openssl (按需)
- 升级Openssh
- 验证
风险点:
- 可能由于
Openssh更新失败,导致sshd服务异常,影响正常登陆。 - 也可能存在上述内容升级过程中因依赖问题导致失败。
一、基于 Dropbear 设置备用 ssh 服务器
Dropbear 是一个相对轻量级的SSH服务器和客户端。它是与 OpenSSH 〜/ .ssh / authorized_keys公钥认证兼容的。 我们通过Dropbear 搭建一个新的SSH 服务器。 主要是为了避免在 升级 OpenSSH 的时候,ssh 连接异常,登陆不上服务器。
配置一个新的SSH 服务
dropbearwget 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 # 这个加下到开机启动中。 后面再除去。
测试
dropbear服务是否可以正常提供SSH 服务- 关闭
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 升级的更多相关文章
- CentOS6.5的openssl升级
CentOS6.5的openssl升级:(修复心脏漏血漏洞) [root@linux1 ~]# rpm -qi openssl|grep VersionVersion : 1.0.1e Vendor: ...
- Centos 6.x Openssh 升级 7.7p1 版本
OpenSSH 升级 目前在一家金融公司上班,正好赶上金融公司各种暴雷,本人心里慌慌的. 然后就是金融公司要进行的最低的三级等保评测,各种修改系统安全,密码强度.WAF.防火墙等各种. 评测公司对我司 ...
- 记录openssl和openssh升级中遇到的问题以及解决方法
本文档讲述的升级操作是基于操作系统centos6.5,使用的openssl版本是openssl-1.0.2l.tar.gz,openssh版本是openssh-7.6p1.tar.gz. 1. 依赖检 ...
- 【原创】大叔问题定位分享(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 ...
- centos6.5源码升级内核
centos6.5源码升级内核 升级前 系统版本: CentOS5.5 内核版本: 2.6.18-194.el5 升级前做过简单配置文件修改 yum -y upgrade 升级后 系统版本: ...
- CentOS6.x服务器OpenSSH平滑升级到7.3p版本——拒绝服务器漏洞攻击
对于新安装的Linux服务器,默认OpenSSH及OpenSSL都不是最新的,需要进行升级以拒绝服务器漏洞攻击.本次介绍的是升级生产环境下CentOS6.x系列服务器平滑升级OpenSSL及OpenS ...
- CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击
对于新安装的Linux服务器,默认OpenSSH及OpenSSL都不是最新的,需要进行升级以拒绝服务器漏洞攻击.本次介绍的是升级生产环境下CentOS6.x系列服务器平滑升级OpenSSL及OpenS ...
- centos7生产环境下openssh升级
由于生产环境ssh版本太低,导致使用安全软件扫描时提示系统处于异常不安全的状态,主要原因是ssh漏洞.推荐通过升级ssh版本修复漏洞 因为是生产环境,所以有很多问题需要注意.为了保险起见,在生产环境下 ...
- CentOS openssh升级到openssh-7.2版本
查看现在的版本SSH -V 一.准备 备份ssh目录(重要) cp -rf /etc/ssh /etc/ssh.bak [ 可以现场处理的,不用设置 安装telnet,避免ssh升级出现问题,导致无法 ...
随机推荐
- NOSQL基础
一.mongoDB介绍和使用 1.分布式文件储存数据库,使用C++开发的,可以存储任意数据(文件),允许在服务器端执行脚本,使用JSON形式储存数据{key:value} 2.支持的编程语言有:PHP ...
- Burp Suite 爆破high级别的DVWA
Step1:调整 DVWA 为 high 级别,然后点击进入 Brute Force . Step2:输入正确的账号,和一个假的密码,使用BP进行拦包. Step3:Ctrl+i 将拦到的包发送到 I ...
- 编译原理根据项目集规范族构造LR(0)分析表
转载于https://blog.csdn.net/Johan_Joe_King/article/details/79058597?utm_medium=distribute.pc_relevant.n ...
- 月历输出php代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Z shell (zsh) 安装
1. 安装 zsh 和一些依赖 sudo apt update sudo apt install -y zsh python-pygments autojump 2.下载推荐配置文件 3. 在家目录解 ...
- Shell编程—gawk进阶
1使用变量 awk编程语言支持两种不同类型的变量: 内建变量 自定义变量 1.1内建变量 1. 字段和记录分隔符变量 数据字段变量允许你使用美元符号($)和字段在该记录中的位置值来引用记录对应的字段. ...
- Java多线程_同步工具CyclicBarrier
CyclicBarrier概念:CyclicBarrier是多线程中的一个同步工具,它允许一组线程互相等待,直到到达某个公共屏障点.形象点儿说,CyclicBarrier就是一个屏障,要求这一组线程中 ...
- Docker 学习笔记(二)
进入当前正在运行的容器 # 我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置 # 命令: docker exec -it 容器 id bashshell 测试 我们通常容器都是使用后台方 ...
- 新手学习seo写原创文章的方法
http://www.wocaoseo.com/thread-102-1-1.html 前两天都是写自己公司克拉玛依电信公司年终活动和总结的事,今天继续学习seo技术,其实说难也难说容易也容易,关键的 ...
- 基于.NetCore3.1系列 —— 日志记录之初识Serilog
一.前言 对内置日志系统的整体实现进行了介绍之后,可以通过使用内置记录器来实现日志的输出路径.而在实际项目开发中,使用第三方日志框架(如: Log4Net.NLog.Loggr.Serilog.Sen ...