Estoy tratando de restringir el acceso a los recursos detrás de Nginx en función de la IP del cliente aprobada en encabezados X-reenviados. Nginx se ejecuta en un contenedor en un clúster de Kubernetes en Google Cloud Platform y los ips reales del cliente se pasan solo en el encabezado x-forward-for
Hasta ahora he logrado hacerlo para una sola IP con el siguiente código:
set $allow false;
if ($http_x_forwarded_for ~* 123.233.233.123) {
set $allow true;
}
if ($http_x_forward_for ~* 10.20.30.40) {
set $allow false;
}
if ($allow = false) {
return 403;
}
Pero, ¿cómo puedo hacer eso para rangos completos de IP? Especificar cientos de IP a mano no tiene mucho sentido.
Toda ayuda es apreciada
location / { real_ip_header X-Forwarded-For; set_real_ip_from 10.0.0.0/8; real_ip_recursive on; allow xxx.xxx.xxx.xxx;