
CVE-2020-8554: Man-in-the-middle utilizzando LoadBalancer o ExternalIPs
creato per affrontare CVE-2020-8554
Nota: Questo chart è deprecato per la versione di Kubernetes 1.21 e non supportato a partire dalla 1.22. Per mitigare CVE-2020-8554, abilita il controller di ammissione DenyServiceExternalIPs sul cluster.
externalip-webhook è un webhook di validazione che impedisce ai servizi di utilizzare IP esterni casuali. Gli amministratori del cluster
possono specificare un elenco di CIDR consentiti per l'uso come IP esterno tramite il parametro allowed-external-ip-cidrs.
Il webhook consentirà solo la creazione di servizi che non richiedono un IP esterno o i cui IP esterni rientrano nell'intervallo
specificato dall'amministratore.
Questo repository è realizzato utilizzando kubebuilder.
Per limitare l'IP esterno a determinati CIDR, decommenta e aggiorna allowed-external-ip-cidrs in webhook.yaml.
NOTA: Se auth-proxy è abilitato, aggiorna allowed-external-ip-cidrs in metrics_server_auth_proxy.yaml.
Per distribuire il webhook utilizzando i manifest in questo repository, devi avere kustomize nel tuo PATH.
Puoi scaricare kustomize qui: https://kubernetes-sigs.github.io/kustomize/installation/
make deploy
make docker-build IMG=DOCKER_IMAGE_TAG
make deploy IMG=DOCKER_IMAGE_TAG
È stato creato un chart Helm rancher-externalip-webhook per facilitare la distribuzione.
Per limitare l'IP esterno a determinati CIDR, imposta il valore allowedExternalIPCidrs nel comando Helm.
Per compilare l'immagine Docker del webhook e generare una nuova versione del chart
make rancher-ci
Per generare solo una nuova versione del chart
make rancher-chart-ci
Helm char revision sarebbe generata sotto la cartella build/chart. Archivio del chart Helm build/chart/latest/rancher-externalip-webhook-<VERSION>.tgz e cartella del chart Helm build/chart/rancher-externalip-webhook
Distribuzione del chart
helm -n externalip-webhook template rancher-externalip-webhook build/chart/latest/rancher-externalip-webhook-<VERSION>.tgz --output-dir . --set metrics.enabled=true --set metrics.prometheusExport=true
kubectl apply -R -f ./rancher-externalip-webhook
Il webhook viene eseguito di default nel namespace externalip-validation-system. Può essere modificato aggiornando il namespace e
namePrefix nel file kustomization.yaml.
I certificati del webhook possono essere generati tramite cert-manager o caricando i certificati. La sezione seguente spiega come ottenere questo risultato.
Decommente tutte le sezioni con 'CERTMANAGER' nel file kustomization.yaml.
webhook-server-cert nello stesso
namespace del file kustomization.yaml.caBundle in manifests.yaml.Il webhook emette la metrica webhook_failed_request_count ogni volta che rifiuta un'operazione di creazione o aggiornamento di un servizio.
Decommente --metrics-addr e la sezione corrispondente in containers.Port in webhook.yaml.
Segui i passaggi indicati qui per esportare le metriche del webhook.
Scopri come partecipare alla community di Kubernetes nella pagina della community.
Puoi contattare i manutentori di questo progetto a:
La partecipazione alla community di Kubernetes è regolata dal Kubernetes Code of Conduct.