Cómo proteger un servidor web para que sólo acedan las IPs de Cloudflare

 Ya hemos hablado de Cloudflare, el servicio web que sirve cono CDN, cahcé, firewall y mucho más. Tiene varios planes, gratis y de pago. Pero para la mayoría de las páginas web el modo gratis es suficiente. Mientras seáis conscientes de los límites de subida que establece Cloudflare.

Hoy os vamos a enseñar “un truco” por el que vamos a limitar a nuestro servidor a que acepte sólo peticiones web que accedan de las IPs de Cloudflare. Esto aumentará la seguridad en nuestra web, porque eliminará cualquier petición que no proceda de Cloudflare, y las que procedan de ahí vienen filtradas por sus sistemas de seguridad. Además, también aprovechamos la caché de Cloudflare lo que hace que el rendimiento de nuestra página y la experiencia de usuario mejore.

Cómo hacerlo.

1.
Lo primero que debemos hacer es activar Cloudflare. Nos registramos en ese servicio, damos de alta nuestra web y nos dirá los DNS que tenemos que poner en nuestro dominio. Después tenemos que ir al proveedor de nuestro dominio y cambiar los DNS. Apunta todos los registros de DNS que tienes para copiarlos en Cloudflare.
Nota: si tienes el correo con tu proveedor, puede que tengas problemas al cambiar los DNS a otro proveedor. Consulta con ellos antes.
Seguramente también se puede hacer todo esto sin cambiar los DNS a Cloudflare, pero explicamos la manera más sencilla.

Una vez que hayas cambiado los DNS a Cloudflare ya podemos gestionar todo desde su panel. Tenemos que activar para nuestro dominio y para www.nuestrodominio el servicio de Cloudflare. Aseguraos que en el DNS tienen la nube en naranja, no en gris. Eso significa que pasa por sus sistemas.

2.
Ya tenemos el que cualquier persona de fuera que escriba nuestro dominio irá por Cloudlfare. Ahora tenemos que asegurarnos que nuestro servidor no admita peticiones de ningún otra fuente.

2.1 Por IpTables.

Para eso nos vamos a nuestro servidor (suponemos que es dedicado o Cloud). Tenemos que activar en iptables el filtro para que sólo acepte las IPs de Cloudflare. Tenemos siempre un listado actualizado de las mismas aquí.
Cuidado: siempre que manejes un firewall corres riesgo. Asegúrate que pruebas todo antes de activarlo y que luego tienes una manera de retroceder.

Si queremos hacer esto directamente por iptables podemos hacerlo de esta manera que sugiere Cloudflare.  Sin embargo ya hemos dicho que es más fácil realizar todas estas gestiones por programas como Firehol.

En Firehol abrimos el fichero firehol.conf y después de los primeros comentarios añadimos las ips de cloudflare así (una por línea). Los puntos suspensivos indican que está el resto de ips:

cloudfl_ips=”103.21.244.0/22
103.22.200.0/22
…..

Después, en la interfaz que esté conectada al exterior ponemos:

server http accept src “$cloudfl_ips
server https accept src “$cloudfl_ips

Con esto graba el fichero y asegúrate de probar la configuración antes de reiniciar el servicio.

2.2 Por configuración del servidor web (Nginx en este caso).

Podemos restringir las ips de Cloudflare en el servidor web. Hoy lo mostraremos en Nginx.

Para ello creamos el fichero: etc/nginx/cloudflare-allow.conf  con un contenido como este:

# https://www.cloudflare.com/ips
# IPv4
allow 199.27.128.0/21;
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;

# IPv6
allow 2400:cb00::/32;
allow 2606:4700::/32;
allow 2803:f800::/32;
allow 2405:b500::/32;
allow 2405:8100::/32;

Después, en la carpeta sites-available (o sites-enabled), editamos el fichero de configuración de tu dominio y en el apartado server ponemos:

include /etc/nginx/cloudflare-allow.conf;
  deny all;

Y reiniciamos nginx. Esto debería restringir las ips a sólo las de Cloudflare y rechazar el resto.

También se puede hacer así.

1 comentario en “Cómo proteger un servidor web para que sólo acedan las IPs de Cloudflare”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Resumen de nuestra Política de Privacidad

  • Responsable: SmythSys IT Consulting SLNE.
  • Finalidad: Gestionar y moderar los comentarios.
  • Legitimación: Necesitas dar tu consentimiento para publicar un comentario.
  • Destinatarios: Tus datos se alojan en los servidores de OVH.
  • Derechos: Tienes derecho a acceder, rectificar, limitar y suprimir los datos en la dirección del responsable (en nuestra política de privacidad).

Scroll al inicio