一、黑白名单用途
黑名单能有效防止某个IP恶意攻击
或者拒绝特定IP
的访问(黑名单以外的IP都能通过);白名单则只允许特定IP的访问(白名单以外的IP都不能通过)。
二、Ingress黑白名单配置
Ingress部署可以参考我之前的文章进行配置 EKS Ingress+ALB如何突破白名单数量限制?
2.1 配置黑名单
ingress 配置
1 | kind: Ingress |
- nginx.ingress.kubernetes.io/server-snippet:在nginx 的 server 配置块中添加自定义配置;
- nginx.ingress.kubernetes.io/whitelist-source-range:允许的客户端IP源范围,该值是逗号分隔的CIDR列表,例如
10.0.0.0/24,172.10.0.1
。
测试白名单
在 192.168.208.88
这台电脑上访问
1 | $ curl -Ik http://nginx.qa.service.com |
2.2 配置白名单
ingress 配置
获取客户端IP,添加白名单地址
1 | kind: Ingress |
测试白名单
在 192.168.208.88
这台电脑上访问
1 | $ curl -Ik http://nginx2.qa.service.com |
获取客户端IP 方式二
还有一种更简单获取客户端IP的方式,在ingress configmap配置文件data下添加 use-forwarded-headers: 'true'
1 | kind: ConfigMap |
这个在每个ingress上只需要使用 nginx.ingress.kubernetes.io/whitelist-source-range
添加白名单地址就可以了
全局白名单配置
配置 ingress
的 configmap
配置 nginx-configuration
1 | kind: ConfigMap |
该配置对所在 namespace
下的所有 ingress
都生效,实际使用则非常少见,了解就行了