麒麟操作系统漏洞修复保姆级教程弱(一)算法漏洞修复

发布于:2025-04-19 ⋅ 阅读:(19) ⋅ 点赞:(0)

如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情

目录

一、相关问题

二、建议修复方法

修复方案(方案一和方案二是错误示范,干货在方案三)

方案一、首先我想按照第一步,将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 k
     replacing  libselinux-utils.x86_64 2.9-se.05.ky10
 libselinux-devel             x86_64           3.1-1.se.05.ky10                ks10-adv-updates           100 k
 openssh                      x86_64           8.2p1-9.p19.ky10                ks10-adv-updates           281 k
 openssh-clients              x86_64           8.2p1-9.p19.ky10                ks10-adv-updates           539 k
 openssh-server               x86_64           8.2p1-9.p19.ky10                ks10-adv-updates           341 k
 openssl                      x86_64           1:1.1.1f-4.p24.ky10             ks10-adv-updates           458 k
 openssl-libs                 x86_64           1:1.1.1f-4.p24.ky10             ks10-adv-updates           1.4 M
 python3-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 daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2025-04-18 10:03:49 CST; 44s ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 2925 (sshd)
    Tasks: 1
   Memory: 952.0K
   CGroup: /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 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
[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 daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2025-04-18 10:30:39 CST; 6s ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 3027 (sshd)
    Tasks: 1
   Memory: 948.0K
   CGroup: /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开始,一点一点的积累,慢慢成长,明天你就是大佬!!想学习更多麒麟操作系统的知识,关注小屁,让你成为运维老鸟~~~~~ 


网站公告

今日签到

点亮在社区的每一天
去签到