ACL en Routers: Controlando quién puede comunicarse dentro de una red.
En una infraestructura de red moderna, no basta con que los dispositivos puedan comunicarse entre sí. También es necesario controlar qué tráfico está permitido y qué tráfico debe ser bloqueado. Para lograr este objetivo, los routers incorporan un mecanismo denominado ACL (Access Control List) o Listas de Control de Acceso.
Una ACL es un conjunto ordenado de reglas que permite filtrar el tráfico de red tomando decisiones de tipo permitir (permit) o denegar (deny). Estas reglas pueden aplicarse sobre paquetes que entran o salen de una interfaz y constituyen uno de los mecanismos más utilizados para implementar políticas básicas de seguridad.
Una de las recomendaciones clásicas en el diseño de ACLs consiste en colocarlas lo más cerca posible de la fuente del tráfico que se desea controlar. Sin embargo, la ubicación exacta depende del tipo de ACL que se utilice.
En términos generales, existen dos tipos principales:
- ACL estándar
- ACL extendida
Cada una posee características, capacidades y escenarios de aplicación diferentes, como veremos a continuación.
¿Cómo decide un router aplicar una ACL?
Cuando un paquete llega a una interfaz del router, el dispositivo examina la configuración asociada a dicha interfaz. Las ACL pueden aplicarse en dos direcciones:
| Dirección | Significado |
| Inbound (entrada) | El tráfico es evaluado al ingresar a la interfaz. |
| Outbound (salida) | El tráfico es evaluado antes de abandonar la interfaz. |
Por ejemplo, supongamos que un paquete llega a una interfaz configurada con una ACL de entrada:
PC – Router – Red Remota
Antes de consultar la tabla de enrutamiento, el router revisará la ACL asociada. Si una regla coincide:
- Se ejecuta la acción especificada.
- Permit: el paquete continúa.
- Deny: el paquete es descartado.
Si ninguna regla coincide, se aplica la regla implícita de denegación que estudiaremos más adelante.
ACL de entrada (Inbound)
Cuando una ACL se configura como entrada, el tráfico es evaluado inmediatamente al ingresar a la interfaz.
Router(config-if)# ip access-group 10 in
Proceso:
- Llega el paquete.
- Se verifica la ACL.
- Si es permitido:
- Se consulta la tabla de enrutamiento.
- Continúa el proceso normal.
- Si es denegado:
- El paquete es descartado.
Ventaja: Se evita consumir recursos del router procesando tráfico que posteriormente será bloqueado.
ACL de salida (Outbound)
Cuando una ACL se configura como salida, el tráfico primero sigue el proceso normal de enrutamiento.
Router(config-if)# ip access-group 10 out
Proceso:
- Llega el paquete.
- El router determina la ruta.
- Antes de salir por la interfaz, se verifica la ACL.
- Se permite o bloquea la transmisión.
ACL estándar
Las ACL estándar representan el mecanismo más sencillo de filtrado. Su característica principal es que únicamente evalúan la dirección IP origen y no analizan:
- Dirección destino.
- Protocolos.
- Puertos TCP.
- Puertos UDP.
Por estándar, utilizan el rango numérico que va del 1 al 99 y del 1300 al 1999.
Sintaxis de ACL estándar
Ejemplo 1. Permitir una única dirección IP:
Router(config)# access-list 10 permit 192.168.10.100
Ejemplo 2. Permitir una red completa:
Router(config)# access-list 10 permit 192.168.10.0 0.0.0.255
Observar el uso de la Wildcard Mask. La wildcard 0.0.0.255 es el complemento de 255.255.255.0.
Ejemplo 3. Bloquear una dirección específica:
Router(config)# access-list 10 deny 192.168.10.50
¿Dónde deben colocarse?
Como las ACL estándar solamente analizan el origen y no pueden identificar el destino final del tráfico, la recomendación tradicional es colocar las ACL estándar lo más cerca posible del destino. De esta forma se evita bloquear tráfico que podría necesitar acceder a otros recursos legítimos.
Ejemplo práctico
Suponiendo:
|
Red Ventas |
Servidor ERP |
|
Red Ventas |
Servidor Correo |
|
Red Ventas |
Servidor DNS |
Si únicamente se desea impedir acceso al ERP, una ACL estándar no puede diferenciar esos destinos. Por eso generalmente se coloca cerca del servidor ERP.
ACL extendida
Las ACL extendidas ofrecen mucho más control, ya que pueden evaluar:
- IP origen.
- IP destino.
- Protocolo.
- Puerto origen.
- Puerto destino.
Esto permite crear reglas mucho más específicas. Por estándar, utilizan el rango numérico comprendido del 100 al 199 y del 2000 al 2699.
Sintaxis de ACL extendida
Ejemplo básico.
Router(config)# access-list 101 permit ip any any
Significado:
- Permitir cualquier protocolo.
- Desde cualquier origen.
- Hacia cualquier destino.
Ejemplo para HTTP.
Router(config)# access-list 101 permit tcp 192.168.10.0 0.0.0.255 any eq 80
Significado:
- Permitir TCP.
- Desde la red 192.168.10.0/24.
- Hacia cualquier destino.
- Únicamente puerto 80 (HTTP).
Ejemplo para HTTPS.
Router(config)# access-list 101 permit tcp 192.168.10.0 0.0.0.255 any eq 443
Ejemplo para bloquear una red.
Router(config)# access-list 101 deny ip 192.168.20.0 0.0.0.255 192.168.30.0 0.0.0.255
Significado:
- Bloquear toda comunicación IP.
- Desde 192.168.20.0/24.
- Hacia 192.168.30.0/24.
¿Dónde deben colocarse las ACL extendidas?
Debido a que poseen mayor capacidad de análisis, la recomendación clásica es colocar las ACL extendidas lo más cerca posible de la fuente, porque es preferible bloquear el tráfico no permitido desde el inicio y evitar que recorra innecesariamente la red.
Comparación entre ACL estándar y extendida.
|
Característica |
ACL estándar |
ACL extendida |
|
Evalúa origen |
Sí |
Sí |
|
Evalúa destino |
No |
Sí |
|
Evalúa protocolos |
No |
Sí |
|
Evalúa puertos |
No |
Sí |
|
Nivel de control |
Básico |
Avanzado |
|
Ubicación recomendada |
Cerca del destino |
Cerca de la fuente |
La regla de denegación implícita.
Uno de los conceptos más importantes al trabajar con ACL es que todas poseen una regla invisible al final que, aunque no aparezca escrita, el router siempre asume: deny any, o en ACL extendidas deny ip any any. Esto se conoce como denegación implícita.
Ejemplo. Supongamos la ACL:
access-list 10 permit 192.168.10.0 0.0.0.255
Podría creerse que esta ACL simplemente permite esa red. Pero, en realidad significa:
access-list 10 permit 192.168.10.0 0.0.0.255
access-list 10 deny any
Porque el router agrega automáticamente la segunda línea.
Dando como resultado que la red 192.168.10.0/24 es permitida y todo lo demás es bloqueado.
Consecuencia práctica.
Un error frecuente consiste en olvidar agregar permisos adicionales necesarios.Por ejemplo:
access-list 101 permit tcp any any eq 80
El resto del tráfico, tal como HTTPS, DNS, ICMP, SSH, entre otros, será bloqueado automáticamente debido al deny implícito. Por esta razón es fundamental planificar y documentar cuidadosamente cada ACL antes de implementarla.
Conclusión.
Las ACL constituyen uno de los mecanismos fundamentales de control de tráfico en routers y dispositivos de capa 3. Su función principal es permitir o denegar comunicaciones según reglas definidas por el administrador de red, contribuyendo tanto a la seguridad como a la segmentación lógica de la infraestructura.
Las ACL estándar ofrecen un control básico basado exclusivamente en direcciones IP de origen y suelen colocarse cerca del destino, mientras que las ACL extendidas permiten filtrar por origen, destino, protocolo y puertos, proporcionando un control mucho más preciso y siendo normalmente ubicadas cerca de la fuente del tráfico.
Finalmente, cualquier implementación de ACL debe considerar siempre la existencia de la regla de denegación implícita, ya que todo tráfico que no coincida con una instrucción explícita será descartado automáticamente. Comprender este comportamiento es esencial para diseñar políticas de acceso seguras, eficientes y alineadas con las necesidades operativas de una organización.