ACLs
Videos
ACL (Access Control List)
Una ACL (Access Control List) es una lista secuencial de instrucciones que controla el trafico de red permitiendo (permit) o denegado (deny) en un dispositivo de red como router o switch, estas entradas se conocen como ACE (Access control entry).
Propósito: Filtrar el trafico basado en criterios como dirección IP origen/destino, puertos, protocolos, etc., para mejorar la seguridad.
Importancia: Son una herramienta fundamental para implementar políticas de seguridad y controlar el acceso a la red.
Nota: Cuando el trafico de la red atraviesa una interfaz configurada con una ACL, el dispositivo compara la información dentro del paquete con cada ACE, en orden secuencial, para determinar si el paquete coincide con una de las ACE. Este proceso se denomina filtrado de paquetes. Si el dispositivo encuentra una coincidencia, se aplica la instrucción (permit o deny) y no se analizan las otras entradas de la ACL.
El filtrado de paquetes se puede realizar en la Capa 3 o Capa 4 con una ACL.
Nota: Las ACLs tiene un deny implícito al final que bloquea todo el trafico. deny any (Para Standard), deny ip any any (Para Extended)
Tipos de ACLs
Numéricas
ACL Estándar
- Solo analizan la dirección IP origen del paquete.
- La recomendación es aplicarla mas cerca del destino.
- Se identifican con los siguientes números 1-99 y 1300-1999 (rango extendido).
- Ejemplo Configuración:
R1(config)#access-list 1 permit 10.10.10.0 0.0.0.255 # Esta ACL permite tráfico para la red 10.10.10.0/24
ACL Extendida
- Filtran tráfico por origen, destino, protocolo, puertos, etc.
- La recomendación es aplicarla mas cerca del origen.
- Se identifican con los siguientes números 100-199 y 2000-2699.
- Ejemplo Configuración:
R1(config)#access-list 100 permit 10.10.10.0 0.0.0.255 192.168.1.0 0.0.0.255
R1(config)#access-list 101 permit tcp 172.16.1.0 0.0.0.255 any eq www
R1(config)#access-list 150 permit udp host 10.10.10.10 any eq 69
Nombradas
-
Pueden ser estándar o extendidas.
-
Es el método recomendado.
-
Las ACL estándar y extendidas se pueden nombrar para proporcionar información sobre el propósito de la ACL. Por ejemplo, podemos crear una ACL nombrada que se llama SSH-ACL extendida que es mucho mejor que crear una ACL 200 numérica.
-
Ejemplo Configuración:
R1(config)#ip access-list extended SSH
R1(config-ext-nacl)#permit tcp 10.10.10.0 0.0.0.255 any eq 22
Aplicación de las ACLs
Configurar una ACL NO sirve de nada si no se aplica a una interfaz. Para que una ACL funcione, se debe aplicar en una interfaz del dispositivo de manera entrante o saliente.
En cada interfaz se puede aplicar:
- Una ACL IPv4 entrante (in).
- Una ACL IPv4 saliente (out).
- Una ACL IPv6 entrante (in).
- Una ACL IPv6 saliente (out).
Configuración:
R1(config)#ing g0/0
R1(config-if)#ip access-group 1 in
Máscara de Wildcard
La wildcard mask es una máscara de 32 bits que se representa en formato decimal con puntos, al igual que una dirección IPv4. Sin embargo, a diferencia de una máscara de subred, la wildcard mask utiliza unos (1) para indicar las posiciones de bits que debe coincidir y ceros (0) para indicar las posiciones de bits que no importan.
Ejemplo: si queremos permitir todas las direcciones IP en el rengo 192.168.10.0/24, utilizaríamos la siguiente entrada en una ACL estándar. Se configura:
access-list 1 permit 192.168.10.0 0.0.0.255
La wildcard mask 0.0.0.255 indica que los primeros 24 bits (los tres primeros octetos) deben coincidir exactamente con 192.168.10, pero los últimos 8 bits (el ultimo octeto) pueden ser cualquier valor entre 0 y 255.
Otros ejemplos de wildcard masks comunes:
- 0.0.0.0 coincide con cualquier dirección IP ("host").
- 0.0.0.0 255.255.255.255 coincide con cualquier dirección IP y cualquier wildcard mask ("any").
- La palabra clave host: reemplaza la wildcard mask 0.0.0.0
R1(config)#access-list 10 permit host 192.168.5.1 - Es lo mismo que usar
R1(config)#access-list 10 permit 192.168.5.1 0.0.0.0 - La palabra clave any: acepta cualquier direccion IP.
R1(config)#access-list 20 permit any - Es lo mismo que usar
R1(config)#access-list 20 permit 0.0.0.0 255.255.255.255
- La palabra clave host: reemplaza la wildcard mask 0.0.0.0
- 0.0.0.255 coincide con cualquier dirección IP en la subred especificada.
- 0.0.7.255 coincide con un rango de 8 subredes.
- 0.0.15.255 coincide con un rango de 16 subredes.
- 255.255.255.255 coincide con cualquier dirección IP (wildcard mask "any").
Importante recordar los well-known ports (<1024):
- SSH → TCP 22
- Telnet → TCP 23
- HTTP → TCP 80
- SMTP → TCP 25
- TFTP → UDP 69
- SNMP → UDP 161