How to correctly update kubernetes api-server.yaml manifest file for hardening and sweet32

8/12/2020

I'm attempting to update the /var/lib/kubelet/config.yaml as well as the /etc/kubernetes/manifests/kube-apiserver.yaml manifest to mitigate the SWEET32 vulnerability. From reading the documents and various other pages it appears that updating the files with tls cipher suite list should correct the issue however whenever I make the change on the api-server.yaml file the api-server container never comes up after a kubelet restart.

How should this update be done? via yaml file editing or is there a command line config?

config.yaml has the following appended to the file:

tlsCipherSuites: ["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"]

The kube-apiserver.yaml file is updated with: spec: containers:

command:

    - --tls-cipher-suites=TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_256_GCM_SHA384 
-- owm worker
docker
kubernetes
linux
redhat

1 Answer

8/12/2020

These ciphers should fix all sweet32 issues.

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

Same can be used for kube-apiserver, kube-controller-manager, kube-scheduler, kubelet and etcd as well to mitigate issues for all components.

Edit the respective yaml and pass these for the following argument

--tls-cipher-suites=$ABOVE_TLS_CIPHER_SUITES
-- user2039152
Source: StackOverflow