Blog

Archive for Firewall

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) →

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) →

Actualización — KB: 24032014-001: Gestionando problemas con time wait (no más conexiones TCP)

El artículo de base de conocimiento http://www.core-admin.com/portal/es/kb-24032014-001-dealing-with-time-wait-exhaustion-no-more-tcp-connections sobre cómo gestionar problemas de configuración reportados por el comprobador de time wait, ha sido actualizado para permitir configurar la opción TCP TIME WAIT recycle  (/proc/sys/net/ipv4/tcp_tw_recycle). El artículo también incluye información de cómo la opción se relaciona (y puede causar problemas) con dispositivos detrás de un firewall NAT cuando el servidor que ejecuta esta opción es accedido desde los anteriores.

El artículo también incluye referencias al artículo d Troy Davis http://troy.yort.com/improve-linux-tcp-tw-recycle-man-page-entry/  (en inglés) que explica con mayor detalle porqué ocurre este problema del NAT.

Posted in: Administration, Firewall, KB, Seguridad

Leave a Comment (0) →