Qué son las ACL y cómo configurarlas en el switch L3 D-Link DGS-1520-28MP

Las listas de control de acceso (ACL) son muy importantes en los switches L2+ y también en los switches L3, en nuestro completo análisis del switch gestionable L3 D-Link DGS-1520-28MP os explicamos en detalle todas las características técnicas a nivel de hardware, y también a nivel de software. Este equipo dispone de la posibilidad de creación de listas de control de acceso basadas en MAC, en IPv4 y también es compatible con redes IPv6. Hoy en RedesZone os vamos a enseñar qué son las listas de control de acceso, para qué sirven, y cómo se configuran en cualquier switch L3 de D-Link.

¿Qué son las ACL y para qué sirven?

Las ACL (Access Control List) son un conjunto de reglas, para permitir y/o denegar el tráfico entrante y/o saliente de diferentes puertos y VLANs. Las ACL sirven para manejar los permisos de acceso a las diferentes subredes que tengamos en el switch L3, o a determinados hosts que nosotros tengamos en la red. Actuarían como un «cortafuegos», ya que nos permitirá bloquear a nivel de IP, a nivel de TCP/UDP o ICMP entre otros muchos protocolos IP que tengamos en el firmware del equipo.

Las ACL trabajan usando un listado secuencial de condiciones de permiso y/o prohibición, estas condiciones se pueden aplicar tanto a direcciones IP, subredes, protocolos TCP, UDP, ICMP, VRRP, OSPF y muchos otros protocolos IP. Por supuesto, tendremos la posibilidad de configurar direcciones IP de origen y también direcciones IP de destino. Las ACL deben ponerse en las interfaces de entrada o salida de los diferentes puertos del switch, aunque también podremos crear una ACL para marcar el tráfico y posteriormente usarla dentro de una VLAN, son las denominadas VACL (VLAN Access Control List). Elegir dónde debemos ubicar la ACL, tanto a nivel de puerto, VLAN o como entrante (IN) y saliente (OUT) es fundamental para el correcto funcionamiento de la ACL. Cuando vamos a configurar ACL, debemos ser capaces de pensar tanto el origen como el destino del tráfico, y si el tráfico es IN o OUT en una determinada interfaz física.

Existen dos tipos de ACL principalmente:

  • ACL Estándar: estas listas de control de acceso solamente son capaces de utilizar direcciones IP de origen para permitir o bloquear. No permite usar direcciones IP o subredes de destino, ni tampoco usar protocolos TCP, UDP o ICMP. Solamente podremos configurar la dirección IP de origen o subred de origen. Normalmente las ACL estándar deben ubicarse lo más cerca del «destino» del tráfico posible, porque solo incorpora IP de origen, y podríamos estar bloqueando tráfico que realmente no queremos bloquear.
  • ACL Extendidas: estas ACL usan tanto origen-destino, como también a nivel de IP, a nivel de capa de transporte (TCP y UDP) así como otros protocolos como ICMP, e incluso OSPF, VRRP y más. Por norma general, las ACL extendidas debemos colocarlas lo más cerca del origen del tráfico, porque sí lleva IP/subred de destino, y por tanto, evitamos que el paquete viaje a través de la infraestructura de la red sin necesidad.

Cuando el paquete es entrante al switch, primero filtramos, y luego reenviamos o enrutamos. Cuando el paquete es saliente, primero reenviamos o enrutamos, y posteriormente (antes de salir por el puerto) filtramos.

Debemos tener muy en cuenta la política que pongamos al final del listado, ya que, si no se satisface ninguna de las ACL, deberemos permitir o denegar el tráfico. Si tenemos una política de permitir todo excepto las ACL que pongamos, deberemos especificar una regla de permitir cualquier origen y cualquier destino a nivel de IP. Si tenemos una política restrictiva, es recomendable poner al final del listado de reglas dentro de una ACL una regla de denegar cualquier origen y cualquier destino a nivel de IP. Toda ACL debe tener al menos un permitir, de lo contrario todo el tráfico será denegado (denegación implícita en todas las ACL).

Otra característica muy importante, es que una misma ACL puede ser aplicada a múltiples interfaces y múltiples VLAN. Sin embargo, solamente es posible aplicar una ACL por puerto IN o OUT, esto significa que, por ejemplo, no podremos aplicar dos ACL en el puerto 10 como IN. La forma correcta de crear una ACL, es primero crear la ACL con las diferentes reglas, y posteriormente aplicarla en la interfaz como IN y/o como OUT.

Una vez que ya hemos visto qué son las ACL, para qué sirven y cómo funcionan, vamos a utilizar el switch L3 DGS-1520-28MP para poner un ejemplo.

Configuración de ACL en cualquier switch L3 de D-Link

Para realizar este ejemplo, hemos creado una red típica con varias VLANs y subredes, ya que este equipo permite ascender las VLANs a nivel de capa de red, y que tener inter-vlan routing para intercomunicar las diferentes VLANs a través del switch, sin necesidad de utilizar un router con 802.1Q.

Lo primero que debemos hacer es entrar vía web al switch L3, la IP predeterminada de todos los switches D-Link es la 10.90.90.90. Entramos con usuario y clave «admin», y después de seguir el asistente de configuración (o cancelarlo), veremos la siguiente pantalla:

Una vez que estemos en el menú del switch L3, tenemos que realizar la configuración de diferentes VLANs.

Configurar VLAN, subredes y aplicar VLAN en puertos

Antes de crear y aplicar las ACL, vamos a crear un total de 3 subredes con tres VLANs para tener inter-vlan routing.

Lo primero que debemos hacer es irnos al menú de «Características L2 / VLAN / 802.1Q VLAN» y dar de alta las tres VLANs que hemos creado, VLAN ID 10, 20 y 30. Una vez que hayamos introducido el listado separado por comas, pinchamos en aplicar y ya habremos creado las tres VLANs.

Ahora debemos meternos en «Interfaz de VLAN» para aplicarlas en los puertos correspondientes, en nuestro caso hemos configurad el puerto 10 como VLAN 10 en acceso, el puerto 11 como VLAN 20 en acceso, y el puerto 12 como VLAN 30 en acceso. Si pinchamos en «Resumen de puertos», podremos ver todo lo que hemos aplicado de forma fácil y rápida, sin necesidad de entrar puerto por puerto.

Una vez creadas y aplicadas las VLANs en los puertos, vamos a crear diferentes interfaces a nivel de IP con estas VLANs. Nos metemos en «Características L3 / Interfaz / Interfaz IPv4», aquí debemos dar de alta las VLAN anteriores (el mismo VLAN ID) una por una pinchando en aplicar. Cuando hayamos creado la interfaz vlan10, vlan20 y vlan30, pinchamos en «Editar» en cada una de ellas y le ponemos las correspondientes direcciones IP, que será el gateway de los diferentes ordenadores:

  • VLAN10: 192.168.10.1/24
  • VLAN20: 192.168.20.1/24
  • VLAN30: 192.168.30.1/24

Una vez creadas, si conectamos diferentes PC a cada uno de los puertos 10, 11 y 12, con su correspondiente IP privada, las interfaces se levantarán (up) y tendremos inter-vlan routing. Aunque este switch L3 tiene servidor DHCP, no lo hemos configurado para quitarle complejidad al ejemplo.

Una vez que comprobemos que tenemos comunicación entre todos los equipos de las diferentes VLANs, vamos a crear VLANs para denegar el tráfico.

Crear y configurar la ACL en el switch

En el menú de «ACL / Asistente de configuración de ACL» es donde tendremos lo básico para empezar a crear una ACL y posteriormente aplicarla. Aquí podremos crear una nueva ACL con este asistente de configuración, o actualizar una que ya tuviéramos anteriormente creada.

Le damos un nombre a la ACL, cuanto más descriptivo sea este nombre, mucho mejor, y pinchamos en siguiente.

Una decisión muy importante es si queremos crear una ACL basada en MAC, en IPv4 o en IPv6. En nuestro caso, vamos a limitar a nivel de IP o capas superiores, así que seleccionamos ACL IPv4. En el siguiente menú es donde elegiremos si queremos dirección IPv4 de origen y destino, filtrar a nivel de TCP o UDP entre muchos otros, si queremos configurar bloqueo de puertos TCP o UDP deberemos elegir el protocolo correspondiente, y definir puerto de origen y destino.

Como os hemos explicado antes, es muy importante pensar el sentido del tráfico, nosotros vamos a limitar de tal forma que cualquier tráfico desde la red VLAN10 a la VLAN20 bloqueemos el tráfico. Seleccionamos origen «any» o directamente la subred de VLAN10 o un host específico, y el destino ponemos la subred de destino. Si seleccionamos «TCP», bloqueará todo a nivel de TCP, es decir, el ping funcionaría si permitimos todo el tráfico IP, y podremos desplegar las opciones de configuración de puertos origen-destino de TCP.

Un aspecto importante es lo de «Comodín», o también conocido como «Wildcard mask». La wildcard mask que debemos poner se calcula poniendo 255.255.255.255 menos la máscara que nosotros tengamos en la subred. En nuestro caso, hemos configurado una red típica /24 o 255.255.255.0, por tanto, la wildcard es 0.0.0.255 y es lo que deberemos fijar.

Una vez que hayamos creado la primera regla de la ACL, podremos aplicarla en uno o varios puertos simultáneamente, nosotros la hemos aplicado en el puerto 10 que es donde tenemos la VLAN ID 10 como acceso, y la dirección como «Entrada» o «IN». De esta forma, cualquier paquete que salga de un equipo conectado en este puerto y que lleve como dirección IP de destino la red 192.168.2.0/24 automáticamente lo filtrará, y no tendrá comunicación. Sin embargo, con esta configuración, sí tendremos comunicación con la VLAN 30 sin problemas.

Tal y como podéis ver, acabamos de crear una ACL con ID 3999 y es de tipo ACL IP extendida. También podremos editar los números de secuencia de cada regla que vayamos añadiendo.

Si pinchamos en la ACL, justo debajo nos aparecerán el listado de reglas que hemos configurado, además, también podríamos configurar unas ACL temporales, en función del tiempo (día y hora), se aplicarán o no.

En este mismo instante, los equipos de la VLAN 10 no podrán comunicarse con la VLAN 20, podéis comprobarlo con el típico ping, siempre

Si pinchamos en «Añadir regla», nos llevará directamente al menú para añadir la regla a esta ACL en concreto, e incluso podremos elegir el número de secuencia manualmente o dejarlo automático. El número de secuencia es muy importante, hemos dicho que las ACL se verifican de forma secuencial, si, por ejemplo, tenemos estas dos reglas:

  1. Denegar el acceso a toda la red 192.168.20.0/24
  2. Permitir el acceso a la IP 192.168.20.3

Y dejamos este mismo orden, la segunda regla jamás se va a satisfacer, primero debemos poner las reglas más específicas, y luego las más generales. Por tanto, hay que pensar bien el número de secuencia a elegir para «ordenar» las diferentes reglas.

Por supuesto, también podremos configurar uno a uno todos y cada uno de los puertos del switch, para aplicar esta ACL o cualquier otra, sin necesidad de complejas acciones o por consola.

Lo que más nos gusta de estos switches L3 de D-Link son la grandísima cantidad de opciones que tenemos disponibles para filtrar el tráfico, podremos filtrar muchos protocolos, e incluso dentro de ICMP, por ejemplo, podremos permitir o denegar diferentes tipos de mensajes ICMP, algo ideal para tener nuestra red perfecta.

Una vez que hemos visto las ACL aplicadas en los puertos, vamos a ver las VLAN ACL, que básicamente es lo mismo, pero en lugar de aplicarse a nivel de puerto, se aplica a nivel de VLAN. Estas VLANs nos permiten filtrar el tráfico entrante y saliente en un switch cuando se usan VLAN, en este caso no se aplica por puerto, sino que se aplica a nivel de VLAN por lo que afecta a todo lo que tengamos en esta subred. La principal diferencia respecto a las ACL anteriores, es que estas ACL VLAN podrían bloquear tráfico a nivel L2 como Spanning-Tree, ARP y más.

Para configurar un mapa de accesos VLAN de ACL, primero tenemos que crear un nombre a este mapa, y decirle la acción, si queremos descartar el tráfico, permitirlo o rechazarlo. A continuación, debemos «enlazar» este mapeo de accesos VLAN a una ACL «normal» que hayamos creado antes. En nuestro caso, vamos a usar la misma ACL que hemos creado anteriormente.

Una vez que lo hayamos creado, deberemos aplicar este mapeo a la VLAN o VLANs que nosotros queramos de la siguiente forma:

Por último, también tenemos las CPU ACL, que nos permitirá filtrar el tráfico que va al propio switch, no a los equipos que haya en las diferentes VLANs. También deberemos crear una ACL como os hemos enseñado anteriormente, y «enlazarla» desde aquí. Las CPU ACL solamente filtran el tráfico hacia el switch, pero no el tráfico desde el propio switch (para no bloquearse a sí mismo).

Hasta aquí hemos llegado con nuestro tutorial sobre las ACL, esperamos que os hayan quedado bastante claros los diferentes conceptos. Si tenéis alguna duda podéis preguntarnos.

¡Sé el primero en comentar!