前言

客户提供的物理机,在上面部署了公司产品,然后客户做安全扫描,扫出了ssh支持弱加密算法风险

涉及到的算法

ssh包含了很多算法,比如密钥交换算法(KexAlgorithms)、加密算法(Ciphers)和消息认证码算法(MACs)等,具体算法有hmac-sha1、hmac-sha1-96、3des-cbc、arcfour等等,每个操作系统支持的算法可能不太一样,可以通过以下命令查看

# 消息认证码算法
ssh -Q mac
# 密钥交换算法
ssh -Q kex
# 加密算法
ssh -Q cipher

比如我用自己的笔记本测试如下:

经测试ssh3.9无法使用如上命令,测了一下ssh7.4及9.X都ok,其他版本确实懒得测了。。。

暖心提示

后面带有@openssh.com这样的,是指托管的网站,不同操作系统结果不同,一定要把这些算法都记录下来,做好备份,同时要确保服务器还有其他连接方式,如telnet等,或者能摸到物理机器,然后可以插上显示器操作,因为以下解决问题的方式很可能导致ssh无法连接服务器,同时以下操作都是在物理机器环境下,物理机器搭载centos7.9操作系统,我没有在云服务器上做过以下操作,不确定方法是否通用!!!!!

解决问题

首先备份/etc/ssh/sshd_config文件,我们需要修改该文件,出现问题好恢复

弱加密算法的话,最好还是询问安全扫描的人员,扫描的时候会判定哪些加密算法为弱加密,目前大家都会认为是弱加密的是des 3des,消息认证是hmac-md5系列,指定这些算法之外的就可以了,如下,在/etc/ssh/sshd_config加上这两行即可,有些扫描机制还会将ARCFOUR、hmac-ripemd160认为是不安全的,所以我说,还得看具体的扫描逻辑,主要是要知道,哪些算法在该扫描机制下不安全,或者说在当前场景下不安全

Ciphers aes128-ctr,aes192-ctr,aes256-ctr
MACs hmac-sha1,hmac-ripemd160

再次提示:做备份做备份做备份,操作很危险

文件修改完成并保存后执行如下命令重启sshd服务

systemctl restart sshd

如果正常的话,应该不会有任何提示,但是如果出现类似如下提示

就是sshd服务重启失败了,这个时候一定一定不要关闭当前的shell,也就是你的远程连接页面,不然你包爆炸的老弟,你包无法通过ssh连接服务器的,然后赶紧先把备份恢复回去,再执行一次

systemctl restart sshd

 然后好好确认你刚才修改的文件哪里不对,或者按照提示执行journalctl -xe看一下哪里有问题了

如果重启sshd之后没有任何提示应该就是成功了,然后还是千万不要关闭当前shell,多打开几个shell,好好测测能不能继续通过ssh命令去连接服务器,如果不能的话,把刚才ssh -Q mac/cipher 的结果都加进去,注意别带后面有@openssh.com的这种。。。哥们儿那个是指定的网站

后记

关于ssh openssh等知识还是有点匮乏,后面再补充记录一下

Logo

加入社区!打开量化的大门,首批课程上线啦!

更多推荐