martes, 7 de junio de 2011

14 - ACL'S

ACL (Access-List)

Una Lista de Control de Acceso o ACL (del inglésAccess 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 revisa
ACLs Estándar.
·         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]

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

 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>
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.