Limitar accesos a Cloudfare

    Vamos a suponer que tenemos nuestra página web, servicio o servidor protegido por Cloudfare.

    Esto implica que toda la entrada/tráfico va a entrar por Cloudfare, peeeeeeeero que sucedería si alguien entra por la IP directamente (https://139.162.206.138) o modifica sus entradas DNS locales (hosts o /etc/hosts)? Va a saltarse la seguridad de CloudFare y llegaría directamente a nuestro servidor.

    En primer lugar, vamos a localizar los rangos de Cloudfare.
    Una vez tengamos los rangos e IP’s controlados crearemos un fichero con la configuración necesaria:

    cat > /etc/httpd/conf/cloudfare.conf <<EOF
    order deny,allow
    deny from all
    allow from 127.0.0.1
    allow from 139.162.206.138
    allow from 173.245.48.0/20
    allow from 103.21.244.0/22
    allow from 103.22.200.0/22
    allow from 103.31.4.0/22
    allow from 141.101.64.0/18
    allow from 108.162.192.0/18
    allow from 190.93.240.0/20
    allow from 188.114.96.0/20
    allow from 197.234.240.0/22
    allow from 198.41.128.0/17
    allow from 162.158.0.0/15
    allow from 104.16.0.0/13
    allow from 104.24.0.0/14
    allow from 172.64.0.0/13
    allow from 131.0.72.0/22
    EOF

    Seguidamente, añadiremos en nuestro httpd.conf el siguiente código:

    <Directory />
      Options FollowSymLinks
      AllowOverride None
      Include /etc/httpd/conf/cloudfare.conf
    </Directory>

    Antes de reiniciar el servicio, realizaremos una prueba de acceso. Entraremos a https://139.162.206.138 donde veremos que la petción llega al servidor y devuelve un código exitoso (200)

    ==> /var/log/httpd/ssl_access_log <==
    163.116.176.127 - - [27/Mar/2024:16:46:15 +0100] "GET / HTTP/1.1" 200 34123

    Vamos a reiniciar, y volvemos a acceder a https://139.162.206.138

    Ahora el resultado es diferente. Nos aparece un error de denegacion (Forbidden) por lo que ya obtendremos un código 403. El esperado

    ==> /var/log/httpd/ssl_access_log <==
    163.116.176.127 - - [27/Mar/2024:16:51:21 +0100] "GET / HTTP/1.1" 403 -

    Por si a alguien le interesa, con Imperva (Incapsula) lo podríamos automatizar del siguiente modo:

    15 0 * * * /usr/bin/curl -k -s --data "resp_format=apache" https://my.incapsula.com/api/integration/v1/ips

    Leave a Reply

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