K8s组件的SSL/TLS 漏洞(CVE-2016-2183)修复

ssl漏洞,需要避免使用3DES算法,K8S涉及这个漏洞的有etcd,kubelet,kube-apiserver,kube-controller-manager和kube-scheduler五个组件。

rancher启动的k8s的集群都是容器化的,启动了一个个独立的docker。他的etcd,kubelet,kube-apiserver的ssl都没有问题,kube-controller-manager和kube-scheduler需要修复。

kube-operator启动的k8s集群etcd和kubelet是systemctl启动的,kube-apiserver,kube-controller-manager,kube-scheduler是容器启动的。他的kube-controller-manager和kube-scheduler的ssl没有问题,etcd,kubelet,kube-apiserver需要修复。

nmap是一个强大的网络扫描工具,主要用于网络安全测试和渗透测试。它能够扫描目标主机的开放端口、操作系统类型、版本信息等。

#官网下载:https://nmap.org/dist/nmap-7.93-1.x86_64.rpm,上传后安装:
 
rpm -ivh nmap-7.93-1.x86_64.rpm
 
 
#执行检测

nmap --script ssl-enum-ciphers -p 10257 10.12.3.141

扫描结果重点关注warnings,64-bit block cipher 3DES vulnerable to SWEET32 attack,漏洞修复成功则没有该项提示。

 

1.etcd(2380端口)修复:(已验证)

etcd默认使用TLSv1.2,只需要设置SSL协议,k8s是通过kube-operator安装的是systemctl启动,/etc/kubernetes/manifests/etcd.yaml中没有配置文件,配置文件在/etc/systemd/system/etcd.service中进行配置。修改配置文件,增加如下配置:

--cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA

若是systemctl启动,修改配置后重启服务

systemtctl daemon-reload && systemctl restart etcd.service

再次检测

nmap --script ssl-enum-ciphers -p 2380 10.12.20.90

2.kube-controller-manager(10257)、kube-scheduler(10259)修复:

--tls-cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

若是system启动,修改配置后重启服务

systemtctl daemon-reload
systemctl restart kube-controller-manager.service
systemctl restart kube-scheduler.service

再次检测

#kube-controlle
nmap --script ssl-enum-ciphers -p 10257 10.12.20.90
#kube-scheduler
nmap --script ssl-enum-ciphers -p 10259 10.12.20.90

使用rancher部署的k8s集群,需要在rancher中进行配置(已验证)

在kube-controlle和scheduler下添加

extra_args:
        tls-cipher-suites: >-
          TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

 

 

3. kubelet(10250)修复(已验证)

修改配置文件/var/lib/kubelet/config.yaml
vim /var/lib/kubelet/config.yaml
tlsCipherSuites: [TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA]
若是system启动,修改配置后重启服务
systemtctl daemon-reload 
systemctl restart kubelet.service

再次检测

#kubelet
nmap --script ssl-enum-ciphers -p 10250 10.12.20.90

4. kube-apiserver (6443)修复(验证失败)

修改配置文件

kube-apiserver: /etc/kubernetes/manifests/kube-apiserver.yaml 修改后有问题,apiserver容器exit集群会down。
--tls-cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

若是system启动,修改配置后重启服务


systemtctl daemon-reload 
systemctl restart kube-apiserver.service

再次检测


#kube-apiserver nmap --script ssl-enum-ciphers -p 6443 10.12.20.90

 

posted @   潇潇暮鱼鱼  阅读(65)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2024-01-02 prometues报错 err=“opening storage failed: lock DB directory: resource temporarily unavailable”
2024-01-02 Get "http://127.0.0.1:10252/healthz": dial tcp 127.0.0.1:10252: connect: connection refused
点击右上角即可分享
微信分享提示