Blog

Archive for Blacklist

Integración Core-Admin para seguimiento de redes Tor, análisis, marcado y bloqueo

[extoc]

Introducción a la integración de Tor con Core-Admin

La red Tor es una infraestructura de anonimización, abierta a todo el mundo para su uso, que permite a usuarios ocultar su localización (mayormente la IP) o hacer difícil de trazar y seguir (https://www.torproject.org/). Como su función indica, puede ser usada para proteger a los usuarios de abusos y seguimiento.

Sin embargo, usted puede estar interesado en tener información adicional sobre cómo Tor puede ser usado para acceder a sus servicios y para implementar análisis, aplicación de política o quizas bloqueo de tráfico que pueda venir de la red Tor (legítimo o no).

Debido al modo de funcionamiento de la red Tor, todos los nodos de salida son públicos y puedene ser descargados. Combinados con algunas funciones de seguimiento, es posible saber si una IP pertenece a la red Tor (cómo nodo de salida) o si fue parte de ella en el pasado.

Core-Admin proporciona una opción de integración que permite tener toda esta información de manera usable del tal modo que pueda integrarla en su infraestructura.

core-admin-tor-integration

Cómo activar la integración de la red Tor con Core-Admin

Para esto, abra la aplicación #IpBlocker como se muestra a continuación:

Selección_336

y luego pulse a configurar:

Selección_337

Después de eso, pulse para habilitar la integración de la red Tor como se muestra:

Selección_353

Después de activarlo, tendrá en su systema una base de datos de información actualizada sobre los nodos de salida de la red Tor que están activos y que estuvieron activos en el pasado.

Cómo usar esta información sobre los nodos de salida Tor con Core-Admin

Activando esta integración básica, tendrá diferentes indicaciones listas de fábrica para usar. Algunas de ellas son las siguientes:

Soporte para obtener una indicación si se detecta nodo Tor cuando compruebe con la herramienta #IpBlocker. De esta manera, será capaz de obtener información adicional cuando compruebe ataques:

Selección_354

También obtendrá información adicional cuando solicite un informe sobre una IP:

Selección_355

Cómo integrar la información sobre la red Tor proporcionada por Core-Admin con MySQL

Para comenzar a hacer algo más avanzado, puede que esté interesado en tener toda esta información en una base de datos MySQL (un par de tablas) de manera que pueda implementar sus propias consultas.

De esta manera, no solo puede comprobar, también puede hacer que su aplicación marque, haga búsquedas rápidas o implemente políticas de control de recursos y proteción.
Por ejemplo, puede querar denegar o permitir toda conexión desde la red Tor o no.

Para habilitar la integración de la red Tor con MySQL, siga los siguientes pasos como se muestra, en introduzca la base de datos donde quiera que la información sea exportada y actualizada. Puede configurar varias bases de datos MySQL.

Core-Admin mantendrá esta información MySQL actualizada, dejando el resto de tablas sin tocar. Esto puede ser usado para bases de datos dedicadas o ya existentes, con datos en funcionamiento, donde un par de tablas aparecerán y serán actualizadas de manera que su aplicación podrá acceder a esta información usando su API MySQL actual.

Selección_356

Cómo bloquear la red Tor con Core-Admin

En el caso de que no quiera que ninguno de sus servicios esté disponible/alcanzable desde ningún nodo de salida Tor, entonces use la siguiente opción. Esto creará automáticamente reglas de bloqueo IP de firewall para todos los nodos de salida encontrados. Estas reglas serán actualizadas regularmente borrando los nodos de salida antiguos y añadiendo los nuevos.

Selección_357

Opciones de línea de comando para gestionar la integración de la red Tor con Core-Admin

Existen diferentes opciones disponibles a través de la herramienta crad-ip-blocker.pyc. Ejecute el siguiente comando para obtener la información sobre ellas:

>> crad-ip-blocker.pyc  --help | grep tor
                        also removes old blocking history (retaining last
  --update-tor-exit-nodes-list
  --find-all-tor-access
  --check-tor-ip=IP[,IP2[,IP3]]
                        in tor (active,historic) network or not.
  --export-tor-tracking-to-mysql-db=DBNAME[,DBNAME2[,DBNAME3]]
  --dump-tor-tracking   Allows to dump all tor tracking information current
                        stored.
  --block-active-tor-nodes
                        Allows to block all tor actives nodes currently found.
                        /crad-ip-blocker.pyc --update-tor-exit-nodes-list to
  --unblock-active-tor-nodes
                        active-tor-nodes. Use this option to remove all rules
                        created by --block-active-tor-nodes options.

¿Falta algo o tiene alguna duda? ¡Queremos oir su opinión!

Por favor, si tiene una pregunta o un comentario, contacte con nosotros en support@core-admin.com (https://www.core-admin.com/portal/en/about-us/contact).

Posted in: Blacklist, Firewall, Tor

Leave a Comment (0) →

Cómo usar ipset para bloquear conjuntos de IPs grandes con #Core-Admin e #IpBlocker

[extoc]

Introducción a ipset con Core-Admin

En el caso de que quiera bloquear un conjunto grande de IPs (más de 500 ips/redes), entonces puede que haya notado que el modo por defecto block-by-iptables no es lo suficientemente rápido, además tiende a crear un conjunto de reglas iptables demasiado grande, que no ofrece un buen rendimiento.

Selección_334

Si ese es su caso, aquí puede ver cómo configurar su #IpBlocker para usar ipset del kernel de linux.

Prerequisitos para usar ipset con Core-Admin

Esta opción no está disponible para Debian Lenny, Debian Squeeze y Centos 6 debido a soporte limitado o inexistente de ipset.

Cómo activarlo ipset con Core-Admin

#IpBlocker está preparado para cambiar deblock-by-ipset a block-by-iptables y viceversa en cualquier momento que lo necesite. Esto incluye casos donde el firewall ya está funcionando y con un conjunto de reglas de bloqueo.

Para habiltiarlo, simplemente sigua los siguientes pasos. Abra el #IpBlocker como se muestra (se necesita permisos de administrador):

Selección_336

Luego abra la configuración:

Selección_337

A continuación, seleccione block-by-ipset en el modo de bloqueo y dele a guardar. Si no está disponible, por favor, actualice su core-admin. Dependiendo del número de reglas que tenga su máquina, puede que lleve algunos minutos hacer el cambio.

Selección_338

Operación activada

Si todo fue correcto, podrá usar su #IpBlocker como de costumbre (y el resto del sistema también). No se necesitan pasos adicionales debido a que una vez está hecho, es transparente para el usuario y para el sistema.

Algunos detalles internos de cómo ipset es usado con Core-Admin

Bajo el modo ipset, core-admin instalará solo unas pocas reglas dentro de la cadena iptables e ip6tables para enlazar el conjunto ipset creado.

>> iptables -S | grep set
-A INPUT -m set --match-set core_admin_blacklist_ipv4_net src -j DROP
-A INPUT -m set --match-set core_admin_blacklist_ipv4 src -j DROP
-A FORWARD -m set --match-set core_admin_blacklist_ipv4_net src -j DROP
-A FORWARD -m set --match-set core_admin_blacklist_ipv4 src -j DROP
-A OUTPUT -m set --match-set core_admin_blacklist_ipv4_net src -j DROP
-A OUTPUT -m set --match-set core_admin_blacklist_ipv4 src -j DROP

Estos conjuntos (“sets”) son accesibles ejecutando comandos habituales de “ipset” (no manipule directamente, use la aplicación #IpBlocker o la herramienta de comandos crad-ip-blocker.pyc):

>> ipset list

Posted in: Blacklist, Seguridad

Leave a Comment (0) →

Integración con Crad-Log-Watcher para bloquear IPs por fallos de login para aplicaciones web/servidor

[extoc]

Para integrar los fallos de login con crad-log-watcher y hacer que la IP remota sea bloqueada automáticamente cuando el número de fallos de login sean alcanzados, entonces siga la siguiente guía.

Los siguientes pasos le ayudarán a crear un handler para gestionar fallos de login que serán trazados y marcados para cualquier aplicación, de manera que la IP de origen sea bloqueada cuando un humbral configurable sea alcanzado.

  1. Primero, haga que su aplicación web o servidora genere una indicación de log con la IP que debería ser bloqueada (o controlada).

    Recomendamos enviar este log a syslog debido a que este log es accesible a todos los usuarios del sistema y no requiren un usuario ni permisos especiales. Esto simplificará los siguientes pasos. Si decide enviar esta información a otro log, simplemente adapte los siguientes pasos como corresponda.

    Con PHP, generar dichos logs, sería:

    // en caso de logins fallidos ::
            $remoteAddr = $_SERVER['REMOTE_ADDR'];
            $currentWeb   = $_SERVER['SERVER_NAME'];
            $loginAttempted = // apunte esta variable al login que ha sido intentado y ha fallado
            syslog (LOG_INFO, "Login failure from [$remoteAddr] access denied to [$currentWeb] with user [$loginAttempted]");
            

    Esto hará que se registre un log en el syslog cada vez que haya un fallo de login.
    Esto será necesario para cada aplicación web o servicio que sea necesario proteger.

  2. Ahora, cree un handler personalizado para crad-log-watcher que lea estos logs, lleve una traza de los logins fallidos y bloquee las IPs alcanzado los umbrales:

    Para eso, cree un fichero llamado login_failure_handler.py con el siguiente contenido (adapte a sus necesidades):

    #!/usr/bin/python
    
    from core_admin_common import support
    from core_admin_agent  import checker, watcher
    
    # database for tracking login failures
    database_path = "/etc/core-admin/client/my.watcher.sql"
    
    def init ():
    
        # notify this is child for checker notification
        checker.is_child = True
    
        # track and lock login failures
        (status, info) = watcher.create_track_login_failure_tables (database_path)
        if not status:
            return (False, "Unable to create ip_registry table, error was: %s" % info)
    
        return (True, None) # return ok init
    
    def handle_line (line, source_log):
    
        # only process log failures to block
        if "login failure from [" in line.lower () and "access denied to [" in line.lower ():
            
            # assuming log error format:
            # Jul  7 16:15:29 node04-grupodw python: Login failure from [88.99.109.209] access denied to [http://foobar.com] with user [userAccess1]
        
            source_ip_to_block    = line.lower ().split ("login failure from [")[1].split ("]")[0]
            login_failure_because = line.lower ().split ("access denied to [")[1].split ("]")[0]
            user_login            = line.lower ().split ("with user [")[1].split ("]")[0]
    
            # configure notification
            reason                   = "Access failure to %s" % login_failure_because
            fail_logins_before_block = 10
            
            # call to track user and ip
            watcher.track_and_report_login_failure (user_login, source_ip_to_block, reason, database_path, fail_logins_before_block, source_log)
    
        # end if
        
        return
    
  3. Ahora, ajuste este fichero dentro de /var/beep/core-admin/client-agent/log-handlers (cópielo dentro de este directorio)

  4. Ahora, dentro de /etc/core-admin/client/log-watcher.d, cree un fichero que vincule su /var/log/syslog con el handler que acaba de crear. Por ejemplo, haga que el fichero tenga la siguiente ruta: /etc/core-admin/client/log-watcher.d/custom-login-failures-blocker

    <log src="/var/log/syslog" handler="login_failure_handler" />
  5. Después de eso, simplemente reinicie crad-log-watcher para hacer que lea su handler y la configuración creada con:

    /etc/init.d/crad-log-watcher restart
  6. Supervise la ejecución de crad-log-watcher para asegurar que todo está funcionando con:
    # tail -f /var/log/syslog | grep crad-log-watcher
  7. Ahora, pruebe el desarrollo causando login fallidos al sistema protegido. Debería ver logs creados en /var/log/syslog.

    Si no ve ningún fallo de login, entonces el sistema no funcionará. Revise su código para asegurar que estos logs son creados.

  8. Si los logs de fallo de login son creados, entonces use el siguiente comando para mostrar si el trazado de login fallidos está ocurriendo:

    # sqlite3 -column -header /etc/core-admin/client/syslog.watcher.sql "select * from login_failure"

¿Alguna cuestión? Contacte con nosotros en support@core-admin.com (https://www.core-admin.com/portal/about-us/contact).

Posted in: Blacklist, Firewall, Seguridad

Leave a Comment (0) →

Detección automática e integrada de blacklist (DNS RBL) para Core-Admin

¿Nunca quiso saber automáticamente cuando sus servidores son listados en listas negras (DNS rbl)?

Para la siguiente revisión de Core-Admin hemos incluido un comprobador muy útil (rbl_check_checker) que permite comprobar contra más de 100 listas negras conocidas si alguna de las IPs de sus servidores fueron listadas. Y en caso de ser listados, el checker le proporcionará la información sobre la lista y cómo proceder para el desbloqueo.

El comprobador también detecta IPs locales y en ese caso, el comprobador utiliza automáticamente un servicio remoto para averiguar la IP pública que ejecuta su servidor. Ahora, con esta información el comprobador es capaz de comprobar esos servidores LAN locales.

El comprobador se integra automáticamente en su Core-Admin y le proporcionará información actualizada para todos los servidores conectados al panel. Véalo en acción:

Mejorando la reputación IP de sus servidores para los envíos

Al tener el checker rbl ejecutando en sus servidores mejorará enormemente la reputación IP de sus servidores debido a que obtendrá información instantánea sobre cualquier listado aplicado para cualquiera de las IPs en ejecución justo cuando ocurre.

Una pronta respuesta es clave para resolver problemas de reputación IP. Cuanto antes los pueda resolver, menos afectado estará su servicio de correo. Con esta información puede reaccionar rápidamente tomando las medidas requeridas y para solicitar el borrado IP.

Posted in: Blacklist, Core-Admin, Seguridad

Leave a Comment (0) →