把生产服务器干烂了

2024-07-25 09:55:18 +08:00
 xiaozhu317

-原由:服务器的 SSH 需要升级,因为发现了一些 SSH 漏洞

-过程:我使用的别人整理好的 rpm 文件,确实在测试服务器中升级成功了,但是在正式服务器中升级失败。可能是服务器的 glibc 版本太低,可能导致新版本 SSH 升级失败。(可能有人会问,为什么不自己编译,我在测试服务器自行编译成功升级了,使用 rpm 文件也成功升级了,于是就优先使用的 rpm 文件)

-结果:升级失败后,SSH Session 直接断连,远程连接不上,只好联系服务器供应商。

-庆幸:这个服务器没有在部署的应用,都停掉了,这是唯一庆幸的一点。

-总结: 1.遇到 SSH 升级问题,联系供应商,不要自己尝试,就算自己尝试,提前在供应商那备份快照。 2.确实需要慎重操作服务器。涉及升级软件的操作,一定多测试测试,多准备几个测试环境。 3.工作的时候难免有急躁的时刻,这个时候才是真容易犯错。 4.欢迎各位 V 友指导

14841 次点击
所在节点    服务器
86 条回复
knva
2024-07-25 15:47:31 +08:00
能用为什么要升级
Pierro
2024-07-25 15:48:10 +08:00
前几天也是遇到在 centos7.6 用 node20 提示 glibc 版本过旧 问 gpt 他直接说升级比较复杂不建议升级
gscsnm
2024-07-25 16:20:07 +08:00
至少要先装个备用的登录服务器的通道,比如 telnet 。。
Clannad0708
2024-07-25 17:15:51 +08:00
@xjzshttps 好比你现在用的是 windows 7 然后一天命令升级到 windows11 ,你觉得你的应用,服务啥的会没问题吗?
gvdlmjwje
2024-07-25 17:20:27 +08:00
是不是虚拟机?直接克隆一个后改 ip ,然后你在克隆机上尽管操作鸭
xjzshttps
2024-07-25 17:29:06 +08:00
@xiaozhu317 @Clannad0708
好吧,我这边没这么老的系统版本。
想想以前的确在别人哪里见过老的更新源都没得版本...
lsp7572
2024-07-25 17:36:10 +08:00
最终方案,这种事情都要想好如果失败了怎么办,因为失败是不可避免的
julyclyde
2024-07-25 17:38:44 +08:00
@knva 仅仅是能用那显然是不够的
hefish
2024-07-25 17:39:59 +08:00
ssh 升级干啥,我宁可弄 fail2ban ,宁可弄白名单,我都不自己去升那个 openssh-server
Remember
2024-07-25 17:45:21 +08:00
@julyclyde 这就是 centos 的原因。几大流行发行版,只有 centos 各种组件太旧,网上各种教程教人自己编译安装。其他的都是 apt ,pacman 升级,不可能遇到这种问题的。
julyclyde
2024-07-25 17:47:47 +08:00
@Remember centos 也有 9stream 啊,咋就是 centos 的原因了?这是人的原因
someonedeng
2024-07-25 18:24:44 +08:00
留个 telnet 后路再动手
wabway
2024-07-25 18:56:20 +08:00
1 。先备份 2 。升级前先准备 telnet 作为备用
jim9606
2024-07-25 18:59:32 +08:00
deb rpm 等二进制软件包默认不可移植,即不能跨发行版跨版本(深层原因什么都有,你自己提的 glibc 版本是一个潜在可能性),强行移植可能能用但无可用性保证,后果自负。那些非发行版提供的软件包为了可移植是做了特殊设计的。
正规流程是只是用发行版软件源提供的包且直接使用在线源(或者私有镜像源)安装。玩不明白这套的还是老实用容器吧。
privil
2024-07-25 19:08:05 +08:00
@Remember #50 教编译安装就乖乖编译安装?打个 rpm 包有多难。说到底还是人的问题。
myxingkong
2024-07-25 19:54:45 +08:00
升级好像会重置 sshd_config ,如果有使用自定义端口的话,可以尝试使用默认的 22 端口连接看看。
SekiBetu
2024-07-25 23:23:01 +08:00
docker 的含金量还在增加!
Noicdi
2024-07-25 23:44:03 +08:00
上个月干过类似搞坏 ssh 的事情,在产品的构建服务器上测试一个编译链接的想法,把服务器上的 openssl 的加解密动态库的 soname 给重命名了,这个服务器只有这一个版本。重命名完所有 ssh session 手动关掉,然后准备重连,连不上去了,瞬间想到 ssh 是依赖 openssl 的。真一瞬间冷汗下来了。
然后找到公司 IT 确认这台机器是物理机,申请了权限去了机房 tty 进环境,把动态库重命名回来,把环境又救回来了。

还有一次 yum 升级 kernel 后重启时引导失败,又让 IT 把环境重装,还好环境上啥服务和数据都没有。

现在公司环境凡是涉及到基础软件的升级更新和修改,一律不动手,能跑就别动。
sunxvvv
2024-07-26 00:34:36 +08:00
@sampeng 只能说他运气好,装不上系统提示有问题,还敢强行--nodeps ,这简直就是白给
wtks1
2024-07-26 01:11:54 +08:00
升级之前不应该先开个 telnet 端口来备用吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1059898

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX