麒麟操作系统漏洞修复保姆级教程弱(一)算法漏洞修复
如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情
目录
一、相关问题
二、建议修复方法
修复方案(方案一和方案二是错误示范,干货在方案三)
方案一、首先我想按照第一步,将OpenSSH升级解决这一漏洞
1、查看当前配置的yum源可以升级的最新版本
2、查看当前我已安装的rpm包
3、执行升级命令
4、验证版本
5、重启ssh服务
6、修复结果:
方案二、修改配置
1、建议方法
2、查看一下/etc/ssh/sshd_config文件是否有相关字段
3、编辑/etc/ssh/sshd_config配置文件,将相关字段注释,并加入新的字段后保存
4、重启sshd服务
5、返回结果
方案三、麒麟原厂工程师的建议(最终成功版)
1、原厂建议
2、查看相关文字
3、将我用绿色标记的字段删除就可以了~~~~
4、删除后重启sshd服务
容易失误的点:
1,升级失败
2、文件修改错误
1、我这里举例是把“,”逗号写成了长空格,这样会导致sshd重启失败
2、重启失败了
3、修改回来,就可以正常启动了
💬欢迎交流:在学习过程中如果你有任何疑问或想法,欢迎在评论区留言,我们可以共同探讨学习的内容。你的支持是我持续创作的动力!
👍点赞、收藏与推荐:如果你觉得这篇文章对你有所帮助,请不要忘记点赞、收藏,并分享给更多的小伙伴!你们的鼓励是我不断进步的源泉!
🚀推广给更多人:如果你认为这篇文章对你有帮助,欢迎分享给更多对Linux感兴趣的朋友,让我们一起进步,共同提升!
一、相关问题
最近小屁在工作中遇到了一个漏洞,麒麟操作系统SSH 服务支持弱加密算法【原理扫描】中级漏洞,漏洞详情如下
在配置远程SSH服务器时,出于安全性考虑,应避免使用诸如arcfour、aes128-cbc、blowfish-cbc、3des-cbc等弱加密算法。RFC 4253明确指出,arcfour算法存在诸多安全隐患,不建议使用。该算法在设计上存在漏洞,容易遭受密钥恢复攻击等安全威胁,攻击者可利用这些漏洞获取敏感信息,进而对服务器及相关数据造成严重破坏 。
aes128-cbc也面临着一些挑战,例如在某些场景下可能存在对初始向量(IV)的管理不当风险,使得加密信息有被破解的可能性。blowfish-cbc同样存在一定的安全缺陷,随着计算能力的提升,其加密强度逐渐难以满足日益增长的安全需求。而3des-cbc算法由于其密钥长度相对较短,运算效率较低,并且容易受到中间相遇攻击,已不再适合用于高强度的安全防护场景。
二、建议修复方法
安全软件中建议修复方案如下解决方案:
提供两种解决方案,一种是特殊场景下的解决方案,.另外一种是常规解决方案。
一 特殊场景下的解决方案
运行以下命令来查看OpenSSH版本:ssh -v
根据OpenSSH版本,查找该版本支持的加密算法列表。可以在OpenSSH的文档中查找对应版本支持的加密算法列表,或者在网上搜索
二 常规解决方案
方案一:升级 openssh 版本为最新版本,推荐该方案。
方案二:
注释SSH服务中的弱算法,并且使用强加密算法。需要注意,由于SSH服务就只会使用强加密算法了。这可能会导致一些旧的SSH客户端无法连接到你的SSH服务,因为它们可能不支持这些强加密算法
1. 打开SSH配置文件,一般位于/etc/ssh/sshd_config。
2. 在该配置文件中,找到以下这些行(如果存在的话)并删除或注释掉它们,如果不存在的话,直接跳到第3步
Ciphers aes128-cbc,aes192-cbc,aes256-cbc,MACs hmac-md5,hmac-sha1,hmac-ripemd160
3. 向配置文件添加或修改以下行以只允许使用强加密算法
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,chacha20-poly1305@openssh.com,aes128-gcm@openssh.com,aes256-gcm@openssh.com
4. 保存并关闭配置文件。
5. 重新启动SSH服务以使改动生效。在大多数系统中,你可以使用service sshd restart 命令来重启SSH服务
修复方案(方案一和方案二是错误示范,干货在方案三)
方案一、首先我想按照第一步,将OpenSSH升级解决这一漏洞
1、查看当前配置的yum源可以升级的最新版本
[root@localhost ~]# yum check-update | grep openssh
openssh.x86_64 8.2p1-9.p19.ky10 ks10-adv-updates
openssh-clients.x86_64 8.2p1-9.p19.ky10 ks10-adv-updates
openssh-server.x86_64 8.2p1-9.p19.ky10 ks10-adv-updates
当前可升级的最高版本为:8.2p1-9.p19.ky10(我配置的yum源是从麒麟官方拉取的)
2、查看当前我已安装的rpm包
[root@localhost ~]# rpm -qa |grep ssh
openssh-clients-8.2p1-9.p03.ky10.x86_64
openssh-8.2p1-9.p03.ky10.x86_64
pssh-2.3.1-22.ky10.noarch
openssh-server-8.2p1-9.p03.ky10.x86_64
libssh-0.8.3-7.ky10.x86_64
当前我已经安装的版本为:8.2p1-9.p03.ky10(可以升级)
3、执行升级命令
[root@localhost ~]# yum -y update openssh
Last metadata expiration check: 0:01:46 ago on 2025年04月18日 星期五 09时41分40秒.
Dependencies resolved.
================================================================================================================Package Architecture Version Repository Size
================================================================================================================
Upgrading:libselinux x86_64 3.1-1.se.05.ky10 ks10-adv-updates 112 kreplacing libselinux-utils.x86_64 2.9-se.05.ky10libselinux-devel x86_64 3.1-1.se.05.ky10 ks10-adv-updates 100 kopenssh x86_64 8.2p1-9.p19.ky10 ks10-adv-updates 281 kopenssh-clients x86_64 8.2p1-9.p19.ky10 ks10-adv-updates 539 kopenssh-server x86_64 8.2p1-9.p19.ky10 ks10-adv-updates 341 kopenssl x86_64 1:1.1.1f-4.p24.ky10 ks10-adv-updates 458 kopenssl-libs x86_64 1:1.1.1f-4.p24.ky10 ks10-adv-updates 1.4 Mpython3-libselinux x86_64 3.1-1.se.05.ky10 ks10-adv-updates 161 k
Transaction Summary
================================================================================================================
Upgrade 8 Packages
Total download size: 3.3 M
Downloading Packages:
(1/8): libselinux-devel-3.1-1.se.05.ky10.x86_64.rpm 423 kB/s | 100 kB 00:00
(2/8): libselinux-3.1-1.se.05.ky10.x86_64.rpm 435 kB/s | 112 kB 00:00
(3/8): openssh-8.2p1-9.p19.ky10.x86_64.rpm 778 kB/s | 281 kB 00:00
(4/8): openssh-server-8.2p1-9.p19.ky10.x86_64.rpm 1.2 MB/s | 341 kB 00:00
(5/8): openssh-clients-8.2p1-9.p19.ky10.x86_64.rpm 1.7 MB/s | 539 kB 00:00
(6/8): python3-libselinux-3.1-1.se.05.ky10.x86_64.rpm 907 kB/s | 161 kB 00:00
(7/8): openssl-1.1.1f-4.p24.ky10.x86_64.rpm 1.2 MB/s | 458 kB 00:00
(8/8): openssl-libs-1.1.1f-4.p24.ky10.x86_64.rpm 2.1 MB/s | 1.4 MB 00:00
----------------------------------------------------------------------------------------------------------------
Total 2.8 MB/s | 3.3 MB 00:01
……………………
Upgraded:libselinux-3.1-1.se.05.ky10.x86_64 libselinux-devel-3.1-1.se.05.ky10.x86_64 openssh-8.2p1-9.p19.ky10.x86_64 openssh-clients-8.2p1-9.p19.ky10.x86_64 openssh-server-8.2p1-9.p19.ky10.x86_64 openssl-1:1.1.1f-4.p24.ky10.x86_64 openssl-libs-1:1.1.1f-4.p24.ky10.x86_64 python3-libselinux-3.1-1.se.05.ky10.x86_64
Complete!
[root@localhost ~]#
4、验证版本
到这里证明了咱们升级成功了查看一下当前的版本:
[root@localhost ~]# rpm -qa |grep ssh
openssh-clients-8.2p1-9.p19.ky10.x86_64
openssh-8.2p1-9.p19.ky10.x86_64
pssh-2.3.1-22.ky10.noarch
libssh-0.8.3-7.ky10.x86_64
openssh-server-8.2p1-9.p19.ky10.x86_64
[root@localhost ~]#
对比一下之前的版本
[root@localhost ~]# rpm -qa |grep ssh
openssh-clients-8.2p1-9.p03.ky10.x86_64
openssh-8.2p1-9.p03.ky10.x86_64
pssh-2.3.1-22.ky10.noarch
openssh-server-8.2p1-9.p03.ky10.x86_64
libssh-0.8.3-7.ky10.x86_64
p03版本升级到了p19版本
5、重启ssh服务
[root@localhost ~]# systemctl restart sshd
Warning: The unit file, source configuration file or drop-ins of sshd.service changed on disk. Run 'systemctl daemon-reload' to reload units.
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart sshd
[root@localhost ~]# systemctl status sshd
● sshd.service - OpenSSH server daemonLoaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)Active: active (running) since Fri 2025-04-18 10:03:49 CST; 44s agoDocs: man:sshd(8)man:sshd_config(5)Main PID: 2925 (sshd)Tasks: 1Memory: 952.0KCGroup: /system.slice/sshd.service└─2925 /usr/sbin/sshd -D -oCiphers=aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,a>
4月 18 10:03:49 localhost.localdomain systemd[1]: Starting OpenSSH server daemon...
4月 18 10:03:49 localhost.localdomain sshd[2925]: /etc/ssh/sshd_config line 144: Deprecated option RSAAuthentic>
4月 18 10:03:49 localhost.localdomain sshd[2925]: /etc/ssh/sshd_config line 146: Deprecated option RhostsRSAAut>
4月 18 10:03:49 localhost.localdomain sshd[2925]: Server listening on 0.0.0.0 port 22.
4月 18 10:03:49 localhost.localdomain sshd[2925]: Server listening on :: port 22.
4月 18 10:03:49 localhost.localdomain systemd[1]: Started OpenSSH server daemon.
lines 1-17/17 (END)
重启成功,运行状态正常,
6、修复结果:
我将修复结果反馈给了安全部门,回复他们已经修复完成,但是他们扫描完成后,又反馈给我没有修复成功~~~
既然升级行不通,那就按方案2修改配置
方案二、修改配置
1、建议方法
方案二:
注释SSH服务中的弱算法,并且使用强加密算法。需要注意,由于SSH服务就只会使用强加密算法了。这可能会导致一些旧的SSH客户端无法连接到你的SSH服务,因为它们可能不支持这些强加密算法
1. 打开SSH配置文件,一般位于/etc/ssh/sshd_config。
2. 在该配置文件中,找到以下这些行(如果存在的话)并删除或注释掉它们,如果不存在的话,直接跳到第3步
Ciphers aes128-cbc,aes192-cbc,aes256-cbc,MACs hmac-md5,hmac-sha1,hmac-ripemd160
3. 向配置文件添加或修改以下行以只允许使用强加密算法
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,chacha20-poly1305@openssh.com,aes128-gcm@openssh.com,aes256-gcm@openssh.com
4. 保存并关闭配置文件。
5. 重新启动SSH服务以使改动生效。在大多数系统中,你可以使用service sshd restart 命令来重启SSH服务
2、查看一下/etc/ssh/sshd_config文件是否有相关字段
[root@localhost ~]# cat /etc/ssh/sshd_config -n|grep Ciphers26 # Ciphers and keying150 Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com
[root@localhost ~]#
3、编辑/etc/ssh/sshd_config配置文件,将相关字段注释,并加入新的字段后保存
[root@localhost ~]# vim /etc/ssh/sshd_config
150 #Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@op enssh.com
151
152 Ciphers aes128-ctr,aes192-ctr,aes256-ctr,chacha20-poly1305@openssh.com,aes128-gcm@openssh.com,aes256-gcm@ope nssh.com
153
验证:
[root@localhost ~]# cat /etc/ssh/sshd_config -n|grep Ciphers
26 # Ciphers and keying
150 #Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com
152 Ciphers aes128-ctr,aes192-ctr,aes256-ctr,chacha20-poly1305@openssh.com,aes128-gcm@openssh.com,aes256-gcm@openssh.com
4、重启sshd服务
[root@localhost ~]# service sshd restart
Redirecting to /bin/systemctl restart sshd.service
查看运行状态
[root@localhost ~]# systemctl status sshd
● sshd.service - OpenSSH server daemonLoaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)Active: active (running) since Fri 2025-04-18 10:30:39 CST; 6s agoDocs: man:sshd(8)man:sshd_config(5)Main PID: 3027 (sshd)Tasks: 1Memory: 948.0KCGroup: /system.slice/sshd.service└─3027 /usr/sbin/sshd -D -oCiphers=aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,a>
4月 18 10:30:39 localhost.localdomain systemd[1]: Starting OpenSSH server daemon...
4月 18 10:30:39 localhost.localdomain sshd[3027]: /etc/ssh/sshd_config line 144: Deprecated option RSAAuthentic>
4月 18 10:30:39 localhost.localdomain sshd[3027]: /etc/ssh/sshd_config line 146: Deprecated option RhostsRSAAut>
4月 18 10:30:39 localhost.localdomain sshd[3027]: Server listening on 0.0.0.0 port 22.
4月 18 10:30:39 localhost.localdomain sshd[3027]: Server listening on :: port 22.
4月 18 10:30:39 localhost.localdomain systemd[1]: Started OpenSSH server daemon.
lines 1-17/17 (END)
运行状态正常
5、返回结果
到了这一步,我又将返回结果反馈给安全部门扫描,没过两天,安全部门又反馈给我,还是不通过,既然你们建议的两个都不通过,我又求助了麒麟原厂的技术专家,他们给我发了一个新的方法,实际上麒麟需要配置的和漏扫建议的配置文件不同的
方案三、麒麟原厂工程师的建议(最终成功版)
1、原厂建议
修改/etc/crypto-policies/back-ends/opensshserver.config配置文件,将相关的弱算法删除,(需要添加的算法配置文件中存在)然后再重启sshd服务
2、查看相关文字
3、将我用绿色标记的字段删除就可以了~~~~
(aes256-cbc,hmac-sha1,)整体删除不要漏删或者多删,不然ssh会重启失败
4、删除后重启sshd服务
容易失误的点:
1,升级失败
有些人比较聪明,觉得sshd在contos上最新版本已经到了OpenSSH9.8版本以上了,我使用contos的yum源直接升级到9.8版本不就解决了吗?实际上这样会成都那部分风险,我遇到了用户使用contos升级导致ssh重启失败和ftp服务失效的问题,最后给用户 删除重装的sshd解决的
2、文件修改错误
修改/etc/crypto-policies/back-ends/opensshserver.config删除字段多了或者少了,导致sshd重启失败(小屁建议,修改之前将文件备份,以免修改错误或者忘记相关内容)
1、我这里举例是把“,”逗号写成了长空格,这样会导致sshd重启失败
2、重启失败了
3、修改回来,就可以正常启动了
好了今天这段sshd弱算法漏洞就告一段落了。(以上发布内容均为我自己的环境,数据已经进行脱敏,无任何侵权)
想成为大佬,就要从小白开始,从0开始,一点一点的积累,慢慢成长,明天你就是大佬!!想学习更多麒麟操作系统的知识,关注小屁,让你成为运维老鸟~~~~~