漏洞信息
漏洞检测
可以使用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