Bloqueando peticiones geográficamente

De manera predeterminada en Transparent CDN geolocalizamos todas las peticiones que pasan por nuestros sistemas, enviando a origen siempre una cabecera con el código del Pais desde el cual se hizo la petición. Esta cabecera es geo_country_code.

geo_country_code: ES

Para esta funcionalidad nos integramos con GeoIP2 Enterprise Database. Está base de datos tiene una precisión en cuanto a país del 99.8%.

Sería posible enviar otros datos que nos facilite esta base de datos y setearlo en forma de cabecera http para enviarla al origen como por ejemplo la cuidad, pero hay que tener en cuenta que la precisión a nivel de ciudad de esta base de datos está en torno al 75% para España. Puedes consultar la precisión por país aquí.

El valor de la cabecera geo_country_code es el código del país en base al estándar ISO 3166.

Si el sistema no ha sido capaz de ubicar la ip del usuario envía el string 'Unknown' dentro de la cabecera.

A través de esta cabecera podemos en realidad, tomar cualquier decisión, como puede ser hacer una redirección, servir contenido específico para ese país o simplemente geobloquear un contenido.

Para esto último, nos iremos a nuestro panel, a la parte de Provisioning, VCL Config y en la parte avanzada duplicaremos la configuración que está en producción en estos momentos e introduciremos el código de geobloqueo dentro de la función vcl_recv:

sub vcl_recv{
if (req.http.geo_country_code ~ "RU") {
set req.http.TCDN-Command = "deny_request";
}
}

Para entender el correcto funcionamiento de la cabecera TCDN-Command visita este enlace.

Del mismo modo podríamos redireccionar la web a una url o site específico en función de la procedencia del usuario, por ejemplo:

sub vcl_recv{
if (req.http.geo_country_code ~ "ES|AD|PT") {
set req.http.X-retSynth = "751,https://www.transparentcdn.com/es";
} else {
set req.http.X-retSynth = "751,https://www.transparentcdn.com/en"
}
}