ip_blacklist_whitelist
El bloqueo de IPs en Nginx/Redis es la defensa más eficiente contra atacantes conocidos: IPs baneadas por rate limiting, rangos de datacenter asociados a fraud farms, y IPs en listas negras de abuso.
When to use
Usar como primera capa de filtrado en Nginx, antes del JWT validation y del rate limiter. Las IPs bloqueadas reciben un 403 inmediato sin consumir recursos de los agentes KYC.
Instructions
- Usar módulo GeoIP2 de Nginx:
ngx_http_geoip2_modulepara bloquear por país si aplica. - Blacklist estática en
/etc/nginx/conf.d/blacklist.conf:geo $blocked_ip { default 0; 10.0.0.1 1; 192.168.1.0/24 1; } - Integrar con Redis para blacklist dinámica via lua-resty-redis:
local redis = require "resty.redis" local red = redis:new() red:connect("redis", 6379) local blocked = red:get("ip:blocked:" .. ngx.var.remote_addr) if blocked == "1" then ngx.exit(403) end - Cuando
rate_limiterdetecta abuso, escribir en Redisip:blocked:{ip}con TTL de 24h. - Mantener lista de rangos de Tor exit nodes actualizada (descargar de
check.torproject.org/exit-addresses). - Para whitelisting de IPs de partners internos, usar variable de entorno
TRUSTED_IPS.
Notes
- Las IPs de Tor y proxies conocidos deben tratarse con nivel de riesgo elevado, no necesariamente bloqueadas — depende de la política del negocio.
- Sincronizar la blacklist entre múltiples instancias de Nginx via Redis compartido.
- Auditar la blacklist semanalmente — las IPs cambian de dueño.