0% del curso completado
ACLs IPv4 II: extendidas y casos reales (4.6)
📋 En esta lección
La ACL estándar era un martillo; la extendida es un bisturí: origen, destino, protocolo y puertos en cada línea. Aquí dominas su sintaxis (la más larga de IOS — por piezas es fácil), la regla de colocación cerca del origen, los operadores de puerto, y construyes las políticas reales que llevas medio curso esperando: aislar invitados, proteger la VLAN de servidores y las trampas de ICMP.
La ACL extendida: todos los campos
Numeradas 100-199 (y 2000-2699) o, mejor, con nombre. Cada línea define:
permit|deny protocolo origen [puertos] destino [puertos] [opciones]
! La anatomía, pieza a pieza:
SW-DIST(config)# ip access-list extended EJEMPLO
SW-DIST(config-ext-nacl)# permit tcp 10.9.10.0 0.0.0.255 host 10.9.30.10 eq 443
└─┬──┘ └┬┘ └────── origen ────┘ └── destino ──┘ └─ puerto destino
acción protocolo
- Protocolo:
ip(cualquiera),tcp,udp,icmp— el nivel de detalle que necesites.ipcuando los puertos no importan;tcp/udpcuando sí (los puertos solo existen en TCP/UDP — lección 1.6). - Origen y destino: con wildcards,
hostyany— como en la lección anterior, ahora por partida doble. - Puertos (tras origen o destino):
eq 443(igual),range 20 21,gt 1023(mayor),lt,neq. El puerto va casi siempre en el destino — el cliente usa un puerto efímero de origen; el servicio escucha en el conocido de destino.
! El catálogo de líneas que escribirás mil veces:
permit tcp any host 10.9.30.10 eq 443 ← HTTPS al servidor web
permit udp 10.9.10.0 0.0.0.255 host 10.9.30.5 eq 53 ← DNS de usuarios al resolver
permit tcp 10.9.250.0 0.0.0.255 any eq 22 ← SSH solo desde gestión
permit icmp 10.9.10.0 0.0.0.255 any echo ← ping de salida
deny ip any any log ← el deny final explícito, contado y logueado
El último merece nota: reescribir el deny implícito explícitamente con log te da contadores y mensajes de syslog de lo que se descarta — visibilidad de intentos que el implícito silencia. (Con moderación: log procesa en CPU.)
📝 📝 Por qué aquí el equipo es un switch y no un router
Los gateways de estas tres VLANs son SVIs de un switch de distribución (
interface vlan 50), no subinterfaces de un router. Es la arquitectura que la lección 5.3 señalaba como estándar actual: el inter-VLAN routing de un campus vive en el switch de distribución, que enruta en hardware. Las ACLs se aplican igual en los dos sitios —la sintaxis es idéntica—, pero conviene tener claro de qué equipo hablas:interface vlan Xsolo existe en un switch, y un router usaríainterface Gi0/0.50. En la lección 10.4 filtramos sobre la interfaz física de un router; aquí, sobre la SVI de un switch. Las dos son situaciones reales.
Colocación: extendida cerca del ORIGEN
La inversa exacta de la estándar (lección 10.4): la extendida sabe origen y destino, así que puede matar el tráfico indeseado en su primera interfaz — sin riesgo de daño colateral y sin pasear paquetes condenados por toda la red.
Invitados (VLAN 50) ──[SVI Vlan50: ACL in]── core ── servidores
└ aquí, a la entrada: el tráfico prohibido muere en la puerta
La pareja de reglas, completa: estándar cerca del destino (su ceguera exige precisión de ubicación) / extendida cerca del origen (su precisión permite eficiencia de ubicación).
Caso real 1: aislar a los invitados
La política prometida desde el Módulo 5: los invitados (10.9.50.0/24) salen a Internet, y nada más — ni servidores, ni usuarios, ni gestión.
SW-DIST(config)# ip access-list extended INVITADOS-IN
SW-DIST(config-ext-nacl)# remark == Invitados: solo Internet ==
SW-DIST(config-ext-nacl)# permit udp any host 10.9.50.1 eq 53 ← su DNS (el resolver local)
SW-DIST(config-ext-nacl)# deny ip any 10.0.0.0 0.255.255.255 ← nada hacia lo privado
SW-DIST(config-ext-nacl)# deny ip any 172.16.0.0 0.15.255.255
SW-DIST(config-ext-nacl)# deny ip any 192.168.0.0 0.0.255.255
SW-DIST(config-ext-nacl)# permit ip any any ← el resto: Internet
SW-DIST(config)# interface vlan 50
SW-DIST(config-if)# ip access-group INVITADOS-IN in
Las lecturas finas: el patrón "deny lo interno + permit any" implementa "solo Internet" sin enumerar Internet (imposible) — se veta lo privado (RFC 1918 completo, con sus wildcards de la lección 4.2) y se abre el resto. El permit del DNS va antes de los denies (regla del orden: la excepción específica primero). Y la ACL entra in en la SVI de invitados — el origen.
Caso real 2: la VLAN de servidores
Protegida en su puerta (aquí sí, entrada a la subred destino — cuando la política se define "qué puede llegar aquí", la interfaz del destino con la ACL out, o la entrada de cada origen, son las opciones; elegimos la puerta del recurso):
SW-DIST(config)# ip access-list extended HACIA-SERVIDORES
SW-DIST(config-ext-nacl)# permit tcp 10.9.10.0 0.0.0.255 host 10.9.30.10 eq 443 ← usuarios → web
SW-DIST(config-ext-nacl)# permit tcp 10.9.10.0 0.0.0.255 host 10.9.30.5 eq 445 ← usuarios → archivos
SW-DIST(config-ext-nacl)# permit udp 10.9.10.0 0.0.0.255 host 10.9.30.5 eq 53 ← DNS
SW-DIST(config-ext-nacl)# permit tcp 10.9.250.0 0.0.0.255 10.9.30.0 0.0.0.255 eq 22 ← gestión → SSH
SW-DIST(config-ext-nacl)# permit icmp 10.9.250.0 0.0.0.255 10.9.30.0 0.0.0.255 ← gestión → ping
SW-DIST(config-ext-nacl)# deny ip any any log
SW-DIST(config)# interface vlan 30
SW-DIST(config-if)# ip access-group HACIA-SERVIDORES out
Es el mínimo privilegio (10.1) escrito en líneas: cada flujo legítimo, enumerado; todo lo demás, negado y logueado. Las impresoras no llegan a los servidores, los invitados tampoco, y el intento queda registrado.
Las trampas que separan juniors de profesionales
1. El tráfico de vuelta. Las ACLs de IOS son stateless (la distinción firewall de la lección 1.2): si filtras ambas direcciones, la respuesta del servidor también necesita su permit — el clásico "permit hacia el servidor, deny de vuelta, y nada funciona". El paliativo histórico para TCP: established (permit tcp any 10.9.10.0 0.0.0.255 established) — deja pasar solo segmentos con ACK/RST, es decir, respuestas de conexiones ya iniciadas, no aperturas nuevas. Es heurístico y solo-TCP: el trabajo fino y con estado real pertenece a los firewalls.
2. No te cortes la rama. Una ACL aplicada a la interfaz por la que tú gestionas puede cortarte el SSH a mitad de edición (con las consecuencias de la lección 10.4 sobre reescrituras). Rutina profesional: permit explícito de la red de gestión al principio, y ante cambios arriesgados en remoto, reload in 10 como red de seguridad (si te cortas, el equipo vuelve solo).
3. ICMP con bisturí, no con hacha. deny icmp any any "por seguridad" mata ping y traceroute (tus herramientas — Módulos 4-7) y el PMTUD (los "packet too big" — el mismo desastre que en IPv6, lección 6.5: conexiones que se cuelgan con paquetes grandes). Lo profesional: permitir echo/echo-reply donde se diagnostica y unreachable/time-exceeded en general.
4. El orden de aplicación: ACL in se evalúa antes de enrutar; out, después. Y un detalle de examen: el tráfico generado por el propio equipo no pasa por sus ACLs out.
Verificación (la de 10.4, más el matiz)
show access-lists con matches, show ip interface para ver dónde y en qué dirección — y en las extendidas, los contadores por línea te dicen qué flujos reales están ocurriendo: una auditoría de tráfico gratis. Línea permit con millones de matches que "no debería usarse tanto" = conversación que investigar.
Relación con otros conceptos
- Los puertos (1.6), las wildcards (4.1), RFC 1918 (4.2) y el vocabulario stateless/stateful (1.2) convergen aquí.
- La política de invitados cierra lo prometido en 5.1/9.5; la de servidores ejecuta el mínimo privilegio de 10.1.
- El cuidado con ICMP replica la lección de ICMPv6 (6.5) — misma física, distinta versión; las ACLs IPv6 (
ipv6 access-list) siguen esta misma lógica con el matiz de ND visto allí. establishedes el puente conceptual hacia los firewalls stateful y las VPNs del perímetro (10.7).
Resumen
La extendida filtra por protocolo + origen + destino + puertos (permit tcp <origen> <destino> eq 443; puerto casi siempre en destino; operadores eq/range/gt) y se coloca cerca del origen — mata en la puerta lo que la estándar solo podía matar en el destino. Patrones canónicos: invitados = permit-excepciones + deny RFC1918 + permit any ("solo Internet"); servidores = enumerar flujos legítimos + deny ip any any log (mínimo privilegio con visibilidad). Trampas: las ACLs son stateless — el retorno necesita su permit (established como paliativo TCP); no te cortes tu propio acceso (permit de gestión primero, reload in de seguridad); ICMP se filtra con bisturí (PMTUD y diagnóstico); in antes del routing, out después — y el tráfico del propio router no pasa por sus out.