(CKS) Kubelet ve Kube-apiserver TLS Version ve Cipher atama
Esenlikler,
Sınavda Kubelet güvenliğine
dair konu başlığı mevcut. Bu konuya örnek olması amacıyla biz;
- minimum TLS versiyonunun 12
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 cipher ları atayacağız.
Kubelet #
- Öncelikle kubelet servisinin kullandığı config dosyasını bulalaım.
ps -aux | grep -i kubelet
# Çıktısı
root 35493 3.7 1.5 1647572 122696 ? Ssl 08:10 2:59 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --container-runtime-endpoint=unix:///run/containerd/containerd.sock --pod-infra-container-image=registry.k8s.io/pause:3.9
Gördüğünüz gibi –config parametresinde dosyanın yolu görünüyor. --config=/var/lib/kubelet/config.yaml
- Önemli bir konfigürasyon dosyası olması sebebiyle yedeğini alalım.
cp -rvf /var/lib/kubelet/config.yaml ~/
- Şimdi bir editör ile
/var/lib/kubelet/config.yaml
dosyamızı açalım ve aşağıdaki parametreleri dosyamızın en altına ekleyelim.
🔥 Parametrelerin açıklamalarının bulunduğu resmi döküman
tlsMinVersion: VersionTLS12
tlsCipherSuites: ['TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256','TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384','TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256']
- Parametre eklerken bir yazım hatası yapmadıysanız kubelet servisi active olacaktır.
systemctl status kubelet
# Çıktısı
● kubelet.service - kubelet: The Kubernetes Node Agent
Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/kubelet.service.d
└─10-kubeadm.conf
Active: active (running)
Kube-apiserver #
- Öncelikle kube-apiserver’ımızın yedeğini alalım.
cp -rvf /etc/kubernetes/manifests/kube-apiserver.yaml ~/
- Şimdi bir editör ile
/etc/kubernetes/manifests/kube-apiserver.yaml
dosyamızı açalım ve aşağıdaki parametreleri dosyamızın en altına ekleyelim.
🔥 Parametrelerin açıklamalarının bulunduğu resmi döküman
- --tls-cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- --tls-min-version=VersionTLS12
- Parametre eklerken bir yazım hatası yapmadıysanız kube-apiserver podu bir süre sonra ayaklanacaktır.
Ayaklanmaz ise logların hatanızı tespit edebilirsiniz.