Bloqueador de IP

ip-blocker El bloqueador IP es una herramienta realmente útil que le ayudará a bloquear cualquier IP o rango de IPs fácilmente de manera que sea compatible con su firewall.

 

 

Descripción

  • La herramienta proporciona un diseño que permite realizar un bloqueo temporal o permanente de la IP o rango de IPs, en formato CIDR (ejemplo 192.168.0.0/24).
  • Además, la aplicación proporciona soporte para una API programable que es usada por la plataforma de Core-Admin para bloquear automáticamente accesos no permitidos, ataques por fuerza bruta, inyección SQL, etc.
  • De esta manera las operaciones de bloqueo pueden ser gestionadas fácilmente desde una interfaz gráfica y desde un único punto.
  • Algunas de las operaciones que podemos realizar son:
    • Bloqueo de una IP o rango de IPs
    • Selección de IP o rango de IPs no bloqueable, para evitar que sea bloqueada por acciones automáticas de Core-admin
    • Visualización de un histórico de las IPs bloqueadas o configuradas como no bloqueables
 

Modo de uso

Dentro de Core-admin, seleccionamos la aplicación Bloqueador ip,

ip-blocker

Obtenemos la interfaz de la aplicación,

ip-blocker

 

Bloqueo de una IP o rango de IPs

  • Nos situamos en la opción IPs bloqueadas y hacemo clic en Añadir bloqueo ip donde configuramos la IP, o rango de IPs, a bloquear.
  • Indicamos el tipo de bloqueo, si es temporal o permanente. En el caso de un bloqueo temporal, indicamos el periodo de tiempo, en segundos, durante el que se mantiene el bloqueo.
  • Por último guardamos dicha configuración haciendo clic en Añadir nueva IP a bloquear.

ip-blocker

Vemos la configuración que acabamos de realizar,

ip-blocker

 

IP o rango de IPs no bloqueable

  • Nos situamos en la opción IPs no bloqueables, hacemos clic en Añadir IP no bloqueable y configuramos la IP, o rango de IPs, para no bloquear.
  • Indicamos el tipo de bloqueo, si es temporal o permanente. En el caso de un bloqueo temporal, indicamos el periodo de tiempo, en segundos, durante el que se mantiene el bloqueo.
  • Por último guardamos dicha configuración haciendo clic en Añadir nueva IP no bloqueable.

ip-blocker

Vemos la configuración que acabamos de realizar,

ip-blocker

 

Histórico de acciones realizadas

En la opción Histórico de bloqueo obtenemos un listado de aquellas IPs bloqueadas,

ip-blocker

También podemos ver dicho histórico acotado en el tiempo, para las últimas 24 horas y para la última semana, haciendo clic sobre dichas secciones.

 

Otros detalles a tener en cuenta

Otras opciones disponibles son la obtención de un informe sobre una IP en concreto y la configuración del modo de bloqueo

 

Informe IP

Hacemos clic en Informe IP e introducimos la IP sobre la que queremos obtenemos un informa de las acciones realizadas sobre ella,

ip-blocker

Elegimos ver la información en cuadro de diálogo o dentro del panel,

ip-blocker

Obtenemos el informe,

ip-blocker

 

Configuración adicional: modo de bloqueo

Haciendo clic en Configurar, podemos indicar el modo de bloqueo. La opción por defecto es mediante iptables, aunque también está disponible la opción route. Se recomienda usar la opción por defecto, iptables; salvo que no se quiera que el firewall local iptables no sea modificado o bien que no esté soportado.

Por defecto no se bloqueará la dirección IP desde la cual el usuario Core-admin se conecte. Si se quiere que dichas IPs puedan ser también bloqueadas automáticamente en caso de hacking, hacemos clic sobre el checkbox Bloquear usuarios core-admin.

ip-blocker

 

Integración Core-Admin en línea de comandos

La herramienta de bloqueo de IP está disponible también en línea de comandos con una base de datos unificada.
Para ello, usamos la herramienta:

>> crad-ip-blocker.pyc –help
Usage: crad-ip-blocker.pyc [options]
Options:
-h, –help show this help message and exit
-l, –list-blocked-ips
Allows to list currently blocked ips
-a IP [permanent|temporal period] [reason], –add-blocked-ip=IP [permanent|temporal period] [reason]
Allows to block a new IP. You can block one or several
ips with ‘ip1 ip2 ip2′ instead of providing just one
ip
-r RULE-ID, –remove-blocked-ip=RULE-ID
Allows remove a rule previously created. The option
requires the rule id to remove.
-c, –remove-expired-rules
Allows to remove temporal rules that are expired.
-x IP [permanent|temporal period] [reason], –add-whitelist-ip=IP [permanent|temporal period] [reason]
Allows to add an indication that the provided IP can’t
be blocked (even if requested).
-d, –list-white-listed-ips
Allows to list white listed ips.
-e IP, –is-whitelisted-ip=IP
Allows to check if the provided IP is already
whitelisted. The command returns 0 if the IP is
whitelisted, otherwise -1 is reported
-b IP, –is-blacklisted-ip=IP
Allows to check if the provided IP is already
blacklisted. The command returns 0 if the IP is
blacklisted, otherwise -1 is reported
-w IP, –was-blacklisted-ip=IP
Allows to check if the provided IP was already
blacklisted. The command returns 0 if the IP was
blacklisted, otherwise -1 is reported. Also returns
previous blocking reasons

Para bloquear una IP de manera permante ejecutar:

>> crad-ip-blocker.pyc -a 30.40.50.60 permanent “Razón del bloqueo”

Parar eliminar un bloqueo hecho por Core-Admin, listar primero y luego seleccionar la regla a borrar:

>> crad-ip-blocker.pyc -l
>> crad-ip-blocker.pyc -r

Para marcar una IP como no bloqueable, ejecutar:

>> crad-ip-blocker.pyc -x 30.40.50.60 permanent “IP importante no bloquear”

 

Integración Core-Admin con API python

Para usar los servicios de la herramienta de bloqueo de IP, hay que utilizar el siguiente código base para importar el módulo:

from core_admin_agent import application

m = application._import ("ip_blocker")
if not m:
   return (False, "Unable to import application, It is installed?")

Tras esto, para bloquear una IP, usar el siguiente código:

params = {}
params['is_active'] = True
params['ip_blocked'] = '30.40.50.60'
params['description'] = 'Motivo del bloqueo'
params['block_type'] = 'permanent'   # or temporal
params['blocking_period'] = 3600  # ignored when block_type == permanent 


(status, info) = application.call (m, "create_blacklisted_ip", params)
if not status:
    return (False, "Unable to add block rule, error was: %s" % info)

Para listar los bloqueos IP actualmente instalados y sus datos asociados ejecutar:

(status, rules) = application.call (m, "list_blacklisted_ips")
if not status:
   return (False, "Unable to list rules, error was: %s" % rules)

for rule in rules:
   print "INFO: rule info: %s" % rule