¿Saber la IP de los visitantes de Cloudflare?

0
122
cloudflare main logo
Logotipo de Cloudflare

Cloudflare ofrece servicios de CDN, proxy entre otros, esto impacta directamente en nuestro servidor enmascarando las IPs de nuestros visitantes y pueden darnos información errónea a la hora de analizar nuestras visitas, por lo que muchas veces os preguntaréis, ¿Cómo saber la IP real de quién visita tu web desde Cloudflare?

Cloudflare es una empresa estadounidense especializada en seguridad y servicios informáticos. Ofrece diferentes servicios y modalidades, una de ellas, muy llamativa y totalmente gratis, la «Free Tier». Una de las opciones que nos brinda la «Free Tier» de Cloudflare es el servicio de Proxy-DNS. Esto es una ventaja para liberar carga de nuestros servidores, ya que parte de nuestro código cargará directamente desde la infraestructura de Cloudflare por lo que nuestra web, cargará antes ya que Cloudflare cuenta con una red CDN mundial, así como nuestro servidor «trabajará» menos ya que no tendrá que entregar tantos ficheros. En esta entrada os explicaré saber la IP de los visitantes de Cloudflare a nuestra web cuando activas el servicio proxy.

Pero uno de los principales problemas que se presentan a la hora de servir contenido desde un proxy es que el origen es alterado por la IP del proxy, por lo que realmente no estás viendo desde dónde se origina la visita sino el proxy que te envía la petición. Para saber la ip real de origen hay que hacer una pequeña configuración en todos los servidores webs, en mi caso Apache2.

Antes de nada, debermos habilitar el siguiente mod para apache2:

a2enmod remoteip
Una vez habilitado crearemos el siguiente fichero /etc/apache2/conf-available/remoteip.conf y lo rellenaremos con todos los bloques de IP's de Cloudflare:
RemoteIPHeader CF-Connecting-IP
RemoteIPTrustedProxy 173.245.48.0/20
RemoteIPTrustedProxy 103.21.244.0/22
RemoteIPTrustedProxy 103.22.200.0/22
RemoteIPTrustedProxy 103.31.4.0/22
RemoteIPTrustedProxy 141.101.64.0/18
RemoteIPTrustedProxy 108.162.192.0/18
RemoteIPTrustedProxy 190.93.240.0/20
RemoteIPTrustedProxy 188.114.96.0/20
RemoteIPTrustedProxy 197.234.240.0/22
RemoteIPTrustedProxy 198.41.128.0/17
RemoteIPTrustedProxy 162.158.0.0/15
RemoteIPTrustedProxy 104.16.0.0/12
RemoteIPTrustedProxy 172.64.0.0/13
RemoteIPTrustedProxy 131.0.72.0/22
RemoteIPTrustedProxy 2400:cb00::/32
RemoteIPTrustedProxy 2606:4700::/32
RemoteIPTrustedProxy 2803:f800::/32
RemoteIPTrustedProxy 2405:b500::/32
RemoteIPTrustedProxy 2405:8100::/32
RemoteIPTrustedProxy 2a06:98c0::/29
RemoteIPTrustedProxy 2c0f:f248::/32

Ahora en nuestro virtual host tendremos que añadir la siguiente línea, dentro de las etiquetas virtual host y fuera de las etiquetas directory

RemoteIPHeader CF-Connecting-IP

Para saber la IP real de quién visita tu web en hay que hacer una pequeña configuración en todos los servidores webs.

Si no tenéis virtualhost definidos, vuestro default.conf por defecto estará ubicado en la siguiente dirección /etc/apache2/sites-available/000-default.conf

Para finalizar, ahora solamente tendremos que modificar la siguiente línea en nuestro fichero raíz de apache2.conf ubicado en /etc/apache2/apache2.conf. Buscamos las siguientes líneas:

#LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
#LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined

Y lo dejamos tal que así:

LogFormat "%v:%p %a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined

Básicamente se modifica el %h por %a. Es posible que la línea de vhost_combined no la tengáis, si es vuestro caso, no hace falta añadirla.

Os dejo la información oficial de cloudflare para ver la ip de los visitantes a tu web a través de dos cabeceras, habla sobre esto aquí. También te dejo esta pequeña entada para incrementar la velocidad de tu wordpress.

¡Hasta la próxima!

Dejar respuesta

Please enter your comment!
Please enter your name here