Usiłuję ograniczyć dostęp do zasobów za Nginx na podstawie adresu IP klienta przekazywanego w nagłówkach przekazywanych przez X. Nginx działa w kontenerze w klastrze Kubernetes na Google Cloud Platform, a rzeczywiste klienty ips są przekazywane tylko w nagłówku X-Forward-For
Do tej pory udało mi się to zrobić dla pojedynczego adresu IP z następującym kodem:
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;
}
Ale jak mogę to zrobić dla całego zakresu adresów IP? Ręczne podawanie setek adresów IP nie ma większego sensu.
Cała pomoc jest mile widziana
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;