Como parte del proyecto de proteger los servicios que tengo en mi homelab con Cloudflare es importante limitar las IPs que pueden conectar con nuestro homelab.
Una vez que configuremos el proxy inverso las conexiones nos vendrán desde el rango del CDN de Cloudflare. Pero esto no hace que un usuario malicioso pueda conectar directamente con nuestra IP externa y realizar peticiones directamente.
Para evitar esto podemos hacer que nuestro punto de entrada, en mi caso un servidor nginx, restrinja las IPs permitidas al rango de Cloudflare.
En mi caso la configuración la haré a nivel general y afectará a todos los servicios pero se podría aplicar selectivamente.
El listado de rangos IPs v4 de Cloudflare lo tenemos disponible en https://www.cloudflare.com/ips-v4/#.
Para que sea más mantenible crearemos un fichero el fichero /etc/nginx/cloudflare-allow.conf con el siguiente contenido:
# https://www.cloudflare.com/ips
# IPv4
allow 173.245.48.0/20;
allow 103.21.244.0/22;
allow 103.22.200.0/22;
allow 103.31.4.0/22;
allow 141.101.64.0/18;
allow 108.162.192.0/18;
allow 190.93.240.0/20;
allow 188.114.96.0/20;
allow 197.234.240.0/22;
allow 198.41.128.0/17;
allow 162.158.0.0/15;
allow 104.16.0.0/13;
allow 104.24.0.0/14;
allow 172.64.0.0/13;
allow 131.0.72.0/22;
Y editaremos el nginx.conf añadiendo las siguientes líneas:
http {
# ...
include /etc/nginx/cloudflare-allow.conf;
# Allow local access
allow 192.168.0.0/16;
# And deny what is not whitelisted
deny all;
# ...
}
Comprobaremos que la configuración es correcta con "nginx -t" y haremos un reload de nginx para que los cambios surtan efecto.
Comments