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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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