Configuración ACL
-
Comandos para configurar ACL - 10/10
10/10
-
Modificar ACL de Ipv4 - 10/10
10/10
-
Protección de Puerto VTY - 10/10
10/10
Resumen
Se detalla los comandos para configurar ACL. Además, cómo modificar las ACL de IPv4 con diferentes métodos. Y por último como proteger el puerto VTY con ACL de IPv4 estándar.
Se explica cómo configurar las ACL estándar IPv4 en un router Cisco. Se incluyen recomendaciones y pautas generales sobre cómo utilizar las ACL.
Para utilizar ACL estándar numeradas en un router Cisco, primero debe crear la ACL estándar y, a continuación, activarla en una interfaz.
El comando de configuración global access-list define una ACL estándar con un número entre 1 y 99. La versión 12.0.1 del software IOS de Cisco amplió ese intervalo y permite que se utilicen los números que van de 1300 a 1999 para las ACL estándar. Esto permite que se genere un máximo de 798 ACL estándar posibles. A estos números adicionales se los denomina ACL de IPv4 extendidas.
Tabla de Contenido
1. Comandos para configurar ACL
La sintaxis completa del comando de ACL estándar es la siguiente:
Router(config)# access-list access-list-number { deny | permit | remark } source [ source-wildcard ][ log ]
En la siguiente tabla, se explica detalladamente la sintaxis para una ACL estándar.
Parámetro | Descripción |
---|---|
número de lista de acceso | Número de una ACL. Es un número decimal del 1 al 99 o del 1300 al 1999 (para las ACL estándar). |
deny | Deniega el acceso si las condiciones concuerdan. |
permit | Permite el acceso si las condiciones concuerdan. |
remark | Agregue un comentario sobre las entradas en la lista de acceso IP para facilitar la comprensión y el análisis de la lista. |
origen | Número de la red o del host desde el que se envía el paquete. Existen dos formas de especificar el origen. Utilice una cantidad de 32 bits en formato decimal punteado de cuatro partes. Utilice la palabra clave any como abreviatura de origen y comodín de fuente de 0.0.0.0 255.255.255.255. |
comodín de fuente | (Optativo) Máscara wildcard de 32 bits para aplicar al origen. Coloca unos en las posiciones de bits que desea omitir. |
Las ACE pueden permitir o denegar un solo host o un rango de direcciones host. Para crear una instrucción de host en la ACL numerada 10 que permita un host específico con la dirección IPv4 192.168.10.10, debe introducir lo siguiente:
R1(config)# access-list 10 permit host 192.168.10.10
1.1. Eliminación de una ACL
Para crear una instrucción que permita un rango de direcciones IPv4 en una ACL numerada 10 que permite todas las direcciones IPv4 en la red 192.168.10.0/24, debe introducir lo siguiente:
R1(config)# access-list 10 permit 192.168.10.0 0.0.0.255
Para eliminar la ACL, se utiliza el comando de configuración global no access-list. La ejecución del comando show access-list confirma que se eliminó la lista de acceso 10.
R1# show access-lists Standard IP access list 10 10 permit 192.168.10.0, wildcard bits 0.0.0.255 R1# conf t Enter configuration commands, one per line. End with CNTL/Z. R1(config)# no access-list 10 R1(config)# exit R1# show access-lists R1#
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. La ACL que se muestra a continuación, que es bastante simple, se utiliza a modo de ejemplo. Cuando se revisa la ACL en la configuración mediante el comando show running-config, también se muestra el comentario.
R1(config)# access-list 10 remark Permit hosts from the 192.168.10.0 LAN R1(config)# access-list 10 permit 192.168.10.0 0.0.0.255 R1(config)# exit R1# show running-config | include access-list 10 access-list 10 remark Permit hosts from the 192.168.10.0 LAN access-list 10 permit 192.168.10.0 0.0.0.255 R1#
1.2. Aplicación de ACL estándar IPv4 a las interfaces
Después de que se configura una ACL estándar IPv4, se vincula a una interfaz mediante el comando ip access-group en el modo de configuración de interfaz:
Router(config-if)# ip access-group { access-list-number | access-list-name } { in | out }
Para eliminar una ACL de una interfaz, primero introduzca el comando no ip access-group en la interfaz y, a continuación, introduzca el comando global no access-list para eliminar la ACL completa.
A continuación, se enumeran los pasos y la sintaxis para configurar y aplicar una ACL estándar numerada en un router.
- 1: utilice el comando de configuración global access-list para crear una entrada en una ACL de IPv4 estándar.
R1(config)# access-list 1 permit 192.168.10.0 0.0.0.255
- 2: utilice el comando de configuración interface para seleccionar una interfaz a la cual aplicarle la ACL.
R1(config)# interface serial 0/0/0
- 3: utilice el comando de configuración de interfaz ip access-group para activar la ACL actual en una interfaz.
R1(config-if)# ip access-group 1 out
1.2.1. Ejemplo de una ACL diseñada para permitir una sola red.
Esta ACL solo permite que se reenvíe mediante la interfaz S0/0/0 el tráfico de la red de origen 192.168.10.0. El tráfico proveniente de redes distintas de la red 192.168.10.0 se bloquea.
R1(config)# access-list 1 permit 192.168.10.0 0.0.0.255 R1(config)# interface s0/0/0 R1(config-if)# ip access-group 1 out
En la primera línea, se identifica la ACL como lista de acceso 1. Esta lista permite el tráfico que coincide con los parámetros seleccionados. En este caso, la dirección IPv4 y la máscara wildcard que identifican a la red de origen son 192.168.10.0 0.0.0.255. 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.
El comando de configuración de interfaz ip access-group 1 out vincula la ACL 1 a la interfaz Serial 0/0/0 como filtro de salida.
Por lo tanto, la ACL 1 solo permite que los hosts de la red 192.168.10.0/24 salgan por el router R1. Esta lista deniega cualquier otra red, incluida la red 192.168.11.0
1.3. Ejemplos de ACL estándar numeradas IPv4
Continuando con el ejemplo de la imagen anterior, miremos los siguientes comandos: (Denegación de un host específico y admisión de una subred específica)
R1(config)# no access-list 1 R1(config)# access-list 1 deny host 192.168.10.10 R1(config)# access-list 1 permit 192.168.10.0 0.0.0.255 R1(config)# interface s0/0/0 R1(config-if)# ip access-group 1 out
El primer comando elimina la versión anterior de la ACL 1. La siguiente instrucción de ACL deniega el host de la PC1 ubicado en 192.168.10.10. Todos los demás hosts en la red 192.168.10.0/24 se permiten entonces. En este caso, la instrucción deny implícita también coincide con todas las demás redes.
La ACL se vuelva a aplicar a la interfaz S0/0/0 en sentido de salida.
Ahora mostramos un ejemplo de una ACL que deniega un host específico. Esta ACL reemplaza el ejemplo anterior. En este ejemplo, se sigue bloqueando el tráfico del host PC1, pero se permite el resto del tráfico.
R1(config)# no access-list 1 R1(config)# access-list 1 deny host 192.168.10.10 R1(config)# access-list 1 permit any R1(config)# interface g0/0 R1(config-if)# ip access-group 1 in
Los primeros dos comandos son los mismos que en el ejemplo anterior. El primer comando elimina la versión anterior de la ACL 1, y la siguiente instrucción de ACL deniega el host PC1 que está ubicado en 192.168.10.10.
La tercera línea es nueva y permite el resto de los hosts. Esto significa que se permiten todos los hosts de la red 192.168.10.0/24, excepto PC1, que se denegó en la instrucción anterior.
Esta ACL se aplica a la interfaz G0/0 en sentido de entrada. Debido a que el filtro afecta únicamente a la LAN 192.168.10.0/24 en G0/0, es más eficaz aplicar la ACL a la interfaz de entrada. Se puede aplicar la ACL a S0/0/0 en sentido de salida, pero entonces el R1 tendría que examinar los paquetes de todas las redes, incluida 192.168.11.0/24.
1.4. Sintaxis de ACL con nombre estándar IPv4
La asignación de nombres a las ACL hace más fácil comprender su función. Cuando se identifica la ACL con un nombre en lugar de un número, el modo de configuración y la sintaxis de los comandos son sutilmente diferentes.
A continuación, se muestran los pasos necesarios para crear una ACL estándar con nombre.
- Paso 1: En el modo de configuración global, utilice el comando ip access-list para crear una ACL con nombre. Los nombres de las ACL son alfanuméricos, distinguen mayúsculas de minúsculas y deben ser únicos. El comando de nombre ip access-list standard se usa para crear una con nombre estándar. Después de introducir el comando, el router se encuentra en el modo de configuración estándar (std) ACL con nombre (nacl) como lo indica el segundo indicador en:
Router(config)# ip access-list [standard | extended] name
Router(config-std-nacl)# [permit | deny | remark] {source [source-wildcard]} [log]
- Paso 2: En el modo de configuración de ACL con nombre, utilice las instrucciones permit o deny a fin de especificar una o más condiciones para determinar si un paquete se reenvía o se descarta. Puede utilizar remark para agregar un comentario a la ACL.
- Paso 3: Aplique la ACL a una interfaz con el comando ip access-group nombre. Especifique si la ACL se debe aplicar a los paquetes cuando ingresan por la interfaz (in) o cuando salen de la interfaz (out).
Router(config-if)# ip access-group name [in | out]
A continuación, se muestran los comandos que se utilizan para configurar una ACL estándar con nombre en el router R1, en la que la interfaz G0/0 deniega el acceso del host 192.168.11.10 a la red 192.168.10.0. La ACL se llama NO_ACCESS.
R1(config)# ip access-list standard NO_ACCESS R1(config-std-nacl)# deny host 192.168.11.10 R1(config-std-nacl)# permit any R1(config-std-nacl)# exit R1(config)# interface g0/0 R1(config-if)# ip access-group NO_ACCESS out
No es necesario que los nombres de las ACL comiencen con mayúscula, pero esto los hace destacarse cuando se observa el resultado de show running-config. También hace que sea menos probable que cree accidentalmente dos ACL diferentes con el mismo nombre pero con distinto uso de mayúsculas.
2. Modificar ACL de Ipv4
2.1. Método 1: usar un editor de texto
Después de familiarizarse con el proceso de creación y edición de ACL, puede ser más fácil generar la ACL mediante un editor de texto como el Bloc de notas de Microsoft. Esto permite crear o editar la ACL y luego pegarla en la interfaz del router. Para una ACL existente, puede utilizar el comando show running-config para mostrar la ACL, copiarla y pegarla en el editor de texto, realizar los cambios necesarios y pegarla nuevamente en la interfaz del router.
Configuración. Suponga, por ejemplo, que la siguiente dirección host IPv4 se introdujo incorrectamente. En lugar del host 192.168.10.99, debería ser el host 192.168.10.10. Los pasos para editar y corregir la ACL 1 son los siguientes:
R1(config)# access-list 1 deny host 192.168.10.99 R1(config)# access-list 1 permit 192.168.0.0 0.0.255.255
- Paso 1: Muestre la ACL mediante el comando show running-config. En el ejemplo de la ilustración, se utiliza la palabra clave include para mostrar solamente las ACE.
R1# show running-config | include access-list 1 access-list 1 deny host 192.168.10.99 access-list 1 permit 192.168.0.0 0.0.255.255
- Paso 2: Seleccione la ACL, cópiela y, luego, péguela en el Bloc de notas de Microsoft. Edite la lista según sea necesario. Una vez que la ACL se muestre correctamente en el Bloc de notas de Microsoft, selecciónela y cópiela.
<Editor de texto> access-list 1 deny host 192.168.10.10 access-list 1 permit 192.168.0.0 0.0.255.255
- Paso 3: En el modo de configuración global, elimine la lista de acceso con el comando no access-list 1. De lo contrario, las nuevas instrucciones se agregarán a la ACL existente. A continuación, pegue la nueva ACL en la configuración del router.
R1# config t Enter configuration commands, one per line. End with CNTL/Z. R1(config)# no access-list 1 R1(config)# access-list 1 deny host 192.168.10.10 R1(config)# access-list 1 permit 192.168.0.0 0.0.255.255
- Paso 4: Verifique los cambios mediante el comando show running-config.
R1# show running-config | include access-list 1 access-list 1 deny host 192.168.10.10 access-list 1 permit 192.168.0.0 0.0.255.255
Es necesario recordar que, al utilizar el comando no access-list, las distintas versiones del software IOS actúan de forma diferente. Si la ACL que se eliminó sigue estando aplicada a una interfaz, algunas versiones del IOS actúan como si no hubiera ninguna ACL que proteja la red, mientras que otras deniegan todo el tráfico. Por esta razón, es aconsejable eliminar la referencia a la lista de acceso de la interfaz antes de modificar la lista. Si hay un error en la nueva lista, debe deshabilitarla y solucionar el problema. En ese caso, la red no tiene ninguna ACL durante el proceso de corrección.
2.2. Método 2: usar números de secuencia
R1(config)# access-list 1 deny host 192.168.10.99 R1(config)# access-list 1 permit 192.168.0.0 0.0.255.255
Como se muestra en el esquema de arriba, en la configuración inicial de la ACL 1 se incluyó una instrucción de host para el host 192.168.10.99. pero eso fue un error. Se debería haber configurado el host 192.168.10.10. Para editar la ACL con los números de secuencia, siga estos pasos:
- Paso 1: Muestre la ACL actual mediante el comando show access-lists 1. El resultado de este comando se analizará en mayor detalle más adelante en esta sección. El número de secuencia se muestra al principio de cada instrucción. El número de secuencia se asignó automáticamente cuando se introdujo la instrucción de la lista de acceso. Observe que la instrucción que está mal configurada tiene el número de secuencia 10.
R1# show access-lists 1 Standard IP access list 1 10 deny 192.168.10.99 20 permit 192.168.0.0, wildcard bits 0.0.255.255 R1#
- Paso 2: Introduzca el comando ip access-lists standard que se utiliza para configurar las ACL con nombre. El número de la ACL, 1, se utiliza como nombre. Primero, la instrucción mal configurada se debe eliminar con el comando no 10, donde “10” se refiere al número de secuencia. Luego, se agrega una nueva instrucción de número de secuencia 10 mediante el comando 10 deny host 192.168.10.10.
R1# conf t R1(config)# ip access-list standard 1 R1(config-std-nacl)# no 10 R1(config-std-nacl)# 10 deny host 192.168.10.10 R1(config-std-nacl)# end R1#
- Paso 3: Verifique los cambios mediante el comando show access-lists.
R1# show access-lists Standard IP access list 1 10 deny 192.168.10.10 20 permit 192.168.0.0, wildcard bits 0.0.255.255 R1#
Como se mencionó anteriormente, el IOS de Cisco implementa una lógica interna en las listas de acceso estándar. Es posible que el orden en que se introducen las ACE estándar no sea el orden en que se almacenen, se muestren o se procesen en el router. El comando show access-lists muestra las ACE con sus números de secuencia.
2.3. Edición de ACL estándar con nombre
En un ejemplo anterior, se utilizaron los números de secuencia para editar una ACL estándar numerada IPv4. Mediante una referencia a los números de secuencia de la instrucción, se pueden insertar o eliminar fácilmente instrucciones individuales. Este método también se puede utilizar para editar las ACL estándar con nombre.
En el siguiente esquema, se muestra un ejemplo de inserción de una línea en una ACL con nombre.
R1# show access-lists Standard IP access list NO_ACCESS 10 deny 192.168.11.10 20 permit 192.168.11.0, wildcard bits 0.0.0.255 R1# conf t Enter configuration commands, one per line. End with CNTL/Z. R1(config)# ip access-list standard NO_ACCESS R1(config-std-nacl)# 15 deny host 192.168.11.11 R1(config-std-nacl)# end R1# show access-lists Standard IP access list NO_ACCESS 10 deny 192.168.11.10 15 deny 192.168.11.11 20 permit 192.168.11.0, wildcard bits 0.0.0.255 R1#
- En el primer resultado del comando show, se puede ver que la ACL con el nombre NO_ACCESS tiene dos líneas numeradas que indican las reglas de acceso para una estación de trabajo con la dirección IPv4 192.168.11.10.
- Se pueden insertar o eliminar instrucciones desde el modo de configuración de listas de acceso con nombre.
- Para agregar una instrucción para denegar otra estación de trabajo, se debe insertar una línea numerada. En el ejemplo, se agrega la estación de trabajo con la dirección IPv4 192.168.11.11 mediante el nuevo número de secuencia 15.
- Mediante el último resultado del comando show, se verifica que la nueva estación de trabajo ahora tiene el acceso denegado.
2.4. Verificar las ACL
Como se muestra a continuación, el comando show ip interface se utiliza para verificar la ACL en la interfaz. El resultado de este comando incluye el número o el nombre de la lista de acceso y el sentido en el que se aplicó la ACL. El resultado muestra que la lista de acceso 1 se aplica a la interfaz de salida S0/0/0 del router R1 y que la lista de acceso NO_ACCESS se aplica a la interfaz g0/0, también en sentido de salida.
R1# show ip interface s0/0/0 Serial0/0/0 is up, line protocol is up Internet address is 10.1.1.1/30 <Se omitió el resultado> Outgoing access list is 1 Inbound access list is not set <Se omitió el resultado> R1# show ip interface g0/0 GigabitEthernet0/0 is up, line protocol is up Internet address is 192.168.10.1/24 <Se omitió el resultado> Outgoing access list is NO_ACCESS Inbound access list is not set <Se omitió el resultado>
A continuación, se muestra el resultado de emitir el comando show access-lists en el router R1. Para ver una lista de acceso individual, utilice el comando show access-lists seguido del número o el nombre de la lista de acceso. Es posible que las instrucciones de NO_ACCESS se vean extrañas. Observe que el número de secuencia 15 se muestra antes que el número de secuencia 10. Esto se debe al proceso interno del router y se analizará más adelante en esta sección.
R1# show access-lists Standard IP access list 1 10 deny 192.168.10.10 20 permit 192.168.0.0, wildcard bits 0.0.255.255 Standard IP access list NO_ACCESS 15 deny 192.168.11.11 10 deny 192.168.11.10 20 permit 192.168.11.0, wildcard bits 0.0.0.255 R1#
2.5. Estadísticas de ACL
Una vez que la ACL se aplicó a una interfaz y se realizaron algunas pruebas, el comando show access-lists muestra las estadísticas para cada instrucción que tiene coincidencias. En el resultado que se muestra más abajo, observe que se encontraron coincidencias para algunas de las instrucciones.
R1# show access-lists Standard IP access list 1 10 deny 192.168.10.10 (4 match(es)) 20 permit 192.168.0.0, wildcard bits 0.0.255.255 Standard IP access list NO_ACCESS 15 deny 192.168.11.11 10 deny 192.168.11.10 (4 match(es)) 20 permit 192.168.11.0, wildcard bits 0.0.0.255 R1#
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 de la PC1 a la PC3 o la PC4, en el resultado se mostrará un aumento en las coincidencias para la instrucción deny de ACL 1.
R1# show access-lists Standard IP access list 1 10 deny 192.168.10.10 (8 match(es)) 20 permit 192.168.0.0, wildcard bits 0.0.255.255 Standard IP access list NO_ACCESS 15 deny 192.168.11.11 10 deny 192.168.11.10 (4 match(es)) 20 permit 192.168.11.0, wildcard bits 0.0.0.255 R1#
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 configurar 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 seguida, este comando borra los contadores de estadísticas para una ACL.
R1# show access-lists Standard IP access list 1 10 deny 192.168.10.10 (4 match(es)) 20 permit 192.168.0.0, wildcard bits 0.0.255.255 Standard IP access list NO_ACCESS 15 deny 192.168.11.11 10 deny 192.168.11.10 (4 match(es)) 20 permit 192.168.11.0, wildcard bits 0.0.0.255 R1# clear access-list counters 1 R1# R1# show access-lists Standard IP access list 1 10 deny 192.168.10.10 20 permit 192.168.0.0, wildcard bits 0.0.255.255 Standard IP access list NO_ACCESS 15 deny 192.168.11.11 10 deny 192.168.11.10 (4 match(es)) 20 permit 192.168.11.0, wildcard bits 0.0.0.255
3. Protección de Puerto VTY con ACL de IPv4 Estándar
Puede mejorar la seguridad de las líneas administrativas mediante la restricción del acceso a VTY. La restricción del acceso a VTY es una técnica que permite definir las direcciones IP a las que se les permite acceder remotamente al proceso de EXEC del router. Puede controlar qué direcciones IP pueden acceder remotamente al router mediante la configuración de una ACL y una instrucción access-class en las líneas VTY. Utilice esta técnica con SSH para mejorar aún más la seguridad de acceso administrativo.
El comando access-class configurado en el modo de configuración de línea restringe las conexiones de entrada y salida entre una VTY determinada (en un dispositivo de Cisco) y las direcciones en una lista de acceso.
La sintaxis del comando access-class es la siguiente:
Router (config)# access-class número-de-acl { in [ vrf-also ] | out}
El parámetro in limita las conexiones de entrada entre las direcciones en la lista de acceso y el dispositivo de Cisco, mientras que el parámetro out limita las conexiones de salida entre un dispositivo de Cisco en particular y las direcciones en la lista de acceso.
En la Imagen 2, se muestra un ejemplo en el que se permite que un rango de direcciones acceda a las líneas VTY de 0 a 4. La ACL de la ilustración se configuró para permitir que la red 192.168.10.0 acceda a las líneas VTY de 0 a 4, pero para denegar las demás redes.
Para configurar listas de acceso en los VTY, se debe tener en cuenta lo siguiente:
- Se pueden aplicar listas de acceso numeradas y nombradas a los VTY.
- Se deben establecer restricciones idénticas en todos los VTY, porque un usuario puede intentar conectarse a cualquiera de ellos.
R1(config)# line vty 0 4 R1(config-line)# login local R1(config-line)# transport input ssh R1(config-line)# access-class 21 in R1(config-line)# exit R1(config)# access-list 21 permit 192.168.10.0 0.0.0.255 R1(config)# access-list 21 deny any
3.1. Verificación de la seguridad del puerto VTY
Después de configurar la ACL para restringir el acceso a las líneas VTY, es importante verificar que funcione correctamente. En la siguiente ilustración, se muestran dos dispositivos que intentan conectarse al R1 mediante SSH. Se configuró la lista de acceso 21 en las líneas VTY en el R1. La PC1 logra conectarse, mientras que la PC2 no puede establecer una conexión SSH. Este es el comportamiento que se espera, ya que la lista de acceso configurada permite el acceso a VTY desde la red 192.168.10.0/24 y deniega al resto de los dispositivos.
PC1> ssh 192.168.10.1 Login as: admin Password: ***** R1>
PC2> ssh 192.168.11.1 ssh connect to host 192.168.11.1 port 22: Connection refused PC2>
El resultado del R1 muestra lo que se produce al emitir el comando show access-lists después de que la PC1 y la PC2 intentan conectarse mediante SSH.
R1# show access-lists Standard IP access list 21 10 permit 192.168.10.0, wildcard bits 0.0.0.255 (2 matches) 20 deny any (1 match) R1#
La coincidencia en la línea permit del resultado es producto de una conexión SSH correcta de la PC1. La coincidencia en la instrucción deny se debe al intento fallido de la PC2, un dispositivo en la red 192.168.11.0/24, de establecer una conexión SSH.