A2billing Wholesale - Bloquear IP por países.

Normalmente los clientes de una empresa que vende terminación SIP son casi siempre de una determinada aérea geográfica o, de todas formas, siempre habrán países donde no se vende trafico. En estos caso, para mejorar la seguridad de la PBX, es posible bloquear todas la IP de un determinado país y de esta forma evitar que se presenten ataques procedentes del país mismo.

Este tipo de solución se apoya a una base de datos que contiene todas las IP del mundo divididas por países y Xtables-addons que contiene una serie de módulos adicionales para IPtables entre los cuales se encuentra él que permite interactuar con la base de datos.

Los requerimientos para este tipo de instalación son:

  • Tener instalados los paquetes para la compilación de las fuentes.
  • Versión de IPtables >= 1.4.3

  • versión del kernel-source >= 2.6.29

  • Perl

Primero se instalan algunos paquetes necesarios para la compilación de Xtables-addons:

yum install xz iptables-devel zip unzip

Para el paquete que sigue hay que instalar los repositorios de Fedora:

rpm -ivh http://ftp.rediris.es/mirror/fedora-epel/6/i386/epel-release-6-7.noarch.rpm

yum install perl-Text-CSV_XS

Luego se descargan las fuentes de Xtables-addons:

cd /usr/src

wget http://downloads.sourceforge.net/project/xtables-addons/Xtables-addons/1...

Se descomprime el paquete:

tar -xf xtables-addons-1.43.tar.xz

Se entra en la carpeta creada, se compila e instala:

cd xtables-addons-1.43

./configure --prefix=/usr

make

make install

Se entra en la carpeta donde están presentes los script para descargar la base de datos de GeoIP:

cd geoip

Se descarga la base de datos en formato CSV:

./xt_geoip_dl

Desde la base de datos se crean los archivos de las IP por países:

./xt_geoip_build GeoIPCountryWhois.csv

El resultado será la creación de dos carpetas que contienen las IP por países en el formato que IPtables puede leer. Se crea la carpeta predefinida donde IPtables buscará las IP:

mkdir -p /usr/share/xt_geoip/

y se copian las dos carpetas:

cp -r {BE,LE} /usr/share/xt_geoip/

Para bloquear las direcciones IP de un determinado país en IPtables, la sintaxis es:

-A INPUT -m geoip --src-cc CN -j DROP

CN es la sigla del país (en este caso China)

Pueden hacer una prueba bloqueando todas las IP de su País (en este caso Colombia) para el puerto 5060. Se abre el archivo de configuración de IPtables:

nano /etc/sysconfig/iptables

antes de esta linea:

-A INPUT -p udp -m udp --dport 5060 -j ACCEPT

se pone:

-A INPUT -p udp --dport 5060 -m geoip --src-cc CO -j DROP

Se guardan las modificaciones y se reinicia IPtables:

service iptables restart

Ahora se intenta conectarse a Asterisk con las credenciales de unos de los clientes configurados en A2Billing. El registro no funcionará y en IPtables se verá que todos los paquetes han sidos rechazados en la regla recién añadida a IPtables:

geoip

Como la base de datos se actualiza periódicamente (una vez al mes), se puede crear uno script que se encargue de eso para luego añadirlo al crontab:

cd /home

nano geoip.sh

Se copias las líneas que siguen:

#!/bin/bash

/usr/src/xtables-addons-1.43/geoip/xt_geoip_dl

/usr/src/xtables-addons-1.43/geoip/xt_geoip_build GeoIPCountryWhois.csv

\cp -rf {BE,LE} /usr/share/xt_geoip/

service iptables restart

Se guardan los cambios y se vuelve el archivo ejecutable:

chmod +x geoip.sh

Se añade al cron para que se ejecute una vez al mes:

crontab -e

0 0 1 * * /home/geoip.sh

Listo.

Vota el Articulo: 

Sin votos (todavía)
Evalúa la calidad del articulo
Suscribirse a Comentarios de "A2billing Wholesale - Bloquear IP por países." Suscribirse a VozToVoice - Todos los comentarios