Bloqueo de IP's por países - Geolocalización mediante Apache

Bloqueo de países mediante Geolocalización - Apache

¿De qué se trata mod_geoips?

En el campo de la seguridad de la información, las restricciones de acceso forman parte de póliticas asumidas por las organizaciones. Poniendo un ejemplo rápido: Una página web que ofrece servicios DELIVERY de comida en Lima, ¿necesitará publicar estos servicios para Irán o la India? esa es una desición de la organización. Pues bien la "GEOLOCALIZACIÓN" es una medida de seguridad a la hora de implementar servicios en Internet, y consiste en filtrar conexiones IP basadas en su procedencia geográfica.

Este módulo para Apache permite establecer controles de acceso basados en la procedencia de la conexiones IP de origen, el objeto entonces consiste en 'banear' (bloquear) las IP's de los países considerados que no forman parte del interés y negar acceso al contenido del servidor web.

Entonces, mod_geoips, creado por MaxMind.

Los ejemplos se han realizado en una distribución Linux CentOS 6, pero muy adaptables a cualquier distribución.

  1. Instalar las librerías GeoIP
  2.  
    # wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
    # tar -xvzf GeoIP.tar.gz
    # cd  GeoIP-1.4.8
    # ./configure
    # ./make
    # ./make install
    
    Son librerías en las que se apoya mod_geoips

  3. Descargar la base de datos de IPs
  4.  
    # wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
    # gzip -d GeoLiteCity.dat.gz
    # cp GeoLiteCity.dat /opt/
    
    Se recomienda descargar frecuentemente la base de datos ya que se va actualizando, para ello se puede utilizar un script en Cron y automatizar la tarea según criterio.

  5. Instalar mod_geoips
  6.  
    # wget http://www.maxmind.com/download/geoip/api/mod_geoip2/mod_geoip2_1.2.7.tar.gz
    # tar -xvzf mod_geoip2_1.2.7.tar.gz
    # cd  mod_geoip2_1.2.7
    # apxs -i -a -L/usr/local/lib -I/usr/local/include -lGeoIP -c mod_geoip.c
    
    Observación: Para correr el último comando es necesario tener instalado el paquete httpd-devel que provee el comando 'apxs'

    Agregar con su editor preferido el archivo httpd.conf con la siguientes líneas:

    <IfModule mod_geoip.c>
      GeoIPEnable On
      GeoIPDBFile /opt/GeoLiteCity.dat
    </IfModule>

  7. Configurar los bloqueos
  8. Como un ejemplo al caso, nos interesa bloquear países como Irák o la India en nuestro servidor web, pues bien, para bloquear a esos países, creamos un fichero .htaccess en la raíz del árbol html de nuestro servidor web de la siguiente manera:

    SetEnvIf GEOIP_COUNTRY_CODE IQ BlockCountry
    SetEnvIf GEOIP_COUNTRY_CODE IN BlockCountry

    Deny from env=BlockCountry

De esta manera tenemos configurado el servidor Apache, como se pueden observar, es muy fácil añadir más países a la lista de 'bloqueados'.

2 comentarios:

Por favor donde descargo geoip en el hosting en que carpeta es para mibew menssenger. Gracias

Hola Gustavo,

Aquí tienes una dirección, espero te sirva.

http://pkgs.fedoraproject.org/repo/pkgs/mod_geoip/mod_geoip2_1.2.7.tar.gz/76514ad0e8adb8cd8231c5e3646d03fd/mod_geoip2_1.2.7.tar.gz

Saludos,

Publicar un comentario