Proteger una ruta (directorio) de un servidor web, en mi caso nginx y que estoy utilizando el servicio de Cloudflare (CDN/web proxy,etc) puede ser un problema ya que normalmente cuando un cliente se conecta a tu página web, su ip queda enmascarada dependiendo de varias condiciones del proxy, así que probablemente nunca veas el ip real de quien se conecta.
Hay alguna forma de habilitar que ciertos ips no se enmascaren, pero para una situación específica, requería que sólo ciertas ips y segmentos de red pudieran acceder a una ruta, no tenía idea así que pregunté y Miguel Preza me ayudó con la información, básicamente para mi caso:
En mi cuenta, lista de dominios, elijo el dominio, luego en Security » WAF » + Create rule
Ahí, le pongo un nombre, la primera regla será el URL Path en mi caso /prep/ y añado IP Source Address, ahí pongo las direcciones ip y o segmentos de red, aunque teóricamente podría utilizar listas previamente creadas en la misma cuenta de Cloudfare / Manage Account / Configuration / Lists.
Así, la expresión quedaría algo así como:
(http.request.uri.path contains "/prep/" and not ip.src in { 127.0.0.1 ip2 ip3 ipn })
El último paso es decirle que hará con ese conjunto de condiciones, para el caso, Block.
Y ya eso sería todo... básicamente eso haría que 127.0.0.1 ip2 ip3 ipn pudieran entrar, el resto quedarían bloqueados.
https://panchito-kardashian.tar.mx/media/2024/05/waf-cloudflare.jpg