Activar las protecciones de esta red global de distribución de contenido (CDN), puede tener efectos secundarios… El propósito general de acelerar el acceso a la web de manera global junto a la detección de tráfico malicioso puede acarrear, en combinación con otras protecciones, más de un dolor de cabeza…
Varias web bajo servidores Linux, empezaban a reportar errores y bloqueos de manera indiscriminada y aleatoria, Cloudflare mostraba errores 521 indicando que el servidor de destino no estaba disponible cuando en realidad estaba operativo… las conexiones se cortaban…
Cuando configuramos Cloudflare de intermediario entre el acceso público y nuestra plataforma de alojamiento, debemos asegurarnos de utilizar el modo Full (strict) o Strict (SSL-Only Origin Pull), requerirá emitir un certificado desde la plataforma e instalarlo en el servidor:
Comprobamos que en nginx tenemos el modulo «–with-http_realip_module» instalado (ojo la «V» en mayúsculas para los detalles):
[root@test ~]# nginx -V
nginx version: nginx/1.26.1
built with OpenSSL 3.0.7 1 Nov 2022
TLS SNI support enabled
configure arguments: --prefix=/usr/share --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --modules-path=/usr/share/nginx/modules --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-scgi-temp-path=/var/lib/nginx/scgi --with-http_realip_module --with-http_sub_module --with-http_dav_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_v2_module --with-http_v3_module --add-dynamic-module=mod_pagespeed
...
Y añadimos la configuración de las IPs que debemos traducir, será necesario ir actualizándolas con el listado oficial:
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 104.16.0.0/13;
set_real_ip_from 104.24.0.0/14;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2a06:98c0::/29;
set_real_ip_from 2c0f:f248::/32;
real_ip_header CF-Connecting-IP;
#real_ip_header X-Forwarded-For;
La opción «CF-Connecting-IP» es propia de Cloudflare la opción «X-Forwarded-For» es habitual para otros proxy HTTP o balanceadores de carga. Si todo es correcto, obtendremos de nuevo las direcciones IP originales en lugar de las intermedias de la red CDN.