ACL (Access-List)
Una Lista de Control de Acceso o ACL (del inglés, Access Control List) es un concepto de seguridad informática usado para fomentar la separación de privilegios. Es una forma de determinar los permisos de acceso apropiados a un determinado objeto, dependiendo de ciertos aspectos del proceso que hace el pedido.Las ACLs permiten controlar el flujo del tráfico en equipos de redes, tales como routers y switches. Su principal objetivo es filtrar tráfico, permitiendo o denegando el tráfico de red de acuerdo a alguna condición.Existen dos tipos de ACLs:- ACL estándar, donde solo tenemos que especificar una dirección de origen; (1-99)
- ACL extendida, en cuya sintaxis aparece el protocolo y una dirección de origen y de destino.(100-199)
La ACL compraran las mascara con la widlcard si es un 0 revisa, si es un 1 no revisaACLs Estándar. · Usan el rango de (1-99)· Solo filtran la dirección IP de origen (se configuran al destino)· Usan el siguiente formatoRouter#configure terminal
Router (config)# access-list [Numero] {deny|permit} Dirección IP origen [wildcard-origen]
Ejemplo 1:
Queremos denegar en la interfaz s0 de salida cualquier paquete que provenga de la red 10.1.1.0/24.
Router#configure terminal
Router (config)# access-list 1 deny 10.1.1.0 0.0.0.255
Router (config)# access-list 1 permit any
Router (config)# interface s0
Router (config-if)# ip access-group 1 out
Router (config-if)# exit
Router# show access-lists
Ejemplo 2:
Denegar el acceso IP de la red 143.43.43.0/24
access-list 1 deny 143.43.43.0 0.0.0.255
access-list 1 permit any
¿Cómo usar las wildcard? Utilizamos las wildcard para comprobar las condiciones, Un bit de máscara wildcard 0 significa “comprobar el valor correspondiente”, Un bit de mascara wildcard 1 significa “No comprobar (ignorar) el valor del bit correspondiente.
Host = mascara comodín 0.0.0.0, utilizada para un host especifico
Any = 0.0.0.0 255.255.255.255, utilizado para definir a cualquier host, red o subred
En el caso de permitir o denegar redes o subredes enteras se deben ignorar todos los host pertenecientes a dicha dirección de red o subred. Cualquier dirección de host será leída como dirección de red o subred.Ejemplo:
Dirección IP 172 16 32 0
IP en binario 10101100
0001000000100000
00000000
Mascara de red 11111111 11111111 11100000
00000000
wildcard
00000000
0000000000011111 11111111
Resultado se toman se toman se toman no se toma
en cuenta los en cuenta los en cuenta los en cuenta
8bis 8bis 3 primeros bis
el resto no
ACL Extendidas · Usan el rango de (100-199) (2000-2699)· Filtra la dirección IP de origen, protocolos y puertos/ aplicacionesRouter#configure terminal
Router (config)# access-list <numero> <permit|deny> <protocolo> <dirección-origen> <wildcard-origen> <dirección-destino> <wildcard-destino> eq <número de puerto o aplicación>Ejemplo 1:
Queremos denegar en la interfaz s0 de salida cualquier paquete ICMP que provenga de la red 10.1.1.0/24 y el acceso a cualquier puerto Telnet (puerto 23) por parte de un host de esa red.
Router# configure terminal
Router (config)# access-list 101 deny icmp 10.1.1.0 0.0.0.255 any
Router (config)# access-list 101 deny tcp 10.1.1.0 0.0.0.255 any eq 23
Router (config)# access-list 101 permit ip any any
Router (config)# interface s0
Router (config-if)# access-group 101 out
Router (config-if)# exit
Router# show access-lists
Ejemplo 2:
Denegar el acceso de http y telnet de la red 143.43.43.0/24 al host 132.32.32.4
access-list 100 deny tcp 143.43.43.0 0.0.0.255 132.32.32.4 0.0.0.0 eq 80
o
access-list 100 deny tcp 143.43.43.0 0.0.0.255 host 132.32.32.4 eq 80
y
access-list 100 deny tcp 143.43.43.0 0.0.0.255 132.32.32.4 0.0.0.0 eq 23
o
access-list 100 deny tcp 143.43.43.0 0.0.0.255 host 132.32.32.4 eq 23
access-list 100 permit ip any any
Ejemplo 3:
Denegar el Ping de la red 132.43.4.0 al host 145.52.54.9
access-list 101 deny icmp 132.43.4.0 0.0.0.255 host 145.52.54.9
access-list 101 permit ip any any
Importante:
- Siempre al final de una lista de acceso esta implícito el negar todo, aunque nunca aparece pero es: deny any.
- Las listas de acceso son secuencias de instrucciones que son chequeadas contra el paquete, una vez que se cumpla la condición toman una acción y se salen de la lista de acceso, es decir no se continua chequeando para comprobar que haya otra línea de la secuencia que también resulta cierta. Por lo tanto, es importante diseñar la ACL en la secuencia que nos interese más.
- No se puede insertar líneas en la secuencia de las ACLs, si nos equivocamos al crearla o queremos insertar una línea a la que existe, hay que borrar toda la ACL y volverla a crear. Solamente las listas con nombre permiten cambiar o eliminar instrucciones.
- Una ACL se aplica a la interfaz de entrada o de salida. Se pueden crear una ACL para la interfaz de salida y otra distinta para esa interfaz de entrada.
· Usan el rango de (1-99)
· Solo filtran la dirección IP de origen (se configuran al destino)
· Usan el siguiente formato
Router#configure terminal
Router (config)# access-list [Numero] {deny|permit} Dirección IP origen [wildcard-origen]
Router (config)# access-list [Numero] {deny|permit} Dirección IP origen [wildcard-origen]
Ejemplo 1:
Queremos denegar en la interfaz s0 de salida cualquier paquete que provenga de la red 10.1.1.0/24.
Router#configure terminal
Router (config)# access-list 1 deny 10.1.1.0 0.0.0.255
Router (config)# access-list 1 permit any
Router (config)# interface s0
Router (config-if)# ip access-group 1 out
Router (config-if)# exit
Router# show access-lists
Queremos denegar en la interfaz s0 de salida cualquier paquete que provenga de la red 10.1.1.0/24.
Router#configure terminal
Router (config)# access-list 1 deny 10.1.1.0 0.0.0.255
Router (config)# access-list 1 permit any
Router (config)# interface s0
Router (config-if)# ip access-group 1 out
Router (config-if)# exit
Router# show access-lists
Ejemplo 2:
Denegar el acceso IP de la red 143.43.43.0/24
access-list 1 deny 143.43.43.0 0.0.0.255
access-list 1 permit any
Denegar el acceso IP de la red 143.43.43.0/24
access-list 1 deny 143.43.43.0 0.0.0.255
access-list 1 permit any
¿Cómo usar las wildcard?
Utilizamos las wildcard para comprobar las condiciones, Un bit de máscara wildcard 0 significa “comprobar el valor correspondiente”, Un bit de mascara wildcard 1 significa “No comprobar (ignorar) el valor del bit correspondiente.
Host = mascara comodín 0.0.0.0, utilizada para un host especifico
Any = 0.0.0.0 255.255.255.255, utilizado para definir a cualquier host, red o subred
Any = 0.0.0.0 255.255.255.255, utilizado para definir a cualquier host, red o subred
En el caso de permitir o denegar redes o subredes enteras se deben ignorar todos los host pertenecientes a dicha dirección de red o subred. Cualquier dirección de host será leída como dirección de red o subred.
Ejemplo:
Dirección IP
172
16
32
0
IP en binario
10101100
00010000
00100000
00000000
Mascara de red
11111111
11111111
11100000
00000000
wildcard
00000000
00000000
00011111
11111111
Resultado
se toman
se toman
se toman
no se toma
en cuenta los
en cuenta los
en cuenta los
en cuenta
8bis
8bis
3 primeros bis
el resto no
ACL Extendidas
· Usan el rango de (100-199) (2000-2699)
· Filtra la dirección IP de origen, protocolos y puertos/ aplicaciones
Router#configure terminal
Router (config)# access-list <numero> <permit|deny> <protocolo> <dirección-origen> <wildcard-origen> <dirección-destino> <wildcard-destino> eq <número de puerto o aplicación>
Router (config)# access-list <numero> <permit|deny> <protocolo> <dirección-origen> <wildcard-origen> <dirección-destino> <wildcard-destino> eq <número de puerto o aplicación>
Queremos denegar en la interfaz s0 de salida cualquier paquete ICMP que provenga de la red 10.1.1.0/24 y el acceso a cualquier puerto Telnet (puerto 23) por parte de un host de esa red.
Router# configure terminal
Router (config)# access-list 101 deny icmp 10.1.1.0 0.0.0.255 any
Router (config)# access-list 101 deny tcp 10.1.1.0 0.0.0.255 any eq 23
Router (config)# access-list 101 permit ip any any
Router (config)# interface s0
Router (config-if)# access-group 101 out
Router (config-if)# exit
Router# show access-lists
Ejemplo 2:
Denegar el acceso de http y telnet de la red 143.43.43.0/24 al host 132.32.32.4
access-list 100 deny tcp 143.43.43.0 0.0.0.255 132.32.32.4 0.0.0.0 eq 80
o
access-list 100 deny tcp 143.43.43.0 0.0.0.255 host 132.32.32.4 eq 80
y
access-list 100 deny tcp 143.43.43.0 0.0.0.255 132.32.32.4 0.0.0.0 eq 23
o
access-list 100 deny tcp 143.43.43.0 0.0.0.255 host 132.32.32.4 eq 23
access-list 100 permit ip any any
Ejemplo 3:
Denegar el Ping de la red 132.43.4.0 al host 145.52.54.9
access-list 101 deny icmp 132.43.4.0 0.0.0.255 host 145.52.54.9
access-list 101 permit ip any any
- Siempre al final de una lista de acceso esta implícito el negar todo, aunque nunca aparece pero es: deny any.
- Las listas de acceso son secuencias de instrucciones que son chequeadas contra el paquete, una vez que se cumpla la condición toman una acción y se salen de la lista de acceso, es decir no se continua chequeando para comprobar que haya otra línea de la secuencia que también resulta cierta. Por lo tanto, es importante diseñar
- No se puede insertar líneas en la secuencia de las ACLs, si nos equivocamos al crearla o queremos insertar una línea a la que existe, hay que borrar toda
- Una ACL se aplica a la interfaz de entrada o de salida. Se pueden crear una ACL para la interfaz de salida y otra distinta para esa interfaz de entrada.