Ich versuche, den Zugriff auf Ressourcen hinter Nginx basierend auf der Client-IP zu beschränken, die in X-Forwarded-For-Headern übergeben wird. Nginx wird in einem Container in einem Kubernetes-Cluster auf der Google Cloud Platform ausgeführt, und echte Client-IPs werden nur im x-forwarded-for-Header übergeben
Bisher habe ich es geschafft, dies für eine einzelne IP mit dem folgenden Code zu tun:
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;
}
Aber wie kann ich das für ganze IP-Bereiche tun? Die manuelle Angabe von Hunderten von IPs macht wenig Sinn.
Jede Hilfe wird geschätzt
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;