Primeros pasos con Cloudflare

    En esta entrada, veremos como configurar un servicio de Cloudfare (gratuito) para proteger, de forma básica, una web por lo que uno de los objetivo será que el usuario no entre directamente al servidor donde se aloja la web sino que acceda, de forma segura (SSL), antes por Cloudfare el cual nos permitirá filtrar y controlar los accesos previamente.

    Antes de nada, veremos que la web (www.changeofhabit.com) responde a la IP (139.162.206.138) del servidor ubicado en Linode

    [root@node01 ~]# ping -c 2 -4 www.changeofhabit.com
    PING www.changeofhabit.com (139.162.206.138) 56(84) bytes of data.
    64 bytes from li1369-138.members.linode.com (139.162.206.138): icmp_seq=1 ttl=64 time=0.029 ms
    64 bytes from li1369-138.members.flinode.com (139.162.206.138): icmp_seq=2 ttl=64 time=0.117 ms

    Para ello, vamos a aceder a la siguiente ubicacion:

    https://www.cloudflare.com > Websites > + Add a site > changeofhabit.com > Free > Continue
    Se realizará un análisis de los DNS actuales (Review your DNS records) y a continuación Continue donde dejaremos los siguientes DNS propios de Cloudfare:

    •  jay.ns.cloudflare.com
    •  lily.ns.cloudflare.com

    Continue > Get started
    Seleccionaremos las siguientes opciones:

    Automatic HTTPS Rewrites: Enable
    Always Use HTTPS: Enable
    Brotli: Enable

    Para finalizar la configuracion: Finish

    Ahora vamos a configurar SSL/TLS para poder encriptar la conexion end-to-end con un certificado que deberemos añadir a posteriori

    https://www.cloudflare.com > SSL/TLS > Overview > Full
    https://www.cloudflare.com > SSL/TLS Recommender: Enable
    https://www.cloudflare.com > HTTP Strict Transport Security (HSTS): Enable

    Seguiremos configurando el servicio dando de alta una extension de seguridad del sistema de DNS (DNSSEC) y que deberemos añadir a nuestro proveedor de dominios. En mi caso Google.

    https://www.cloudflare.com > DNS > Settings > DNSSEC > Enable DNSSEC

    Recogeremos los valores y los introduciremos accediendo via https://domains.google.com > DNS > DNSSEC

    Seguidamente vamos a añadir la resolución DNS al proveedor de dominio para que resuelva Cloudfare en lugar de directamente el servidor:

    https://domains.google.com > DNS > Servidores de nombres personalizados: jay.ns.cloudflare.com, lily.ns.cloudflare.com

    Volvemos a Cloudfare y valodaremos la conexión anteriormente realizada. Este proceso puede tardar 24h (tiempo hasta que se repliquen en los DNS de forma mundial)

    https://www.cloudflare.com > Overview > Check nameservers now
    Una vez finalizado el proceso, veremos que la resolución ya es diferente donde los DNS principales resuelven Cloudfare en lugar de Linode

    • https://www.ssllabs.com/ssltest/analyze.html?d=www.changeofhabit.com
    • https://lookup.icann.org > www.changeofhabit.com

    Una vez rengamos la resolución correcta, finalizaremos la configuracion SSL/TLS activando las siguientes opciones:

    • https://www.cloudflare.com > SSL/TLS > Overview > Full (strict)
    • https://www.cloudflare.com > SSL/TLS > Edge Certificates > Certificate Transparency Monitoring

    En este punto vamos a crear unas simples reglas de bloqueo para que el WAF pueda filtras accesos no deseados en función del país origen.
    Vamos a bloquear los siguientes países: Russian Federation, Taiwan, China e Iran.

    https://www.cloudflare.com > Security > Bots > Bot Fight Mode

    https://www.cloudflare.com > Security > WAF > Create rule

    Le llamaremos a la regla:

    Rule Name: BLOCK Countries

    Añadiremos bloque con un or del siguiente modo para cada pais:

    Field: Country
    Operator: equals
    Value: Russian Federation

    y como paso final:

    Choose action: Block y Deploy

    A modo resumen, la configuracion será la siguiente:


    Como se puede observar, tras unos dias configurados nos aparecerán bloqueos maliciosos de dichos países:

    Otras configuracion que podemos aplicar a modo de mejora y recomendación son las siguientes:

    • https://www.cloudflare.com > Caching > Configuration > Crawler Hints
    • https://www.cloudflare.com > Caching > Configuration > Always Online
    • https://www.cloudflare.com > Network > Pseudo IPv4 > Add header
    • https://www.cloudflare.com > Scrape Shield > Hotlink Protection
    • https://www.cloudflare.com > Rules > configuration Rules > Automatic HTTPS Rewrites
    • https://www.cloudflare.com > Rules > configuration Rules > Hotlink Protection

    Finalmente y para confirmar, veremos el siguiente mensaje si hemos integrado la web con Cloudfare de forma correcta:

    Leave a Reply

    Your email address will not be published. Required fields are marked *