概要描述
TOS kubelet的10250端口无需认证即可查看各类信息如主机所有日志、所有运行的pod信息,并在pod中执行任意命令,存在很大安全问题,需要修复。
详细说明
1、修复前,可直接访问后端的pod:
curl -k -XPOST https://kubeletIP:10250/run/
例如我本地172.22.27.1的环境:
2、修复步骤
2.1 先把3个apiserver节点改了,要用mv的方式,不要直接vim:
sudo cp /opt/kubernetes/manifests-multi/tos-apiserver.manifest /tmp
sudo vim /tmp/tos-apiserver.manifest
apiserver 加参数
–kubelet-client-certificate=/etc/kubernetes/ssl/admin.pem
–kubelet-client-key=/etc/kubernetes/ssl/admin-key.pem
sudo mv /tmp/tos-apiserver.manifest /opt/kubernetes/manifests-multi/tos-apiserver.manifest
2.2 所有节点:
kubelet 加参数
sudo vim /usr/lib/systemd/system/kubelet.service
–authorization-mode=Webhook \
–client-ca-file=/srv/kubernetes/ca.pem \
sudo systemctl daemon-reload
sudo systemctl restart kubelet
(只要restart kubelet即可,无需整个重启TOS)
3、修复后,再次访问后台pod,会forbidden:
4、修改manager模板,防止重启TOS时被覆盖
文件路径:/var/lib/transwarp-manager/master/content/meta/services/TOS/{manager-7.0.1910a-final}/teplates/
修改方法同步骤2