Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
externalip-webhook — CVE-2020-8554: 利用 LoadBalancer 或 ExternalIPs 的中间人攻击 | Kitploit
工具/GitHubGitHub/rancher/externalip-webhook
容器安全配置审计网络安全云安全错误配置API 安全Archived
GitHubrancher/externalip-webhook

externalip-webhook

CVE-2020-8554: 利用 LoadBalancer 或 ExternalIPs 的中间人攻击

查看仓库
3474年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

externalip-webhook

为解决 CVE-2020-8554 而创建

注意: 此 chart 在 Kubernetes 1.21 版本中已弃用,自 1.22 版本起不再支持。要缓解 CVE-2020-8554,请在集群上启用 DenyServiceExternalIPs 准入控制器。

externalip-webhook 是一个验证 webhook,用于阻止服务使用随机外部 IP。集群管理员可以通过指定 allowed-external-ip-cidrs 参数来配置允许用作外部 IP 的 CIDR 列表。Webhook 将仅允许创建不需要外部 IP 或其外部 IP 在管理员指定范围内的服务。

该仓库基于 kubebuilder 构建。

部署

要将外部 IP 限制到特定 CIDR,请取消注释并更新 webhook.yaml 中的 allowed-external-ip-cidrs。

注意:如果启用了 auth-proxy,则在 metrics_server_auth_proxy.yaml 中更新 allowed-external-ip-cidrs。

部署预构建的 webhook

要使用此仓库中的清单部署 webhook,环境中必须安装 kustomize。 你可以在此处下载 kustomize:https://kubernetes-sigs.github.io/kustomize/installation/

root@kitploit:~
make deploy

构建并部署 webhook

root@kitploit:~
make docker-build IMG=DOCKER_IMAGE_TAG
make deploy IMG=DOCKER_IMAGE_TAG

构建并部署 Helm chart

为了方便部署,已创建了一个 rancher-externalip-webhook Helm chart。

要将外部 IP 限制到特定 CIDR,请在 helm 命令中设置 allowedExternalIPCidrs 值

构建 webhook docker 镜像并生成新 chart 版本

root@kitploit:~
make rancher-ci

仅生成新 chart 版本

root@kitploit:~
make rancher-chart-ci

Helm chart 修订版将生成在 build/chart 文件夹下。Helm chart 归档文件 build/chart/latest/rancher-externalip-webhook-<VERSION>.tgz 和 Helm chart 文件夹 build/chart/rancher-externalip-webhook

部署 chart

root@kitploit:~
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

配置

更新 webhook 命名空间

Webhook 默认运行在 externalip-validation-system 命名空间下。可以通过更新 kustomization.yaml 文件中的 namespace 和 namePrefix 来更改。

Webhook 证书生成

Webhook 证书可以通过 cert-manager 生成,也可以通过上传证书的方式提供。以下部分说明了如何实现。

使用 cert manager

取消注释 kustomization.yaml 文件中所有包含 'CERTMANAGER' 的部分。

上传 webhook 证书

  1. 将证书数据(ca.crt、tls.crt 和 tls.key)作为 Kubernetes Secret 上传,Secret 名称为 webhook-server-cert,命名空间与 kustomization.yaml 一致。
  2. 更新 manifests.yaml 中的 caBundle 字段。

启用指标端点

每当 webhook 拒绝服务创建或更新操作时,它会发出 webhook_failed_request_count 指标。

不使用 auth-proxy 启用

取消注释 webhook.yaml 中的 --metrics-addr 以及 containers.Port 中的对应部分。

使用 auth-proxy 启用 /metrics

  1. 取消注释 kustomization.yaml 文件中所有包含 'METRICS_SERVER_RBAC' 的部分。
  2. 为 auth_proxy_client_clusterrole.yaml 中的集群角色创建集群角色绑定。

将指标导出到 Prometheus

按照此处的步骤导出 webhook 指标。

社区、讨论、贡献与支持

了解如何参与 Kubernetes 社区,请访问社区页面。

你可以通过以下方式联系此项目的维护者:

  • Slack
  • 邮件列表

行为准则

参与 Kubernetes 社区需遵守 Kubernetes 行为准则。

下载工具