Las Listas de Control de Acceso (ACL) son herramientas para filtrar paquetes de red, fundamentales en el ámbito de la seguridad de redes, utilizadas para controlar el tráfico y proteger los recursos de la red.
Las Access Control Lists (ACL) son una funcionalidad que generalmente viene incluida en la mayoría de los dispositivos de red, como routers y switches, especialmente en equipos de fabricantes como Cisco, Juniper, HP, y otros.
Las ACL son conjuntos de reglas que permiten o deniegan el tráfico en una red. Se utilizan para implementar políticas de seguridad y controlar el acceso a recursos específicos.
⚠️ En la siguiente lectura nos enfocamos en dispositivos y sintaxis de cisco ya que son las mas populares en el mercado.
Existen dos tipos principales de ACL: estándar y extendida.
Las ACL estándar filtran el tráfico basándose únicamente en las direcciones IP de origen. Son menos flexibles que las ACL extendidas y generalmente se aplican cerca del destino del tráfico. Las ACL extendidas Permiten un control más detallado al filtrar tráfico basándose en múltiples criterios, incluyendo direcciones IP de origen y destino, protocolos y números de puerto.
Para aplicar la ACL a una interfaz concreta, en el caso de los encaminadores de Cisco, se debe pasar a «modo de configuración de la interfaz» y aplicar el comando ip access-group. La sintaxis es:
1$ router(config) # interface nombre-interface 2$ router(config-if) # ip access-group N {in|out}
nombre-interface es la sintaxis propia de Cisco. Ej: «ethernet-0»,
N es el número que identifica la ACL que se quiere asociar a la interfaz.
IN indica tráfico entrante y OUT saliente.
En la figura. Se quiere dejar pasar hacia dentro todo el tráfico de las redes externas (más allá de la interfaz ethernet-1) excepto el que venga de la red 144.21.0.0. La ACL sería:

1$ router(config)# access-list 1 deny 144.21.0.0 0.0.255.255 2$ router(config)# access-list 1 permit any La segunda línea es obligatoria.
Si no se tiene en cuenta, funcionará la «por defecto» ya citada, que, aunque no se vea es:
1$ router(config)# access-list 1 deny any
Para aplicar la ACL a la interfaz ethernet-1, los comandos serían:
1$ router(config)# interface ethernet-1 2$ router(config-if)# ip access-group 1 in
Filtrando así, solamente, el tráfico entrante.
Las ACLs de tipo extended, comparten todas las demás características del standard, pero tienen una sintaxis más complicada, atendiendo a que permiten filtrar utilizando muchos otros criterios:
1$ router(config)# access-list N {permit|deny} protocolo dir.IP-fuente [máscara-fuente] [op puerto-fuente] dir.IP-destino [máscara-destino] [op puerto-destino]
En este caso, N es un número entre 100 y 199, para indicar que es una lista extended, protocolo es la referencia al campo de número de protocolo de la cabecera IP y op puede ser:
lt, indicando «menor que».le, indicando «menor o igual que».gt, indicando «mayor que».ge, indicando «mayor o igual que».eq, indicando «igual a».ne, indicando «distinto a».range, que permite expresar un rango de números.Si lo que se busca es en la misma topología de la figura anterior, que se cumpla la siguiente política:
155.15.1.1.133.11.1.3.144.21.0.0.La lista de acceso sería:
1$ router(config)# access-list 101 permit ip host 133.11.1.3 any 2$ router(config)# access-list 101 permit tcp 155.15.11.1 any eq 23 3$ router(config)# access-list 101 permit ip 144.21.0.0 0.0.255.255 any
Igual que antes, la condición implícita por defecto, no permite entrar más tráfico.