Dominando las Listas de Control de Acceso (ACL) para la Protección de VLAN

Las Listas de Control de Acceso (ACL) son un componente fundamental en la arquitectura de redes modernas, actuando como guardianes de la seguridad y el flujo de tráfico. Su capacidad para definir reglas granulares permite a los administradores de red controlar con precisión qué datos pueden transitar por la red, a dónde pueden ir y desde dónde pueden originarse. Este artículo profundiza en la configuración y aplicación de ACL, con un enfoque particular en su uso para proteger VLAN y puertos VTY, elementos cruciales para la administración segura de dispositivos de red.

Fundamentos de las Listas de Control de Acceso (ACL)

Una ACL es, en esencia, un conjunto de reglas secuenciales diseñadas para permitir o denegar el tráfico de red. Estas reglas, también conocidas como entradas de control de acceso (ACE), se aplican a los paquetes de datos basándose en diversos criterios. Los dispositivos de red, como routers y switches, procesan estas ACL para tomar decisiones sobre el reenvío o el descarte de paquetes.

Diagrama de flujo de paquetes a través de una ACL

Las ACL pueden operar en diferentes niveles de la pila de red. Las ACL estándar, por ejemplo, se centran principalmente en la dirección IP de origen de un paquete. Por otro lado, las ACL extendidas ofrecen una mayor granularidad, permitiendo filtrar el tráfico basándose en direcciones IP de origen y destino, protocolos (como TCP, UDP, ICMP), y números de puerto.

La ubicación y dirección de aplicación de una ACL son críticas para su efectividad. Una ACL puede aplicarse a una interfaz en sentido de entrada (in) o de salida (out). Aplicarla en sentido de entrada significa que las reglas se evalúan para el tráfico que llega a la interfaz, mientras que aplicarla en sentido de salida significa que las reglas se evalúan para el tráfico que sale de la interfaz. La elección correcta depende de la topología de la red y del objetivo de seguridad.

Tipos de ACL y su Aplicación

Existen dos tipos principales de ACL en el contexto de Cisco:

  • ACL Estándar Numeradas: Se identifican por un número. Los rangos tradicionales son del 1 al 99, pero versiones posteriores del software Cisco IOS ampliaron este rango para incluir números del 1300 al 1999, permitiendo la creación de hasta 798 ACL estándar únicas.
  • ACL Estándar con Nombre: Utilizan un nombre alfanumérico en lugar de un número, lo que mejora la legibilidad y la gestión. La sintaxis para crearlas difiere ligeramente, utilizando el comando ip access-list standard name.

La elección entre ACL numeradas y con nombre a menudo se reduce a la preferencia del administrador y la complejidad de la red. Sin embargo, las ACL con nombre suelen ser preferibles en entornos más grandes debido a su claridad inherente.

Configuración de ACL Estándar IPv4 en Routers Cisco

La configuración de una ACL estándar en un router Cisco implica dos pasos principales: la creación de la ACL y su aplicación a una interfaz.

Creación de ACL Estándar

El comando de configuración global access-list se utiliza para definir una ACL estándar. La sintaxis básica es:

Router(config)# access-list <access-list-number> { deny | permit | remark } <source> [source-wildcard] [log]
  • access-list-number: Un número decimal entre 1 y 99, o entre 1300 y 1999.
  • deny: Deniega el acceso si las condiciones concuerdan.
  • permit: Permite el acceso si las condiciones concuerdan.
  • remark: Permite agregar comentarios para facilitar la comprensión. El texto del comentario tiene un límite de 100 caracteres.
  • source: La dirección IP de red o de host desde la que se envía el paquete. La palabra clave any es una abreviatura para 0.0.0.0 255.255.255.255.
  • source-wildcard (Opcional): Una máscara wildcard de 32 bits que se aplica al origen. Los bits establecidos en 1 indican que esa parte de la dirección IP debe ser ignorada en la comparación.
  • log (Opcional): Registra los eventos de coincidencia de ACL en el log del sistema.

Ejemplo de configuración para permitir una red específica:

R1(config)# access-list 10 permit 192.168.10.0 0.0.0.255

Esta instrucción crea la ACL número 10 y permite el tráfico proveniente de la red 192.168.10.0/24. La máscara wildcard 0.0.0.255 indica que los primeros tres octetos deben coincidir exactamente, mientras que el último octeto puede ser cualquiera.

Ejemplo de configuración para permitir un host específico:

R1(config)# access-list 10 permit host 192.168.10.10

La palabra clave host simplifica la configuración para una única dirección IP.

Aplicación de ACL Estándar a Interfaces

Una vez que una ACL ha sido configurada, debe ser aplicada a una interfaz para que tenga efecto. Esto se realiza en el modo de configuración de interfaz utilizando el comando ip access-group:

Router(config-if)# ip access-group { access-list-number | access-list-name } { in | out }
  • access-list-number o access-list-name: El número o nombre de la ACL a aplicar.
  • in: Aplica la ACL al tráfico entrante en la interfaz.
  • out: Aplica la ACL al tráfico saliente de la interfaz.

Ejemplo de aplicación:

R1(config)# interface serial 0/0/0R1(config-if)# ip access-group 1 out

En este ejemplo, la ACL número 1 se aplica a la interfaz Serial 0/0/0 para filtrar el tráfico saliente.

Diagrama de un router con una ACL aplicada a una interfaz de salida

Eliminación de ACL

Para eliminar una ACL de una interfaz, se utiliza el comando no ip access-group en el modo de configuración de interfaz. Para eliminar la ACL completamente del router, se usa el comando no access-list en modo de configuración global.

R1(config-if)# no ip access-group 1 outR1(config)# no access-list 1

Es importante tener en cuenta que al eliminar una ACL que está aplicada a una interfaz, el comportamiento del tráfico puede variar según la versión del IOS. Algunas versiones pueden comenzar a permitir todo el tráfico, mientras que otras pueden denegar todo. Por ello, se recomienda eliminar la ACL de la interfaz antes de eliminarla globalmente.

Modificación de ACL IPv4

Modificar una ACL existente puede ser una tarea delicada, ya que un error puede tener consecuencias significativas en el flujo de tráfico. Existen varios métodos para realizar estas modificaciones.

Método 1: Uso de un Editor de Texto y Reconfiguración

Este método implica la exportación de la ACL actual, su edición en un editor de texto y su posterior reimportación.

  1. Mostrar la ACL: Utilice el comando show running-config para visualizar la ACL.
  2. Copiar y Editar: Copie la configuración de la ACL en un editor de texto (como el Bloc de notas de Microsoft). Realice las modificaciones necesarias.
  3. Eliminar la ACL Existente: En el modo de configuración global, elimine la ACL original usando no access-list <number>.
  4. Reconfigurar la ACL: Pegue la ACL modificada desde el editor de texto en la interfaz de configuración del router.

Consideraciones: Antes de eliminar la ACL, es prudente eliminar su aplicación de las interfaces (no ip access-group) para evitar interrupciones inesperadas en el tráfico.

Método 2: Edición por Números de Secuencia (ACL Numeradas)

El software Cisco IOS asigna números de secuencia a cada entrada de una ACL. Estos números permiten insertar o eliminar instrucciones específicas.

  1. Mostrar ACL con Números de Secuencia: Utilice el comando show access-lists <number> para ver la ACL con sus números de secuencia asignados automáticamente.
  2. Eliminar una Instrucción Específica: En el modo de configuración de ACL (que se accede mediante access-list <number> y luego configure terminal), utilice el comando no <sequence-number> para eliminar una entrada. Por ejemplo, no 10 eliminaría la entrada con el número de secuencia 10.
  3. Insertar una Instrucción: Las nuevas instrucciones se insertan basándose en el orden de los números de secuencia. Si desea insertar una instrucción en una posición específica, puede usar un número de secuencia intermedio. Por ejemplo, si tiene las secuencias 10 y 20, puede insertar una nueva entrada con la secuencia 15.

Nota: Las instrucciones no se pueden sobrescribir directamente con el mismo número de secuencia.

Método 3: Edición de ACL con Nombre

Las ACL con nombre ofrecen una edición más intuitiva a través de números de secuencia.

  1. Crear la ACL con Nombre: Use ip access-list standard <name> para entrar en el modo de configuración de ACL con nombre.
  2. Mostrar ACL con Números de Secuencia: Dentro del modo de configuración de ACL con nombre, utilice show para ver las entradas con sus números de secuencia.
  3. Eliminar o Insertar Instrucciones: Similar a las ACL numeradas, puede usar no <sequence-number> para eliminar una entrada. Para insertar una nueva regla, simplemente ingrésela con el número de secuencia deseado. Por ejemplo:Router(config-std-nacl)# 15 permit host 192.168.10.20Esto insertaría una regla con el número de secuencia 15.

Protección de Puertos VTY con ACL IPv4 Estándar

Los puertos VTY (Virtual Teletype) son los puertos lógicos utilizados para el acceso remoto a un dispositivo de red, comúnmente a través de Telnet o SSH. Proteger estos puertos es esencial para prevenir accesos no autorizados. Las ACL estándar IPv4 son una herramienta efectiva para este propósito.

La estrategia general es crear una ACL que permita el acceso únicamente desde direcciones IP de origen de confianza y deniegue todo lo demás.

Pasos para proteger puertos VTY:

  1. Crear una ACL Estándar:

    R1(config)# access-list 99 permit host 192.168.1.100 // Permitir acceso desde una IP específicaR1(config)# access-list 99 permit 192.168.2.0 0.0.0.255 // Permitir acceso desde una subredR1(config)# access-list 99 deny any log // Denegar todo lo demás y registrar

    La ACL número 99 permite el acceso desde la IP 192.168.1.100 y desde la subred 192.168.2.0/24. La última línea, deny any log, es crucial: deniega implícitamente todo el tráfico restante y genera un registro de los intentos denegados, lo cual es útil para la auditoría de seguridad.

  2. Aplicar la ACL a las Líneas VTY:R1(config)# line vty 0 4R1(config-line)# access-class 99 inEste comando aplica la ACL 99 a las líneas VTY (en este caso, las líneas 0 a 4) para el tráfico entrante (in). Esto significa que solo los hosts cuyas direcciones IP coincidan con las entradas permit de la ACL podrán establecer una conexión remota con el router.

Diagrama mostrando la protección de puertos VTY con ACL

Consideraciones Adicionales para la Protección VTY

  • Uso de SSH sobre Telnet: Siempre que sea posible, se debe priorizar el uso de SSH sobre Telnet. SSH cifra la sesión de comunicación, mientras que Telnet transmite la información en texto plano, lo que lo hace vulnerable a la interceptación. La protección de puertos VTY con ACL es una capa de seguridad adicional, pero no sustituye la encriptación.
  • Direcciones IP de Origen: Identifique claramente las direcciones IP o rangos de direcciones desde los cuales se debe permitir el acceso administrativo. Evite el uso de permit any en la ACL que protege las líneas VTY, a menos que sea estrictamente necesario y comprenda las implicaciones de seguridad.
  • Denegación Implícita: Recuerde que toda ACL tiene una instrucción deny any implícita al final. Si no desea que se registren los intentos de acceso denegados, puede omitir la palabra clave log en la instrucción deny any, pero la denegación seguirá activa.

Verificación y Estadísticas de ACL

Verificar la correcta implementación de una ACL es tan importante como su configuración.

Verificación de la Aplicación de ACL

El comando show ip interface proporciona información sobre las ACL aplicadas a una interfaz específica, incluyendo el número o nombre de la ACL y la dirección (in/out) en la que se aplicó.

R1# show ip interface serial 0/0/0

Para ver el contenido detallado de una ACL, se utiliza:

R1# show access-lists

O para una ACL específica:

R1# show access-lists <number | name>

Estadísticas de ACL

Una vez que el tráfico ha pasado por una ACL aplicada, el comando show access-lists también muestra estadísticas de coincidencia para cada entrada. Esto es invaluable para la resolución de problemas y la optimización.

R1# show access-lists

El resultado mostrará un contador junto a cada entrada permit o deny, indicando cuántos paquetes han coincidido con esa regla.

Captura de pantalla mostrando estadísticas de coincidencia de ACL

  • permit y deny: Ambas instrucciones rastrean las estadísticas de coincidencia.
  • deny any implícita: La instrucción deny any implícita al final de cada ACL no aparece en la salida de show access-lists. Si se desea ver estadísticas para esta regla, debe configurarse explícitamente en la ACL.

Borrado de Contadores de ACL

Para reiniciar las estadísticas de coincidencia de ACL y comenzar una nueva medición, se utiliza el comando clear access-list counters:

R1# clear access-list counters

Este comando se puede usar solo para borrar todos los contadores de ACL o con el número o nombre de una ACL específica para borrar solo los contadores de esa ACL.

Consideraciones Avanzadas: ACL en Switches y VACLs

Si bien este artículo se ha centrado en la configuración de ACL en routers, es importante mencionar que las ACL desempeñan un papel crucial también en los switches, especialmente en los switches de Capa 3 (L3).

  • ACL en Switches L3: Los switches L3 pueden aplicar ACL a nivel de puerto o a nivel de VLAN para controlar el tráfico entre diferentes subredes o dentro de la misma VLAN. Esto permite segmentar la red de manera efectiva y aplicar políticas de seguridad específicas.
  • VACLs (VLAN Access Control Lists): Las VACLs son ACL que se aplican a nivel de VLAN en lugar de a nivel de interfaz física. Permiten filtrar el tráfico que entra o sale de una VLAN completa, independientemente de los puertos específicos en los que se conecten los dispositivos. Esto es útil para aplicar políticas de seguridad consistentes en todas las subredes.
  • CPU ACLs: Algunos dispositivos también soportan "CPU ACLs" que filtran el tráfico destinado al propio procesador del dispositivo, protegiéndolo de ataques de denegación de servicio dirigidos a la CPU.

La correcta implementación de ACL, ya sea en routers o switches, requiere una planificación cuidadosa de la topología de red, la identificación de los flujos de tráfico críticos y la definición clara de las políticas de seguridad. Elegir el tipo de ACL adecuado (estándar o extendida), el lugar de aplicación (interfaz o VLAN) y la dirección (in/out) es fundamental para lograr los objetivos de seguridad deseados.

ACL para líneas VTY Cisco IOS

tags: #acl #para #bloquear #vlan