漏洞信息



漏洞检测
可以使用openssl或者nmap来检测,nmap的版本要大于7.0。我这里使用nmap。
etcd
2379,2380
nmap --script ssl-enum-ciphers -p 2379,2380 ip

apiserver
6443
nmap --script ssl-enum-ciphers -p 6443 ip

kubelet
10250
nmap --script ssl-enum-ciphers -p 10250 ip

修复步骤
etcd
在启动命令中添加如下配置:
- --cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

等待pod重启。

再次检查,漏洞修复。

apiserver
在启动命令中添加如下配置:
- --tls-cipher-suites=TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256

等待pod重启。

再次检查,漏洞修复。

kubelet
在kubelet的启动配置文件10-kubeadm.conf的ExecStart=最后面添加如下配置:
--tls-cipher-suites=TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256

重启kubelet。
systemctl daemon-reload
systemctl restart kubelet
systemctl status kubelet

再次检查,漏洞修复。

PS
非k8s集群的漏洞修复方式参考:
https://blog.csdn.net/ximenjianxue/article/details/111983377