Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tabla de contenido
1 Introducción....................................................................................................................................... 1
1.1 ¿Qué es una ACL?.......................................................................................................................................1
1.2 Filtrado de paquetes..................................................................................................................................2
1.3 Funcionamiento de una ACL....................................................................................................................3
1.4 Máscara wildcard en ACL..........................................................................................................................4
1.4.1 Cálculo de la máscara wildcard............................................................................................................. 6
1.4.2 Palabras clave de la máscara wildcard................................................................................................ 6
1.5 Pautas generales para la creación de ACLs.........................................................................................6
1.6 Dónde ubicar las ACLs...............................................................................................................................7
2 ACLs estándar.................................................................................................................................... 8
2.1 ACL estándar numerada...........................................................................................................................9
2.1.1 Crear una ACL estándar numerada...................................................................................................... 9
2.1.2 Aplicar ACLs a las interfaces................................................................................................................. 10
2.2 ACL estándar con nombre.....................................................................................................................11
2.3 Orden de las instrucciones....................................................................................................................12
2.4 Modificar ACLs estándar........................................................................................................................14
2.4.1 Con editor de texto................................................................................................................................ 14
2.4.2 Usar números de secuencia................................................................................................................ 15
2.4.3 Editar ACL estándar con nombre....................................................................................................... 16
3 ACLs extendidas..............................................................................................................................17
3.1 Crear una ACL extendida y las ACEs...................................................................................................19
3.2 Asignar la ACL a la interfaz.....................................................................................................................22
4 Verificar las ACLs............................................................................................................................. 23
4.1 Estadística de las ACLs............................................................................................................................24
5 Protección de puertos VTY con ACL...........................................................................................25
6 Procesamiento de paquetes con ACL........................................................................................27
6.1 Deny any implícita....................................................................................................................................27
6.2 Orden de las ACEs en una ACL.............................................................................................................27
6.3 Reordenamiento de ACLs......................................................................................................................27
7 Bibliografía........................................................................................................................................ 31
Índice I
Rafael Lozano ACLs
ACLs
1 Introducción
Una de las habilidades más importantes que necesita un administrador de redes es el
dominio de las listas de control de acceso (ACL Access Control List) las cuales proporcionan
seguridad a una red. En un router Cisco, puede configurar un firewall simple que
proporcione capacidades básicas de filtrado de tráfico a nivel de red mediante ACLs. Los
administradores utilizan las ACLs para impedir o permitir tráfico en sus redes que cumple
determinadas condiciones.
En este capítulo, se explica cómo configurar y solucionar problemas en las ACL
estándar IPv4 en un router Cisco como parte de una solución de seguridad.
Página 1
Rafael Lozano ACLs
Página 2
Rafael Lozano ACLs
Página 3
Rafael Lozano ACLs
conectada a una interfaz de entrada es el único origen de los paquetes que se deben
examinar.
✔ ACL de salida → Los paquetes entrantes se enrutan a la interfaz de salida y después
se procesan mediante la ACL de salida. Las ACL de salida son ideales cuando se
aplica el mismo filtro a los paquetes que provienen de varias interfaces de entrada
antes de salir por la misma interfaz de salida.
Página 4
Rafael Lozano ACLs
A diferencia de las ACLs de IPv4, las ACLs de IPv6 no utilizan máscaras wildcard. En
cambio, se utiliza la longitud de prefijo para indicar cuánto de una dirección IPv6 de origen o
destino debe coincidir.
Página 5
Rafael Lozano ACLs
Página 6
Rafael Lozano ACLs
Página 7
Rafael Lozano ACLs
destino o no.
✔ Ancho de banda de las redes involucradas.- El filtrado del tráfico no deseado en el
origen impide la transmisión de ese tráfico antes de que consuma ancho de banda en
la ruta hacia un destino. Esto es de especial importancia en redes con un ancho de
banda bajo.
✔ Facilidad de configuración.- Si un administrador de red desea denegar el tráfico
proveniente de varias redes, una opción es utilizar una única ACL estándar en el
router más cercano al destino. La desventaja es que el tráfico de dichas redes
utilizará ancho de banda de manera innecesaria. Se puede utilizar una ACL extendida
en cada router donde se origina tráfico. Esto ahorra ancho de banda, ya que el tráfico
se filtra en el origen, pero requiere la creación de ACL extendidas en varios routers.
2 ACLs estándar
En los siguientes apartados vamos a ver los comandos necesarios para gestionar las
ACLs estándar. Para los siguientes ejemplos vamos a utilizar la siguiente topología de red.
Suponemos que todos los dispositivos tienen configuradas sus direcciones IP y los
routers tienen rutas estáticas configuradas para alcanzar cualquier red. Debemos entonces
configurar ACLs para satisfacer los siguientes supuestos:
2. Acceso al servidor Web:
2.1.- El PC1 puede acceder al servidor Web.
2.2.-Todos los PCs de la red 192.168.1.0/24 pueden acceder al servidor Web.
2.3.- El resto de los PCs de la red no pueden acceder al servidor Web.
Página 8
Rafael Lozano ACLs
…
!
access-list 1 permit host 192.168.0.20
access-list 1 permit 192.168.1.0 0.0.0.255
Página 9
Rafael Lozano ACLs
!
…
En esta situación, y una vez se asigne la ACL a una interfaz de router, solamente se
permite tráfico que se ajuste a las dos entradas anteriores. Recuerde que existe una
denegación implícita de todas las instrucciones que equivalen a agregar la línea access-
list 1 deny 0.0.0.0 255.255.255.255 o access-list deny any al final
de la ACL.
Para eliminar una ACL, se utiliza el comando de configuración global no access-
list. La ejecución del comando show access-list permite listar las ACL
configuradas.
Por lo general, cuando un administrador crea una ACL, conoce y entiende el objetivo
de cada instrucción. Sin embargo, para asegurar que el administrador y otras personas
recuerden el propósito de las instrucciones, se deben incluir comentarios (remarks). La
palabra clave remark se utiliza en los documentos y hace que sea mucho más fácil
comprender las listas de acceso. El texto de cada comentario tiene un límite de 100
caracteres. Cuando se revisa la ACL en la configuración mediante el comando show
running-config, también se muestra el comentario.
A continuación vamos a crear la ACL para el acceso al servidor DNS. En este caso
debemos hacerlo en R1 que es router más cercano al destino. Tendríamos la siguiente ACL
para el supuesto 3.1
Página 10
Rafael Lozano ACLs
R3(config)#interface g0/0
R3(config-if)#ip access-group 1 out
R3(config-if)#
En esta situación solamente podemos hacer ping desde el PC1 y la red 192.168.1.0/24 al
servidor web. Si ejecutamos un show running-config veremos la siguiente
configuración de la interfaz.
!
interface GigabitEthernet0/0
ip address 192.168.4.1 255.255.255.0
ip access-group 1 out
En el router 1 deberemos asignar la ACL que regula el acceso al servidor DNS.
R1(config)#interface g0/0
R1(config-if)#ip access-group 1 out
R1(config-if)#
Página 11
Rafael Lozano ACLs
Por ejemplo, vamos a repetir la configuración de las ACLs estándar numeradas del
epígrafe anterior, pero en este caso para crear una ACL estándar con nombre. En principio
para regular el acceso al servidor web (supuestos 1.1, 1.2 y 1.3) tendríamos que ejecutar los
siguientes comandos en el router R3, que es el más cercano al destino.
R3(config-std-nacl)#interface g0/0
R3(config-if)#ip access-group ACC-WEB out
R3(config-if)#
Ahora vamos a crear una ACL estándar con nombre para los supuestos 2.1, 2.2 y 2.3 de
nuestra red de ejemplo. En este caso configuramos el router R1, ya que es el que se
encuentra más cerca del destino.
R1(config-std-nacl)#interface g0/0
R1(config-if)#ip access-group NO-DNS out
R1(config-if)#
No es necesario que los nombres de las ACL comiencen con mayúscula, pero esto
hace que destaquen cuando se observa el resultado de show running-config.
También hace que sea menos probable que cree accidentalmente dos ACLs diferentes con
el mismo nombre pero con distinto uso de mayúsculas.
Página 12
Rafael Lozano ACLs
a un host o grupo de hosts. Por ejemplo, vamos a modificar los supuestos de nuestra red de
ejemplo de la siguiente forma.
2. Acceso al servidor DNS:
2.1.- El PC4 puede acceder al servidor DNS, pero el resto de hosts de la red
192.168.2.0/24 no puede.
2.2.-Los PCs de la red 192.168.0.0/24 no pueden acceder al servidor DNS excepto el
PC1 que si puede.
2.3.- Los PCs de la red 192.168.1.0/24 no pueden acceder al servidor DNS excepto el
PC3 que si puede.
2.4.- El resto de PCs de las otras redes pueden acceder al servidor DNS.
Aquí se permite el acceso a todos los PCs de las redes 192.168.0.0, 192.168.1.0 y
192.168.2.0/24 excepto un PC de cada red.
Vemos que en cada red puede haber hasta 254 hosts. Si tenemos que escribir 254-1
instrucciones permit para que todos puedan acceder al servidor DNS menos los PCs
excluidos sería largo. Mucho mejor es permitir el acceso a todos los hosts de la red y
denegar las excepciones. Para mostrar como sería reescribiremos la ACL estándar con
nombre que vimos en el epígrafe anterior.
En este caso la configuración sería así
…
!
ip access-list standard NO-DNS
permit host 192.168.2.20
deny 192.168.2.0 0.0.0.255
permit host 192.168.0.20
deny 192.168.0.0 0.0.0.255
permit host 192.168.1.10
deny 192.168.1.0 0.0.0.255
permit any
!
Página 13
Rafael Lozano ACLs
…
Vemos que la ACL tiene siete entradas. Si recordamos al principio del capítulo cuando
el router filtra tráfico con la ACL examina la dirección de origen del paquete con cada una de
las entradas de la ACL. Si hay coincidencia se aplica la acción, permitir o denegar, y no se
evalúan más entradas. Por tanto, cuando queramos excepciones a una regla general,
debemos ponerlas antes para que al evaluarse se apliquen primero.
Si observamos las líneas remarcadas en rojo, primero se permite al PC de cada red que
puede acceder al servidor DNS y luego se deniega al resto de la red. Supongamos que
hubiéramos puesto el siguiente orden para el PC1 y la red 192.168.0.0/24
…
R1(config-std-nacl)#deny 192.168.0.0 0.0.0.255
R1(config-std-nacl)#permit host 192.168.0.20
…
R1(config-std-nacl)#permit any
R1(config-std-nacl)#interface g0/0
R1(config-if)#ip access-group NO-DNS out
R1(config-if)#
En este caso cuando un paquete procedente de PC1 se evaluará con deny
192.168.0.0 0.0.0.255 habría coincidencia y se descartaría, no llegando a evaluar la
instrucción permit que hay debajo para autorizar su acceso. Por tanto, las excepciones a
la regla general tienen que ir antes que ésta para que se apliquen.
Página 14
Rafael Lozano ACLs
R3#show access-lists 1
Standard IP access list 1
10 permit host 192.168.0.29
Página 15
Rafael Lozano ACLs
R3#
Vemos que tenemos que cambiar la regla número 10. Ejecutamos lo siguiente
R3#configure terminal
Enter configuration commands, one per line. End with CNTL/
Z.
R3(config)#ip access-list standard 1
R3(config-std-nacl)#no 10
R3(config-std-nacl)#10 deny host 192.168.0.20
R3(config-std-nacl)#end
R3#
Si volvemos a listar las entradas de la ACL veremos que el error se ha corregido.
R3#show access-lists 1
Standard IP access list 1
10 deny host 192.168.0.20
20 permit 192.168.1.0 0.0.0.255
R3#
R1#
Si queremos insertar una nueva entrada para permitir al PC con dirección IP
192.168.0.25 tendríamos que hacer lo siguiente
Página 16
Rafael Lozano ACLs
3 ACLs extendidas
Hemos visto en epígrafes anteriores las ACLs estándar, las cuales solamente permiten
establecer como criterio de una regla la dirección IP origen del paquete. Entre las
limitaciones que impone este enfoque están:
✔ La ACL hay que configurarla lo más cerca posible del destino, con lo que tráfico no
deseado recorre la infraestructura de red antes de desecharse.
✔ Solamente se puede realizar filtrado a nivel de red, impidiendo acceso a los hosts de
forma completa en lugar de a determinados servicios.
✔ Se impide tráfico destinado a una subred completa, en lugar de a un host
determinado.
✔ No permite diferenciar tráfico por servicios de red, al no poder utilizar campos del
encabezado de las PDU a nivel de transporte.
Es evidente que este enfoque no es adecuado para implementar una política de
seguridad con un grado de granularidad que permita afinar el tipo de tráfico que se desea
impedir y los hosts que debemos proteger. Debido a ello las ACLs extendidas son
adecuadas en la mayoría de los escenarios ya que disponen de las siguientes
características:
✔ En el criterio de las reglas permiten indicar tanto la dirección IP de origen y destino.
✔ Se puede diferenciar tráfico por servicio de red mediante el empleo de los puertos de
origen y, sobre todo, de destino.
✔ Por lo expuesto anteriormente, filtra tráfico a nivel de red y de transporte en
diferentes protocolos (IPv4, IPv6, TCP, UDP, ICMP)
Página 17
Rafael Lozano ACLs
Las ACLs extendidas pueden ser numeradas o con nombre, tal y como vimos con las
ACLs estándar. La sintaxis de los comandos es similar, salvo que el identificador de la ACL
será un número en el caso de las numeradas o un nombre en el caso de las ACLs con
nombre.
Para ilustrar el uso de las ACLs extendidas vamos a emplear la siguiente topología:
Página 18
Rafael Lozano ACLs
Página 19
Rafael Lozano ACLs
tendremos que crear una ACL en cada router (lo más cerca posible del origen). Para la
subred LAN2 se puede acceder al servicio DNS, WWW y FTP, aunque el PC1 no puede
acceder a WWW. Sería así en R1.
Página 20
Rafael Lozano ACLs
ping. En este caso el protocolo es ICMP y este protocolo no emplea números de puerto. En
su lugar hay que indicar el tipo de mensaje de control que para nuestro caso es petición de
eco. Sería así
Página 21
Rafael Lozano ACLs
Página 22
Rafael Lozano ACLs
R1#show access-lists
Standard IP access list NO-DNS
10 deny host 192.168.2.20
20 permit host 192.168.0.20
30 permit host 192.168.0.25
Página 23
Rafael Lozano ACLs
R1#show access-lists
Standard IP access list NO-DNS
10 deny host 192.168.2.20 (4 match(es))
20 permit host 192.168.0.20
30 permit host 192.168.0.25
40 deny 192.168.0.0 0.0.0.255
50 permit any
Cuando se genera tráfico que debe coincidir con una instrucción de ACL, las
coincidencias que se muestran en el resultado del comando show access-lists
deberían aumentar. Por ejemplo, en este caso, si se hace ping del PC0 al servidor DNS, en el
resultado se mostrará un aumento en las coincidencias para la instrucción con número de
secuencia 40.
R1#show access-lists
Standard IP access list NO-DNS
10 deny host 192.168.2.20 (4 match(es))
20 permit host 192.168.0.20 (4 match(es))
30 permit host 192.168.0.25
40 deny 192.168.0.0 0.0.0.255 (4 match(es))
50 permit any
Tanto las instrucciones permit como las deny realizan un seguimiento de las
estadísticas de coincidencias; sin embargo, recuerde que cada ACL tiene una instrucción
deny any implícita como última instrucción. Esta instrucción no aparece en el comando
show access-lists, por lo que no se muestran estadísticas para esa instrucción. Para
ver las estadísticas de la instrucción deny any implícita, la instrucción se puede hacer
explícita configurándola manualmente y aparecerá en el resultado.
Durante la prueba de una ACL, se pueden borrar los contadores mediante el comando
clear access-list counters. Este comando se puede utilizar solo o con el
número o el nombre de una ACL específica. Como se muestra en el siguiente código, este
comando borra los contadores de estadísticas para una ACL.
Página 24
Rafael Lozano ACLs
R3>enable
R3#configure terminal
Enter configuration commands, one per line. End with CNTL/
Z.
R3(config)#ip domain-name cisco.com
R3(config)#crypto key generate rsa
The name for the keys will be: R3.cisco.com
Choose the size of the key modulus in the range of 360 to
2048 for your
General Purpose Keys. Choosing a key modulus greater than
512 may take
a few minutes.
Página 25
Rafael Lozano ACLs
R3(config-line)#access-class 99 in
R3(config-line)#exit
R3(config)#access-list 99 permit host 192.168.2.20
Por último activamos la versión 2 de SSH.
R3#show access-lists 99
Standard IP access list 99
permit host 192.168.2.20 (3 match(es))
deny any (16 match(es))
R3#
Si desde el PC4 abrimos sesión por SSH con el router veremos lo siguiente
Sin embargo, si intentamos acceder a R3 desde cualquier otro dispositivo con una
dirección IP diferente a la configurada en la ACL veremos lo siguiente.
Página 26
Rafael Lozano ACLs
R1(config)#
Página 27
Rafael Lozano ACLs
Página 28
Rafael Lozano ACLs
Página 29
Rafael Lozano ACLs
Página 30
Rafael Lozano ACLs
7 Bibliografía
CISCO, CCNA1 Introducción a las Redes – Versión 6 – NetAcad 2017.
CISCO, CCNA2 Principios básicos de Routing y Switching – Versión 6 – NetAcad 2017.
Página 31