{"id":2266,"date":"2024-09-19T08:02:59","date_gmt":"2024-09-19T08:02:59","guid":{"rendered":"https:\/\/www.mainmind.com\/blog\/?p=2266"},"modified":"2024-09-23T07:58:06","modified_gmt":"2024-09-23T07:58:06","slug":"cloudflare-ip-real","status":"publish","type":"post","link":"https:\/\/www.mainmind.com\/blog\/cloudflare-ip-real\/","title":{"rendered":"Protecci\u00f3n Cloudflare y direcciones IP reales"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Activar las protecciones de esta red global de distribuci\u00f3n de contenido (CDN), puede tener efectos secundarios&#8230; El prop\u00f3sito general de acelerar el acceso a la web de manera global junto a la detecci\u00f3n de tr\u00e1fico malicioso puede acarrear, en combinaci\u00f3n con otras protecciones, m\u00e1s de un dolor de cabeza&#8230;<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">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&#8230; las conexiones se cortaban&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando configuramos Cloudflare de intermediario entre el acceso p\u00fablico y nuestra plataforma de alojamiento, debemos asegurarnos de utilizar el modo Full (strict) o Strict (SSL-Only Origin Pull), requerir\u00e1 emitir un certificado desde la plataforma e instalarlo en el servidor:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"673\" height=\"124\" src=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2024\/cloudflare_strict.jpg\" alt=\"cloudflare_strict sobre 2024\" class=\"wp-image-2268\" srcset=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2024\/cloudflare_strict.jpg 673w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2024\/cloudflare_strict-300x55.jpg 300w\" sizes=\"auto, (max-width: 673px) 100vw, 673px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Comprobamos que en <a href=\"https:\/\/nginx.org\/en\/docs\/http\/ngx_http_realip_module.html\" data-type=\"link\" data-id=\"https:\/\/nginx.org\/en\/docs\/http\/ngx_http_realip_module.html\">nginx<\/a> tenemos el modulo \u00ab<strong>&#8211;with-http_realip_module<\/strong>\u00bb instalado (ojo la \u00abV\u00bb en may\u00fasculas para los detalles):<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n&#x5B;root@test ~]# nginx -V\nnginx version: nginx\/1.26.1\nbuilt with OpenSSL 3.0.7 1 Nov 2022\nTLS SNI support enabled\nconfigure 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\n...\n\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Y a\u00f1adimos la configuraci\u00f3n de las IPs que debemos traducir, ser\u00e1 <a href=\"https:\/\/www.cloudflare.com\/es-es\/ips\/\" data-type=\"link\" data-id=\"https:\/\/www.cloudflare.com\/es-es\/ips\/\">necesario ir actualiz\u00e1ndolas con el listado oficia<\/a>l:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nset_real_ip_from 173.245.48.0\/20;\nset_real_ip_from 103.21.244.0\/22;\nset_real_ip_from 103.22.200.0\/22;\nset_real_ip_from 103.31.4.0\/22;\nset_real_ip_from 141.101.64.0\/18;\nset_real_ip_from 108.162.192.0\/18;\nset_real_ip_from 190.93.240.0\/20;\nset_real_ip_from 188.114.96.0\/20;\nset_real_ip_from 197.234.240.0\/22;\nset_real_ip_from 198.41.128.0\/17;\nset_real_ip_from 162.158.0.0\/15;\nset_real_ip_from 104.16.0.0\/13;\nset_real_ip_from 104.24.0.0\/14;\nset_real_ip_from 172.64.0.0\/13;\nset_real_ip_from 131.0.72.0\/22;\n\nset_real_ip_from 2400:cb00::\/32;\nset_real_ip_from 2606:4700::\/32;\nset_real_ip_from 2803:f800::\/32;\nset_real_ip_from 2405:b500::\/32;\nset_real_ip_from 2405:8100::\/32;\nset_real_ip_from 2a06:98c0::\/29;\nset_real_ip_from 2c0f:f248::\/32;\n\nreal_ip_header CF-Connecting-IP;\n#real_ip_header X-Forwarded-For;\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">La opci\u00f3n \u00abCF-Connecting-IP\u00bb es propia de Cloudflare la opci\u00f3n \u00abX-Forwarded-For\u00bb 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.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Activar las protecciones de esta red global de distribuci\u00f3n de contenido (CDN), puede tener efectos secundarios&#8230; El prop\u00f3sito general de acelerar el acceso a la web de manera global junto a la detecci\u00f3n de tr\u00e1fico malicioso puede acarrear, en combinaci\u00f3n con otras protecciones, m\u00e1s de un dolor de cabeza&#8230;<\/p>\n","protected":false},"author":1,"featured_media":2277,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,19],"tags":[982,981,541,983],"class_list":["post-2266","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-networking","category-seguridad","tag-cdn","tag-cloudflare","tag-linux","tag-real-ip"],"_links":{"self":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/2266","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/comments?post=2266"}],"version-history":[{"count":6,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/2266\/revisions"}],"predecessor-version":[{"id":2276,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/2266\/revisions\/2276"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/media\/2277"}],"wp:attachment":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/media?parent=2266"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/categories?post=2266"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/tags?post=2266"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}