Clase 9 - ACL extendidas
Una ACL extendida es una lista de reglas que permite al router controlar el tráfico utilizando criterios más específicos que una ACL estándar.
Mientras que una ACL estándar solamente analiza la dirección IP de origen, una ACL extendida puede analizar diferentes características del paquete.
| ACL estándar | ACL extendida |
|---|---|
| IP de origen | IP de origen |
| IP de destino | |
| Protocolo | |
| Puerto o servicio |
Esto permite crear reglas mucho más específicas.
Una ACL extendida puede utilizar diferentes características del paquete para decidir si debe ser permitido o bloqueado.
TCP, UDP o ICMP.Esto permite expresar políticas como:
Permitir que una PC acceda al servidor web.
Bloquear que una red acceda al servidor mediante SSH.
Permitir solamente tráfico ICMP entre determinadas redes.
En la clase anterior utilizamos una ACL estándar como:
access-list 10 deny host 192.168.10.25
La regla solamente pregunta:
¿El origen es 192.168.10.25?
Con una ACL extendida podemos agregar más condiciones:
¿El origen es 192.168.10.25?
¿El destino es 192.168.30.10?
¿El protocolo es TCP?
¿El puerto es 80?
De esta manera podemos controlar no solamente quién origina el tráfico, sino también hacia dónde se dirige y qué servicio está utilizando.
Las ACL extendidas numeradas utilizan tradicionalmente los números 100 a 199.
Una estructura simplificada es:
access-list <NÚMERO> permit|deny <PROTOCOLO>
<ORIGEN> <WILDCARD>
<DESTINO> <WILDCARD>
Cuando se trabaja con TCP o UDP pueden agregarse condiciones relacionadas con los puertos.
access-list <NÚMERO> permit|deny tcp
<ORIGEN> <WILDCARD>
<DESTINO> <WILDCARD>
eq <PUERTO>
| Elemento | Función |
|---|---|
access-list |
Indica que se está creando o modificando una ACL. |
100 |
Número que identifica la ACL extendida. |
permit / deny |
Acción que se ejecuta cuando el paquete coincide con la regla. |
tcp |
Indica que la regla se aplica al protocolo TCP. |
udp |
Indica que la regla se aplica al protocolo UDP. |
icmp |
Indica que la regla se aplica al protocolo ICMP. |
| Origen | Dirección IP o red desde donde proviene el tráfico. |
| Destino | Dirección IP o red hacia donde se dirige el tráfico. |
eq |
Indica que el puerto debe ser exactamente el especificado. |
Supongamos que queremos bloquear el tráfico desde:
192.168.10.25
hacia:
192.168.30.10
Podemos utilizar:
access-list 100 deny ip host 192.168.10.25 host 192.168.30.10
access-list 100 permit ip any any
La primera regla indica:
Origen: 192.168.10.25
Destino: 192.168.30.10
Protocolo: IP
Acción: DENY
La segunda regla permite el resto del tráfico IP.
access-list 100 permit ip any any
Ahora podemos controlar simultáneamente origen y destino, algo que no era posible con una ACL estándar.
Una de las principales ventajas de las ACL extendidas es poder controlar servicios específicos.
Supongamos que queremos impedir que la Red A acceda al servidor web de la Red D.
El servidor utiliza HTTP mediante TCP puerto 80.
access-list 110 deny tcp 192.168.10.0 0.0.0.255
host 192.168.50.10 eq 80
access-list 110 permit ip any any
La regla puede interpretarse como:
Origen:
192.168.10.0/24
Destino:
192.168.50.10
Protocolo:
TCP
Puerto:
80
Acción:
DENY
Por lo tanto, los equipos de la Red A no podrán acceder al servicio HTTP del servidor, pero podrán continuar utilizando otros servicios permitidos.
Por ejemplo, una comunicación hacia otro servicio del mismo servidor podría no coincidir con esta regla.
Cuando utilizamos TCP o UDP podemos utilizar los números de puerto para identificar servicios específicos.
| Servicio | Protocolo | Puerto |
|---|---|---|
| HTTP | TCP | 80 |
| HTTPS | TCP | 443 |
| FTP | TCP | 21 |
| SSH | TCP | 22 |
| DNS | UDP/TCP | 53 |
Por ejemplo, para bloquear HTTP hacia un servidor:
access-list 110 deny tcp any host 192.168.50.10 eq 80
La palabra any indica que puede tratarse de cualquier dirección
de origen.
Las ACL extendidas también pueden utilizarse para controlar tráfico ICMP.
Por ejemplo, para impedir que una red realice ping a un servidor:
access-list 120 deny icmp 192.168.10.0 0.0.0.255
host 192.168.50.10
access-list 120 permit ip any any
En este caso no se utiliza un puerto porque ICMP no utiliza puertos TCP o UDP.
Al igual que en las ACL estándar, las ACL extendidas se procesan de arriba hacia abajo.
El router utiliza la primera coincidencia.
Una vez que encuentra una regla que coincide con el paquete,
aplica permit o deny y deja de evaluar
las reglas siguientes.
Por ejemplo:
access-list 100 deny tcp any host 192.168.50.10 eq 80
access-list 100 permit ip any any
Un paquete TCP destinado al puerto 80 del servidor coincide con la primera regla y es bloqueado.
En cambio, un paquete que no coincida con esa regla continúa evaluándose y puede coincidir con:
permit ip any any
Por este motivo, el orden de las reglas es fundamental.
Al igual que las ACL estándar, una ACL extendida posee una denegación implícita al final.
Por ejemplo:
access-list 100 deny tcp any host 192.168.50.10 eq 80
Conceptualmente termina con:
deny ip any any
Por lo tanto, si queremos bloquear solamente un determinado tráfico y permitir el resto, debemos agregar explícitamente:
access-list 100 permit ip any any
Una ACL extendida permite identificar con precisión el tráfico que queremos controlar. Por eso, normalmente se recomienda colocarla cerca del origen del tráfico.
De esta manera podemos detener el tráfico no deseado antes de que atraviese innecesariamente el resto de la red.
ORIGEN
│
▼
ROUTER
│
│ ACL extendida
▼
RED INTERMEDIA
│
▼
DESTINO
Sin embargo, la ubicación concreta depende de la política que queremos implementar y del recorrido del tráfico.
La ACL puede aplicarse cuando el paquete entra por una interfaz:
interface FastEthernet0/0
ip access-group 100 in
O cuando sale:
interface FastEthernet0/1
ip access-group 100 out
La elección debe realizarse analizando previamente el camino que seguirá el paquete.
Una ACL extendida tampoco reemplaza el proceso de ruteo.
El router continúa utilizando su tabla de ruteo para determinar por dónde debe enviar el paquete.
PAQUETE
│
▼
ACL ¿PERMITIDO?
│ │
NO SÍ
│ │
▼ ▼
DESCARTA TABLA DE RUTEO
│
▼
INTERFAZ DE SALIDA
│
▼
DESTINO
En nuestra topología, OSPF continúa siendo responsable de aprender las rutas. La ACL simplemente agrega una condición de filtrado sobre el tráfico.
Para verificar las ACL podemos utilizar:
show access-lists
Muestra las ACL configuradas y los contadores de coincidencias de cada regla.
show ip interface
Permite comprobar qué ACL se encuentra aplicada a cada interfaz y en qué dirección.
show running-config
Permite revisar la configuración completa del router.
Durante las pruebas es importante generar tráfico y volver a consultar
show access-lists para observar si los contadores aumentan.
| Característica | ACL estándar | ACL extendida |
|---|---|---|
| Origen | ✔ | ✔ |
| Destino | ✘ | ✔ |
| Protocolo | ✘ | ✔ |
| Puerto | ✘ | ✔ |
| Ejemplo de rango numerado | 1–99 | 100–199 |
Las ACL extendidas permiten realizar un control de tráfico mucho más preciso que las ACL estándar, ya que pueden evaluar origen, destino, protocolo y puerto.
Su funcionamiento continúa basándose en los mismos principios estudiados en la clase anterior: orden secuencial, primera coincidencia y denegación implícita. La principal diferencia es la cantidad de información que podemos utilizar para tomar la decisión.
Las ACL extendidas permiten pasar de una política general como "bloquear a este equipo" a una política mucho más específica como "bloquear que esta red acceda a este servidor mediante este servicio".
← Volver al inicio