16 de diciembre de 2007

Introduciendo el uso de NBAR

Network-Based Application Recorgnition (NBAR) es un feature incluido en Cisco IOS a partir de su versión 12.0, que agrega habilidades de clasificación de tráfico a la insfraestructura de la red.
Es un motor de clasificación de tráfico que reconoce una amplia variedad de aplicaciones, incluyendo aquellas que utilizan asignación dinámica de puertos TCP o UDP. Esto permite aplicar servicios específicos a las aplicaciones que se reconocen. Es como tener un analizador de tráfico incorporado en nuestra imagen de Cisco IOS. De esta manera nuestos dispositivos ya no sólo pueden operar sobre información de los encabezados de capa 3 y 4, sino que ahora pueden extender su poder de análisis hasta capa 7.
A partir de IOS 12.3, las habilidades de clasificación de tráfico de NBAR merced a la posibilidad de utilizar PDLM (Packet Description Language Module) para extender estas prestaciones. Cisco regularmente lanza nuevos módulos PDLM para nuevas aplicaciones. La lista de PDLM puede ser consultada en la página web de Cisco.
¿Cómo se utiliza NBAR?
NBAR ha sido diseñado como una aplicación para el reconocimiento de tráfico en la red con el propósito de implementar QoS, sin embargo, es posible darle un sinnúmero de aplicaciones adicionale con el propósito de controlar el tráfico con objetivos de seguridad o solamente remover el tráfico indeseable en un determinado enlace.
En este sentido una de las prestaciones más interesantes de NBAR es la posibilidad de identificar campos específicos en un paquete http, tales como una URL específica o ciertos clientes web.
En general, se puede utilizar NBAR para identificar cualquier tráfico decapa de aplicación para el que NBAR tenga una definición en sus módulos. La tabla de protocolos soportados por NBAR puede ser consultada aquí.
Hay algunas limitaciones para la implementación de NBAR: No se puede aplicar en túneles o interfaces encriptadas, tampoco puede operar con flujos de tráfico asimétricos o analizar tráfico https. Para su operación requiere habilitar previamente CEF.
¿Cómo se configura NBAR?
NBAR es simplemente una aplicación para identificación y marcado de tráfico. Para mostrar su implementación desarrollaré un ejemplo en el que se utiliza NBAR para filtrar tráfico http a una URL específica utilizando ACL, sin embargo, con las debidas variantes, este mismo procedimiento se puede aplicar a partir del paso 5 para implementar otro tipo de políticas:
  • Asegúrese de que en el dispositivo se encuentra habilitado CEF.

    Router(config)#ip cef
  • Cree una clase para identificar el tráfico que se desea clasificar y marcas. En este caso y a fines de ejemplo definiré una clase llamada "descarte" que clasifica toda URL de http que contenga un programa nombrado "readme.exe".

    Router(config)#class-map descarte
    Router(config-cmap)#match protocol http url "*readme.exe*"


    Los asteriscos indican que se desea detectar cualquier URL que contenga el texto "readme.exe" sin importar lo que lo precede o siga.

  • Genere una política para marcar el tráfico que se ha clasificado en el paso anterior. Para esto lo marcaremos con un valor de DSCP igual a 1:

    Router(config)#policy-map trafico_indeseable
    Router(config-pmap)#class descarte
    Router(config-pmap)#set ip dscp 1

  • Configure NBAR de modo que inicie el proceso de descubrimiento de tráfico para todos los protocolos conocidos en una interfaz en particular. En el caso del ejemplo, esta tarea se debe realizar en la interfaz a través de la cual ingresa al dispositivo el tráfico que se desea clasificar y marcar para luego filtrarlo.

    Router(config)#interface serial 0/0/0
    Router(config-if)#ip nbar protocol-discovery

    Si se desea realizar una tarea semejante sobre tráfico que ingresa a través de otra interfaz, NBAR deberá ser activado en esa interfaz.

  • Ahora es necesario aplicar la política que hemos definido antes, a la interfaz en la que ingresa el tráfico que se desea marcar.

    Router(config-if)#service-policy input trafico_indeseable

    De este modo se ha definido un procedimiento de monitoreo y marcación de tráfico indeseable. Este tipo de tráfico será marcado con un valor de DSCP igual a 1. Ahora procederemos a filtrarlo sobre el enlace que deseamos preservar, utilizando una ACL.
  • Cree una lista de control de acceso que deniegue el tráfico marcado:

    Router(config)#access-list 110 deny ip any any dscp 1
    Router(config)#access-list 110 permit ip any any

  • A continuación sólo resta aplicar esa lista de acceso a la interfaz elegida para filtrar el tráfico:

    Router(config)#interface fastethernet 0/0
    Router(config-if)#ip access-group 110 out
NBAR es una potente herramienta de monitoreo de tráfico que ya viene instalada en nuestros routers Cisco IOS desde la versión 12.0. Sólo es necesario familiarizarnos con ella y comenzar a implementarla para aprovechar todo su potencial.
Tengamos en cuenta que con procedimientos como este, al filtrado tradicional de ACLs utilizando criterios de capa 3 y 4, podemos ahora agregar la posibilidad de filtrar tráfico en función de información de capa 7.
Información adicional
¿Tenés algún tip para aportar en este tema....?
Perfecto!!!! agregá un comentario con el detalle.
Muchas gracias.
Oscar Gerometta

9 comentarios:

  1. esta mal el comando:

    class-map descarte

    debe ser class descarte, sino no deja coloar set precedende

    ResponderEliminar
  2. Gracias. Ya está corregido en el texto.

    ResponderEliminar
  3. excelente de gran ayuda

    ResponderEliminar
  4. gracias por el aporte
    pero porque se aplica en la fa0/0 en modo out?
    se supone que es trafico que ingresa y el router lo evita !

    ResponderEliminar
    Respuestas
    1. Estimado.
      Para aplicar la política que se define en el ejemplo, es necesario marcar el tráfico indeseable y luego descartarlo.
      Por otra parte, hay un orden de ejecución de las operaciones sobre el tráfico que ingresa o egresa a través de una interfaz.
      En atención a ambos elementos, es que debemos marcar el tráfico en la interfaz entrante (en el ejemplo la Serial) y aplicar la lista de acceso que lo descarta en la interfaz saliente (en este caso la FastEthernet). Si no se deniega en una lista de acceso, el tráfico simplemente se marca y no se descarta.

      Eliminar
  5. Excelente información!!!

    ResponderEliminar
  6. Oscar, muy buen material, en el caso de que una red este segmentada, y tenga una sola salida con un router cisco, es necesario crear una ACL por cada segmento de red? tengo un edificio de 3 pisos en el que sin razon alguna se saturan de manera aleatoria por lo que necesito descartar problemas de virus.

    ResponderEliminar
    Respuestas
    1. Es difícil dar una respuesta única sin conocer específicamente la topología de la red. Pero en principio, por lo que dices, puedes generar una ACL para cada segmento o simplemente aplicar una única ACL para aplicar en la interfaz de salida.
      Más allá de eso, una ACL no es una herramienta idónea para solucionar problemas referidos a malware o específicamente a virus.

      Eliminar
  7. Estimado Oscar, se entendió perfectamente el concepto de NBAR, y claro está su potencial en directa relación a su forma de implementar,
    Agradecido

    ResponderEliminar

Gracias por tu comentario.
En este blog los comentarios están moderados, por lo que su publicación está pendiente hasta la revisión del mismo.