
CVE-2020-8554 : Attaque de l'homme du milieu via LoadBalancer ou ExternalIPs
créé pour traiter CVE-2020-8554
Remarque : Ce chart est obsolète pour Kubernetes version 1.21 et n'est plus pris en charge à partir de 1.22. Pour atténuer CVE-2020-8554, activez le contrôleur d'admission DenyServiceExternalIPs sur le cluster.
externalip-webhook est un webhook de validation qui empêche les services d'utiliser des IP externes aléatoires. Les administrateurs de cluster
peuvent spécifier la liste des CIDR autorisés à être utilisés comme IP externe en définissant le paramètre allowed-external-ip-cidrs.
Le webhook n'autorisera la création que des services qui ne nécessitent pas d'IP externe ou dont les IP externes sont dans la plage
spécifiée par l'administrateur.
Ce dépôt est construit avec kubebuilder.
Pour restreindre l'IP externe à certains CIDR, décommentez et mettez à jour allowed-external-ip-cidrs dans webhook.yaml.
REMARQUE : Si auth-proxy est activé, mettez à jour allowed-external-ip-cidrs dans metrics_server_auth_proxy.yaml.
Pour déployer le webhook à l'aide des manifests de ce dépôt, vous devez avoir kustomize dans votre PATH.
Vous pouvez télécharger kustomize ici : https://kubernetes-sigs.github.io/kustomize/installation/
make deploy
make docker-build IMG=DOCKER_IMAGE_TAG
make deploy IMG=DOCKER_IMAGE_TAG
Un chart Helm rancher-externalip-webhook a été créé pour faciliter le déploiement.
Pour restreindre l'IP externe à certains CIDR, définissez la valeur allowedExternalIPCidrs dans la commande Helm.
Pour construire l'image Docker du webhook et générer une nouvelle version du chart
make rancher-ci
Pour simplement générer une nouvelle version du chart
make rancher-chart-ci
La révision du chart Helm sera générée dans le dossier build/chart. L'archive du chart Helm build/chart/latest/rancher-externalip-webhook-<VERSION>.tgz et le dossier du chart Helm build/chart/rancher-externalip-webhook
Déploiement du 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
Par défaut, le webhook s'exécute dans le namespace externalip-validation-system. Cela peut être modifié en mettant à jour le namespace et
le namePrefix dans le fichier kustomization.yaml.
Les certificats du webhook peuvent être générés via cert-manager ou en téléversant des certificats. La section suivante explique comment procéder.
Décommentez toutes les sections avec 'CERTMANAGER' dans le fichier kustomization.yaml.
webhook-server-cert dans le même namespace
que kustomization.yaml.caBundle dans manifests.yaml.Le webhook émet les métriques webhook_failed_request_count chaque fois qu'il rejette une opération de création ou de mise à jour de service.
Décommentez --metrics-addr et la section correspondante dans containers.Port dans webhook.yaml.
Suivez les étapes mentionnées ici pour exporter les métriques du webhook.
Apprenez comment interagir avec la communauté Kubernetes sur la page communautaire.
Vous pouvez joindre les mainteneurs de ce projet à :
La participation à la communauté Kubernetes est régie par le Code de conduite Kubernetes.