openssh7.4p升级到9.0p

这篇具有很好参考价值的文章主要介绍了openssh7.4p升级到9.0p。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.前言

2.安装前准备

2.1 启用telnet

2.2 建立备份目录

3.3 安装依赖环境

3.升级openssl

3.1 备份文件

3.2 编译安装openssl

4.升级openssh

4.1 安装zlib

4.2 备份文件

4.3 卸载历史openssh

4.4 编译安装openssh

4.5 配置文件

4.6 功能验证

4.7 关闭telnet远程登录

5 注意事项


1.前言

        对于很多小伙伴来说升级openssh是一件很痛苦的事情(各种问题搞得香菇)。但是漏洞不等人呐说有就有。没办法面对漏洞跪着也要搞完(苦逼运维的自白)。以下的操作说明是小M连续在本地环境(不敢搞生产呀)反复测了N次总结的一些经验与大家分享,希望小伙伴们可以在面对open大坑时也能坦然面对、从容蛋定~~~,废话不多说直奔主题。

2.安装前准备

        openssl下载地址:Release OpenSSL_1_1_1q · openssl/openssl · GitHub

        zlib下载地址:zlib Home Site

        openssh下载地址:pub-OpenBSD-OpenSSH-portable安装包下载_开源镜像站-阿里云

        以上为本次升级所需包的下载地址,后续更新时需注意下载对应的安全无漏洞版本

        升级前先下载以上三个包并上传到服务器,本次三个包的版本分别是:openssl:1.1.1q;openssh:9.0.p1;zlib:1.2.1

        说明:升级openssh前需要安装多个依赖,目标服务器必须可连接外网

        检查服务器是否可连外网

# 检查能否连外网
curl -v www.baidu.com

        升级前查看当前操作系统的openssl的版本是多少,若在漏洞范围内则确定本次需升级

# 查看当前openssl版本
openssl version
# 查看当前openssh版本
ssh -V

2.1 启用telnet

        为防止升级openssh后无法通过ssh连接,升级前需要设置服务器可通过telnet登录,待ssh升级验证通过后再关闭

# 1.安装xinetd、telnet
yum install -y xinetd telnet-server 
# 2.配置telnet(默认无telnet配置文件,首次需新增)
vi /etc/xinetd.d/telnet
service telnet
{
    disable = yes
    flags       = REUSE
    socket_type = stream       
    wait        = no
    user        = root
    server      = /usr/sbin/in.telnetd
    log_on_failure  += USERID
}
# 添加完成后:wq保存退出
# 3.配置telnet登录的终端类型,在/etc/securetty文件末尾增加终端
vi /etc/securetty
pts/0
pts/1
pts/2
pts/3
# 添加完成后:wq保存退出
# 4.启动telnet服务
systemctl enable xinetd --now
systemctl enable telnet.socket --now
# 5.查看telnet端口使用启用(telnet默认端口:23),若启
ss -luntp | grep 23
# 6.若5可以看到23端口处于启动状态,则可在windows下 cmd 执行 telnet ip 验证是否可以连接,可连接则代表无问题,否则查看上述的步骤是否有问题

        至此telnet启用完成

2.2 建立备份目录

# 目标服务器上建立两个目录,/data /backup
mkdir /data # 用于存放安装包
mkdir -p /backup/openssl # 存放原openssl备份文件
mkdir /backup/openssh # 存放原openssh有关的备份文件

3.3 安装依赖环境

        依赖环境需在安装openssl、openssh前进行安装,否则后续安装时会覆盖已经安装好的openssl

# 1.安装依赖环境
yum install  -y zlib-devel openssl-devel pam-devel openssl gcc perl pam* zlib*

        升级顺序:openssl —— openssh

3.升级openssl

3.1 备份文件

# openssl依赖库
cp /usr/lib64/libcrypto.so.10 /backup/openssl
cp /usr/lib64/libcrypto.so.1.0.2k /backup/openssl
cp /usr/lib64/libssl.so.10  /backup/openssl
cp /usr/lib64/libssl.so.1.0.2k /backup/openssl
# openssl可执行文件
mv /usr/bin/openssl /backup/openssl
# openssl依赖文件
mv /usr/include/openssl /backup/openssl/include_openssl
# 配置文件
cp /etc/ld.so.conf /backup/openssl/etc_ld.so.conf

3.2 编译安装openssl

# 1.删除原有的ssl目录
rm -rf /etc/ssl

# 2.解压openssl安装包
cd /data; tar -xf openssl-OpenSSL_1_1_1q.tar.gz
# 进入解压目录,执行编译安装
cd openssl-OpenSSL_1_1_1q
./config shared --prefix=/usr/local/ssl
# 成功显示
Operating system: x86_64-whatever-linux2
Configuring OpenSSL version 1.1.1q (0x1010111fL) for linux-x86_64
Using os-specific seed configuration
Creating configdata.pm
Creating Makefile
**********************************************************************
***                                                                ***
***   OpenSSL has been successfully configured                     ***
***                                                                ***
***   If you encounter a problem while building, please open an    ***
***   issue on GitHub <https://github.com/openssl/openssl/issues>  ***
***   and include the output from the following command:           ***
***                                                                ***
***       perl configdata.pm --dump                                ***
***                                                                ***
***   (If you are new to OpenSSL, you might want to consult the    ***
***   'Troubleshooting' section in the INSTALL file first)         ***
***                                                                ***
**********************************************************************
# 若无报错则继续执行,否则处理报错问题
make && make install
# 查看编译安装结果(返回0代表编译安装成功)
echo $?

# 3.建立软连接及修改配置文件
echo "/usr/local/ssl/lib">>/etc/ld.so.conf
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -sf /usr/local/ssl/include/openssl /usr/include/openssl
echo "/usr/local/ssl/lib" >/etc/ld.so.conf.d/openssl.conf
ldconfig
​
# 4.查看版本,若以上都无问题则此时可以看到升级后的openssl版本
openssl version
OpenSSL 1.1.1q  5 Jul 2022

        至此openssl升级完成

4.升级openssh

4.1 安装zlib

# 1.解压zlib到data目录下
tar -xf zlib-1.2.12.tar.gz

# 2.进入zlib解压目录执行编译安装
cd zlib-1.2.12
./configure --prefix=/usr/local/zlib
# 结果展示
Checking for gcc...
Checking for shared library support...
Building shared library libz.so.1.2.12 with gcc.
Checking for size_t... Yes.
Checking for off64_t... Yes.
Checking for fseeko... Yes.
Checking for strerror... Yes.
Checking for unistd.h... Yes.
Checking for stdarg.h... Yes.
Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf().
Checking for vsnprintf() in stdio.h... Yes.
Checking for return value of vsnprintf()... Yes.
Checking for attribute(visibility) support... Yes

# 3.编译安装
make && make install

# 4.查看编译结果(0为成功)
echo $?

4.2 备份文件

# ssh配置文件目录
mv /etc/ssh /backup/openssh
# pam.d/sshd 文件
mv /etc/pam.d/sshd /backup/openssh

4.3 卸载历史openssh

# 1.查看是否存在历史版本
rpm -qa | grep openssh

# 2.卸载历史版本
rpm -e --nodeps `rpm -qa | grep openssh`

4.4 编译安装openssh

# 1.在data目录下解压openssh
tar -xf openssh-9.0p1.tar.gz
​
# 2.进入解压目录执行编译安装
cd openssh-9.0p1
# 初始化变量
./configure --prefix=/usr/local/ssh --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/ssl/include --with-ssl-dir=/usr/local/ssl --with-zlib=/usr/local/zlib --with-md5-passwords --with-pam
# 关于prefix目录的说明:网上的资料一般建议安装在/usr目录下,这样的好处是编译安装时会直接把可执行文件放到指定的目录,无需建立软链接。但不熟悉目录结构的话则不清楚文件都放到了哪里,且不便于后期升级。据此最好指定一个其他的目录,编译安装完成后再做软链接
​
# 编译安装
make && make install
# 查看编译结果(0为成功)
echo $?

4.5 配置文件

# 创建链接
ln -sf /usr/local/ssh/libexec /usr/libexec/openssh
ln -sf /usr/local/ssh/sbin/sshd /usr/sbin/sshd
ln -sf /usr/local/ssh/bin/scp /usr/bin/scp
ln -sf /usr/local/ssh/bin/ssh /usr/bin/ssh
ln -sf /usr/local/ssh/bin/ssh-add /usr/bin/ssh-add
ln -sf /usr/local/ssh/bin/ssh-agent /usr/bin/ssh-agent
ln -sf /usr/local/ssh/bin/ssh-keygen /usr/bin/ssh-keygen
ln -sf /usr/local/ssh/bin/ssh-keyscan /usr/bin/ssh-keyscan
​
# 在openssh的解压文件下执行
cp contrib/redhat/sshd.init /etc/init.d/sshd
cp contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
cp contrib/ssh-copy-id /usr/bin/ssh-copy-id
# 赋权ssh-copy-id
chmod 755 /usr/bin/ssh-copy-id
​
# 还原备份文件
cp /backup/openssh/ssh/sshd_config /etc/ssh/
cp /backup/openssh/ssh/ssh_config /etc/ssh/
cp /backup/openssh/sshd /etc/pam.d
# 追加到sshd_config
echo "KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1" >> /etc/ssh/sshd_config
​
# 修改sshd_config
vi /etc/ssh/sshd_config
# 取消PermitRootLogin yes的注释 (若不允许root远程登录则此项忽略)
PermitRootLogin yes
# 取消PubkeyAuthentication yes 的注释
PubkeyAuthentication yes
# 若UsePAM yes 默认被注释 则关闭注释
UsePAM yes
​
# 修改ssh_config
vi /etc/ssh/ssh_config
# 将GSSAPIAuthentication yes注释掉
#GSSAPIAuthentication yes
# 保存并退出
​
# 还原依赖库
mv /backup/openssl/libcrypto.so.10 /usr/lib64/libcrypto.so.10
mv /backup/openssl/libssl.so.10 /usr/lib64/libssl.so.10
​
# 设置开机自启
chkconfig sshd on
​
# 启动sshd(或者使用systemctl启动也可以)
/etc/init.d/sshd start
# 服务启动成功后,查看当前版本
ssh -V
OpenSSH_9.0p1, OpenSSL 1.1.1q  5 Jul 2022

4.6 功能验证

        需验证 ssh scp ssh-keygen ssh-copy-id xftp 等是否可用

# 验证ssh
# 1.使用ssh工具远程连接已经升级openssh的服务器,若可连接则代表此功能正常
​
# 验证ssh-keygen
# 1.清除/root/.ssh 下的所有文件
rm -rf /root/.ssh/*
# 2.执行ssh-keygen 点击空格即可
ssh-keygen
# 3.查看/root/.ssh 是否存在公私钥,若存在则代表ssh-keygen功能正常
ls /root/.ssh/
​
# 验证ssh-copy-id
# 1.验证条件,已通过ssh-keygen生成公私钥
# 2.将公钥上传至其他目标服务器,如:192.168.1.1
ssh-copy-id root@192.168.1.1
# 3.上传成功后通过ssh查看是否可免密登录
ssh root@192.168.1.1
# 4.若能登录则代表该功能正常
​
# 验证scp
# 1.在升级openssh的服务器创建测试文件test.txt
touch test.txt
# 2.使用scp将测试文件上传到已经做过免密登录的服务器上
scp test.txt root@192.168.1.1:/usr/local
# 3.若上传成功则代表该功能正常
​
# 验证xftp
# 1.打开xftp工具,使用升级openssh的服务器用户名密码,点击连接
# 2.若连接成功则代表该功能正常

        若服务器之前做过防暴力破解加固,则还需验证当前加固是否可用

# 验证密码错误输入次数限制
# 1.编辑/etc/pam.d/sshd 文件
vi /etc/pam.d/sshd
# 在第一行添加以下内容
auth required pam_tally2.so deny=3 unlock_time=60 even_deny_root root_unlock_time=60
# 添加完成后保存退出
​
# 2.新打开一个终端窗口(不要直接从已保存的会话中启动),ssh远程连接此服务器,输入错误3次后输入正确的密码
ssh root@192.168.1.1

# 3.正常情况:即使输入正确的密码也无法登录服务器

# 4.等待60秒后再次输入正确的密码,若此时能够登录则代表防暴力破解功能正常

        以上功能全部测试通过后即可判定此次升级openssh成功

4.7 关闭telnet远程登录

        为防止后续还会升级openssh,以上验证通过后关闭telnet连接即可,无需卸载

# 关闭telnet
systemctl disable xinetd --now
systemctl disable telnet.socket --now

        至此升级工作完成。

5 注意事项

        1、由于升级openssh会带来一些不必要及不可预料的问题,如:无法远程连接、个别功能不可用、防暴力破解失效 等等,如非必要尽可能不要做升级操作,若必须升级,一定要在自己的虚拟环境下反复测试验证几遍,确保无问题后再上生产操作,尽可能的降低升级风险。

        2、本说明文档的实验环境是:centos7.9 x86_64,理论上支持同服务器架构 centos7.x 系列的openssh升级。当前未在arm架构上做测试,无法确保此升级方案在arm架构上的可行性!!!

        3、升级过程中一定要操作说明做好相关的备份,以防升级失败时可快速还原

        4、升级openssh存在不稳定性,不同服务器环境可能出现的问题不同,升级过程中具体问题需具体分析。

        5、升级openssh后免密登录密钥失效,需重新生成密钥并上传到要免密登录的服务器当中。

        原创不易,转载的小伙伴请标明出处,谢谢~

  文章来源地址https://www.toymoban.com/news/detail-417377.html

到了这里,关于openssh7.4p升级到9.0p的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《Git入门实践教程》前言+目录

    版本控制系统(VCS)在项目开发中异常重要,但和在校大学生的交流中知道,这个重要方向并未受到重视。具备这一技能,既是项目开发能力的体现,也可为各种面试加码。在学习体验后知道,Git多样化平台、多种操作方式、丰富的资源为业内人士提供了方便的同时,也造成

    2024年02月10日
    浏览(72)
  • FPGA学习实践之旅——前言及目录

    很早就有在博客中记录技术细节,分享一些自己体会的想法,拖着拖着也就到了现在。毕业至今已经半年有余,随着项目越来越深入,感觉可以慢慢进行总结工作了。趁着2024伊始,就先开个头吧,这篇博客暂时作为汇总篇,记录在这几个月以及之后从FPGA初学者到也算有一定

    2024年02月03日
    浏览(58)
  • Ubuntu源码升级升级openssh

    参考:Ubuntu20.04 升级openssh9.4(源码升级)_openssh源码下载-CSDN博客

    2024年01月21日
    浏览(26)
  • linux系统openssh升级

    说明 整个过程不需要卸载原先的openssl包和openssh的rpm包。本文的环境都是系统自带的openssh,没有经历过手动编译安装方式。如果之前有手动编译安装过openssh,请参照本文自行测试是否能成功。 如果严格参照本文操作,保证你升级没问题 一、安装依赖包 二、下载openssh对应得

    2024年02月14日
    浏览(36)
  • CentOS升级openssh

    公司几台服务器扫出了几个openssh相关的漏洞,解决办法就是升级openssh版本。升级过程中踩坑较多,故作此博客记录。 !!!前排提示:离线环境可用以下命令在本地预先下载好依赖包 法一: 法二: 以上两个方法仅会将主软件包和基于你现在的操作系统所缺少的依赖关系包

    2024年02月12日
    浏览(35)
  • Linux Openssh 升级(详)

    环境: 系统版本:CentOS Linux release 7.4.1708(Core) Openssh 由6.6.6p1升级到9.2p1 升级说明: OpensSSH依赖于OpenSSL, 源码包下载地址:https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/ OpenSSH sshd 缓冲区错误漏洞(CVE-2016-10012),OpenSSH 7.4 OpenSSH 代码问题漏洞(CVE-2016-10009),OpenSSH 7.4 OpenSSH 资源管理错误

    2024年02月13日
    浏览(34)
  • OpenSSH升级(linux 6)

    一 说明     本文档为Linux6.x Openssh升级至8.4文档。 二 使用打包好的 Openssh rpm 包 进行升级 2.1 安装 telnet 服务 升级Openssh服务之前,确保telnet可以登录系统。 安装步骤如下: rpm -ivh xinetd-2.3.14-29.el6.x86_64.rpm rpm -ivh telnet-0.17-46.el6.x86_64.rpm rpm -ivh telnet-server-0.17-46.el6.x86_64.rpm 2.2 升

    2024年04月15日
    浏览(39)
  • 升级openssh至9.2版本

    根据安全扫描结果,发现原系统自带openssh存在高危漏洞。需要针对图中漏洞进行处理。 由于ssh服务涉及运维方面,对openssh更新前需要预留其他连接服务器方法(如:telnet、VNC)。防止在升级的过程中导致服务器连接不上。 以centos7为例,采取telnet方式对openssh升级至openssh-9

    2024年02月01日
    浏览(29)
  • OpenSSH 漏洞修复升级最新版本

    Centos7系统ssh默认版本一般是OpenSSH7.4左右,低版本是有漏洞的而且是高危漏洞,在软件交付和安全扫描上是过不了关的,一般情况需要升级OpenSSH的最新版本 今天详细说下升级最新版本的处理过程(认真看会发现操作很简单,因为写的操作很详细...) 现在绝大多数服务器的操

    2024年01月22日
    浏览(53)
  • Astah 9.0升级步骤(Widnows/Mac OS)

    Windows升级步骤: 下载:https://cdn.change-vision.com/files/astah-professional-9_0_0-1778f1-jre-64bit-setup.exe 运行astah-professional-9_0_0-1778f1-jre-64bit-setup.exe,安装astah9.0。假定安装在C:Program Filesastah-professional目录 将提供的astah-pro.jar文件覆盖C:Program Filesastah-professional下的astah-pro.jar 运行启动as

    2024年02月05日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包