漏洞原理

kubernets组件在相互通信的时候,采用的是https协议。https协议作为一种安全的通信协议,就是在http协议的基础上,加了ssl层,ssl层通过各种各样的加密算法最终实现整个报文在传输过程中的安全性。
然而在多种加密算法中,DES和3DES算法会被漏洞扫描工具认为是不安全的算法(具体为什么不安全,有兴趣的朋友可以私下去了解),k8s组件在不配置ssl加密算法的情况下,默认使用的加密算法就会使用到DES和3DES算法,因为就会被扫出来漏洞。

漏洞信息

SSL/TLS协议信息泄露漏洞(CVE-2016-2183)
通过分析漏洞报告不难发现,端口对应分别是etcd,kube-apiserver,kube-controller-manager,kube-schedule等服务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修复方案

参考文章:https://www.jianshu.com/p/96d3c5843e57
通过去修改每个组件的ssl加密算法,不让其采用DES,3DES算法,就可以修复该漏洞

操作方案

以下方案只要针对采用二进制方式安装的k8s环境,kubeadm方式安装的环境,可能修改的配置文件和路径不同

etcd

  1. 在etcd.conf文件中添加ETCD_CIPHER_SUITES参数,取值为:
ETCD_CIPHER_SUITES="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"

在这里插入图片描述
2. 加载配置文件,重启服务

systemctl daemon-reload && systemctl restart etcd 

kube-apiserver,kube-controller-manager,kube-schedule

  1. 分别在kube-apiserver,kube-controller-manager,kube-schedule配置文件中添加参数,取值为:
--tls-cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2. 加载配置文件,重启服务

systemctl daemon-reload && systemctl restart kube-controller-manager.service
systemctl daemon-reload && systemctl restart kube-apiserver.service
systemctl daemon-reload && systemctl restart kube-scheduler.service
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐