Como bloquear el acceso a nuestro sitio por país en Apache con mod_rewrite

Como bloquear el acceso a nuestro sitio por país en Apache con mod_rewrite - CableNaranja

¡Comparte nuestro contenido!

Los más grandes problemas que suelen tener los administradores de sitios web, y los propietarios de blogs, son el spam y la infección de sus sitios. Dado que estos problemas vienen de muchos lugares y fuentes diversas, se vuelve complicado determinar como atacarlos de fondo. De hecho, son las razones por la que en el pasado hicimos recomendaciones como: resolver problemas en un sitio wordpress con SSL, aumentar la seguridad de un sitio con las Salt Keys, Configuración de Postfix, cerrar el acceso a SSH al root, y 6 plugins para aumentar la seguridad de wordpress.

¿Por qué bloquear el acceso a ciertos países?

El día de hoy, nos enfocaremos en una medida un poco extrema, pero que puede ayudar a resolver bastantes problemas a un administrador web que se encuentre en apuros: El bloqueo completo del acceso a nuestro sitio web en ciertos países.

La razón detrás de esto es muy simple. Muchas de las botnes utilizadas para atacar un sitio, suelen ser utilizadas en bloques de países. Así que, si estamos teniendo un acceso inusual a nuestro sitio desde un determinado país, podemos utilizar Apache para detener ese tráfico inusual. Si bien hay excelentes plugins como iQ Country Block, esta medida es más directa y efectiva en muchos casos.

Entonces… ¿Qué necesitamos para bloquear el acceso a nuestro sitio?

Para hacerlo más fácil para todos, mantendremos esta medida lo más simple posible. Razón por la cual, es momento de abrir nuestro editor de código o texto favorito. Cualquiera sirve, incluso el Bloc de notas de Windows. Si ya tenemos un archivo .htaccess preparado con anticipación, sólo hay que abrirlo y comenzar a editar al final del archivo.

Para fines prácticos, partiremos de la idea de que, quien esta siguiendo esta guía no tiene mucha idea de como trabajar este tipo de operaciones.

Paso a paso para hacer el bloqueo

Lo primero es abrir el editor que estemos utilizando. Nosotros utilizaremos el Bloc de notas, pero en serio puede ser cualquiera.

Como bloquear el acceso a nuestro sitio por país en Apache con mod_rewrite - CableNaranja

Lo primero será activar la reescritura de reglas.

RewriteEngine On

Lo siguiente será conocer el código del país que queremos bloquear, de acuerdo a la norma ISO 3166-1. Con el código del país en mente, creamos una variable de entorno que se pase a verdadero (true o 1) en caso de detectar el código del país que queremos bloquear en nuestra dirección IP.

SetEnvIf CF-IPCountry RU NoEntrar=1

En el ejemplo, estamos bloqueando el acceso desde Rusia (Código RU), pero si necesitamos más de un país, podemos agregar más reglas como esa, por ejemplo:

SetEnvIf CF-IPCountry CN NoEntrar=1
SetEnvIf CF-IPCountry AF NoEntrar=1

Lo siguiente será decidir en que orden se llevará a cabo la regla. Recomendamos usar allow, deny, ya que esto analizará cada caso y decidirá que hacer.

Order allow,deny

Después de ello, permitimos que todos aquellos que no activen la variable pasen.

Allow from all

Finalmente, le diremos a Apache que niegue el acceso a aquellos casos que hayan activado la variable de entorno.

Deny from env=NoEntrar

Una vez terminado esto, guardamos el archivo como .htacccess.

Como bloquear el acceso a nuestro sitio por país en Apache con mod_rewrite - CableNaranja

Después de eso, lo subimos a la raíz de nuestro sitio para que comience a tomar efecto. Si tenemos acceso al servicio de Apache, lo recomendable es reiniciarlo.

Como bloquear el acceso a nuestro sitio por país en Apache con mod_rewrite - CableNaranja

Por último, es importante aclarar que esta medida no funcionará con sitios que tengan una versión anterior a Apache 2.4, por lo que, de tener un servidor antiguo, es recomendable actualizarse.

¡Y con eso finalizamos este artículo! ¿Te ha resultado? Déjanos saber en los comentarios aquí abajo, en nuestra cuenta de twitter @cablenaranja7 o en nuestra página de facebook.

¡Comparte nuestro contenido!

Israel García

Docente, IT Manager, Blogger & Developer. Escribo por diversión, educo por pasión. | Grandstanding is not my thing.

También te podría gustar...

Deja un comentario

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

shares