Radio WordPress #2: Bloquear accesos a wordpress por países

En este segundo capítulo vamos a hablar de cómo bloquear acceso, o conceder accesso, a WordPress en función del país asociado a la IP del visitante.

Vamos a ver las distintas opciones, tanto modificando el fichero .htaccess como mediante plugins y vamos a ver cuales son las razones que nos pueden impulsar a hacer esto.

La música es de Jahzzar con el disco Traveller’s Guide que se distribuye con la licencia creative commons y que podéis descargar de FreeMusicArchive.org

Enlaces:

[showhide type=»transcripcion» more_text=»Ver transcripción(%s más palabras)» less_text=»Esconder transcripción (%s menos palabras)»]

Transcripción

Hola a todos, esto es Radio WordPress.com, un podcast dedicado a todos aquellos que de una manera u otra convivimos con WordPress.

Mi nombre es Eduardo Collado y juntos vamos a explorar el capítulo de hoy.

Cuando dais soporte a terceros sobre WordPress a veces suele salir la típica consulta en la que os comentan que están teniendo problemas con el WordPress porque está recibiendo constantemente ataques al xmlrpc, o intentos de login desde IPs de no se qué país y lo primero que os piden es saber si es posible limitar el acceso al ese WordPress desde IPs de uno o varios países, o al revés, os piden conceder acceso a ese WordPress desde IPs de uno o varios países, y es ahí cuando tenéis que buscar la forma de hacer eso que os pide el cliente.

La forma de hacer eso se llama geolocalización de IPs. Si lo pensáis un poco  la geolocalización de IPs tiene muchísimas utilidades que podremos ir viendo en este podcast otros días, pero que pueden ser de muchísima ayuda, por ejemplo:

  1. Ofrecer contenido especial a nuestra audiencia dependiendo del país para proporcionar información relevante.
  2. Segmentar la publicidad geográficamente, por ejemplo, no tendría ningún sentido mostrar un anuncio de Mercadona a una visita de Pamaná.
  3. Obtener estadísiticas. Es muy útil saber desde qué países nos visitan más por temas de publicidad, de enfoque de contenido, etc…
  4. Confirmar datos. Si un cliente se nos da de alta diciendo que está en Nicaragua para no pagar IVA y vemos que la IP es española tendremos que afinar la comprobación para validar ese dato. Por el contrario, si nos dice que está en España y la IP es española está claro que es cierto.
  5. Controlar derechos de emisión, autor o similares. Pandora es un servicio de música online que está limitado geográficamente para controlar los derechos de emisión, hasta hace poco Netflix no podía verse en España, etc…
  6. Evitar accesos desde lugares que no corresponden, si tenemos una web con contenido muy local a lo mejor no tiene sentido que nos visiten desde países donde por experiencia sabemos que es donde provienen más intentos de ataques.

—MUSICA—

En el caso que nos ocupa hoy vamos a concentrarnos en el último punto, no queremos que nos ataquen, que nos infecten, etc… y nuestro contenido no es relevante en ese lugar, así que filtramos ese país.

Si tenemos un WordPress que siempre es atacado desde IPs de Ucrania y nuestro WordPress es la web de una panadería de Móstoles quizás podría tener sentido bloquear las IPs ucranianas, o incluso bloquear todo aquel tráfico que no venga desde España.

Para hacer esto podemos hacerlo directamente configurando nuestro fichero .htaccess para evitar los accesos no permitidos, o al revés, para permitir los accesos permitidos; o bien podemos utilizar algún plugin.

Para hacerlo modificando el fichero .htaccess podemos utilizar el servicio de IP2Localtion (https://www.ip2location.com/blockvisitorsbycountry.aspx), dejo el enlace en radiowordpress.com, el cual nos facilita muchísimo la tarea ya que dispone de una pequeña aplicación donde podéis descargar el fichero .htacces con la configuración que deseéis.

Por poner un ejemplo, entráis en la web, seleccionáis si queréis el filtro para IPv4 o IPv6, luego seleccionáis el país que queráis.

Ojo, si os logáis en la web podréis seleccionar hasta 30, pero vamos, juntar esos 30 .htaccess tampoco es algo tan complicado y se puede hacer sin problemas.

Luego en el paso 3 seleccionaréis el htaccess para instalar en el servidor, tened cuidado porque tenéis dos opciones, una es permitiendo las IPs y la otra denegándola, y este fichero tendremos que fusionarlo con el fichero .htaccess de nuestro WordPress.

Es el procedimiento más complejo desde luego, pero es en el que tendremos más control porque siempre podemos editar las redes permitidas y no permitidas por si queremos que se pueda acceder desde algún lugar o al contrario, a veces pensad que no son al 100% precisas esas bases de datos.

Este procedimiento, el de la modificación del fichero .htaccess lo que hace es permitir o denegar el acceso a todo el sitio, a la parte pública y a la parte de administración, esto es importante tenerlo en cuenta porque a lo mejor sólo queremos bloquear el acceso a la parte de administración y son dos cosas muy diferentes.

—MUSICA—

Luego tenemos la forma más sencilla que es mediante plugins, uno que me gusta y que es de la misma gente que ha desarrollado la herramienta de antes para generar el fichero .htaccess de antes se llama IP2Location Country Blocker y otro llamado IP Geo Block, ambos los podéis encontrar en el buscador de plugins del propio wordpress.

Si instaláis ip2Location Country Blocker veréis que os pide descargar la base de datos de IPs, hay dos opciones, la gratuita y la de pago, si no tenéis requerimientos muy específicos la LITE es más que suficiente y es gratuita, aunque podéis trabajar con la base de datos en línea, pero mejor en local.

Una vez descargado todo podréis seleccionar los países a bloquear, ojo que aquí no se elige si permitir, y si queréis habilitar el fordwarding, que es algo que nos permite redirigirles a una página concreta. Esto puede ser útil en determinados entornos, pero si lo que queremos es bloquear y no dar acceso personalmente no entiendo por qué hay que redirigirlos a otro lado, esa opción no me gusta a no ser que quieras indicar que no tienen permiso por estar fuera de los rangos de IPs permitidos, lo cual es una opción perfectamente valida.

Ya os digo a mi me gusta más directamente bloquear con el htaccess.

Para la parte de administración también nos valdría este plugin, pero nuestro problema para evitar ataques de fuerza bruta es evitar que se loguen y personalmente prefiero que sea el propio firewall del servidor el que bloquee la IP que está intentando hacer el ataque y que esa petición no la procese el apache.

Para bloquear IPs que están intentando hacer un ataque de fuerza bruta tenemos el plugin wp-fail2ban, que lo tenéis también en el buscador de plugins de WordPress y que lo que hace es introducir una línea en el syslog para que luego el servidor ponga esa IP en el firewall, esto hace que la máquina no se cargue con peticiones inútiles y que podamos seguir dando servicio sin pérdidas de rendimiento. Por desgracia esto no lo soporta mucha gente, nosotros en Neodigit sí lo soportamos y lo tenemos funcionando en cualquier tipo de alojamiento o servidor administrado.

Bueno, esto es todo por hoy, que os haya servido de ayuda y que tengáis una nueva herramienta para bloquear a todo aquella gente que no debe de acceder a vuestras webs.

Un saludo y hasta la próxima
[/showhide]