La mejor manera de crear una lista blanca de IP con nginx

La mejor manera de crear una lista blanca de IP con nginx

queremos dar acceso a un servidor de actualización solo a ciertas IP y usaresta configuración de nginxhasta ahora:

allow 2a03:2267:4e6f:7264:f6f2:6dff:fe49:e4a2;
allow 2a03:2267:4e6f:7264:a2f3:c1ff:fe7a:4bc6;
...
deny all;

Pero parece que nginx tiene un límite de reglas permitidas de alrededor de 250.

¿Cómo podemos aumentar este límite para que podamos configurar una lista blanca más grande aquí? ¿O hay una mejor manera de lograr este objetivo?

Respuesta1

Podrías usar a mappara lograr el mismo efecto. Por ejemplo:

map $remote_addr $deny {
    default 1;
    2a03:2267:4e6f:7264:f6f2:6dff:fe49:e4a2 0;
    2a03:2267:4e6f:7264:a2f3:c1ff:fe7a:4bc6 0;
}
server {
    ...
    if ($deny) { return 403; }
    ...
}

Vereste documentopara detalles yesta precauciónen el uso de if.

Respuesta2

Dado que se trata de una lista blanca basada en el acceso global al servidor, es mejor que utilice iptables para esto.

ip6tables -A INPUT -m tcp -p tcp -s 2a03:2267:4e6f:7264:f6f2:6dff:fe49:e4a2 --dport 80 -j ACCEPT
ip6tables -A INPUT -m tcp -p tcp -s 2a03:2267:4e6f:7264:a2f3:c1ff:fe7a:4bc6 --dport 80 -j ACCEPT
ip6tables -A INPUT -m tcp -p tcp --dport 80 -j REJECT

Asegúrese de bloquear IPv4 también si está habilitado.

iptables -A INPUT -m tcp -p tcp --dport 80 -j REJECT

información relacionada