Listas de Control de Acceso (ACLs)
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 8,37 KB
TEMA 2.7
Una ACL es una secuencia de comandos asociados a una interfaz que especifican si un paquete que llega a dicha interfaz puede atravesarla o no, basándose en la información de su cabecera. A los comandos que forman la ACL se les denomina Entradas de control de acceso (ACE) o, simplemente, reglas. Cada regla expresa una condición que debe cumplir el paquete para que se le aplique la acción asociada (permitirle o denegarle el paso). Se puede establecer una única ACL por cada posible combinación de puerto del router (Gb0, S0, etc.), sentido de entrada o salida (tomando como referencia el interior del router) y protocolo utilizado (IP, TCP, UDP, etc.). Si no se crean ACLs, cualquier paquete que atraviese el router podrá llegar a cual- quier parte de la red. Los principales motivos para crear ACLs son:
Filtrar el tipo de tráfico que atraviesa una red para mejorar el rendimiento.
Permitir o denegar el acceso de unos sitios a otros para obtener seguridad.
APLICACIÓN DE UNA ACL Cuando un paquete llega a una interfaz que tiene configurada una ACL, se comprue- ba si dicho paquete verifica la condición de la primera regla:
En caso afirmativo, se le aplica la acción asociada (aceptar o rechazar el paquete) y se termina el proceso.
En caso negativo, se prueba con la siguiente regla.
Si llegamos a la última regla y el paquete tampoco cumple la condición, se descarta de forma automática, debido a que existe una regla implícita que deniega todos los paquetes que llegan al final.
Nota: Este proceso tiene lugar en las capas 3 y 4 del modelo OSI (capas de red y transporte respectivamente).
REPRESENTACIÓN GRÁFICA
Podemos imaginar una ACL como aparece representada en la imagen adjunta:
FUNCIONAMIENTO GENERAL
Cuando una trama llega a la interfaz de un router, tiene lugar el siguiente proceso:
1. Si la trama se acepta (porque la MAC destino coincida con la de la interfaz o bien sea un broadcast), se comprueba si hay definidas ACLs entrantes en esa interfaz: a) Si no existe ninguna, vamos directamente al paso
2. b) Si existe alguna, se le aplica la acción correspondiente: aceptar la trama o descartarla.
2. A continuación, si la trama no ha sido descartada en el paso b), tiene lugar el proceso de enrutamiento, donde el router consulta su TE para saber por qué interfaz debe sacar la trama: a) Si dicha interfaz tiene alguna ACL saliente asociada, se le aplica la ACL correspondiente a la trama, siendo aceptada o rechazada. b) Si no hay ACL saliente o si la hay pero la trama se ha aceptado, entonces se saca por la interfaz.
LA CONDICIÓN DE UNA REGLA
Una ACL está formada por un conjunto de reglas que se evalúan secuencialmente. A su vez, cada regla consta de una condición y una acción asociadas. Y la acción será aplicada a un paquete, si este cumple la condición. Una condición se representa mediante un patrón más o menos complejo que debe cumplir la IP origen (o destino) del paquete para que se le aplique la acción. Un patrón no es más que una IP especial, normalmente expresada en binario, donde además de 0s y 1s pueden aparecer comodines representados por Xs.
Ejemplo: 1100000X.10101XX1.X0X0111X.0010X00X
Decimos que una IP cumple un patrón, si coincide con todos los 0s y 1s del patrón. Donde en el patrón aparezcan comodines, en la IP pueden aparecer 0s o 1s indistintamente y el patrón se seguirá cumpliendo. Estudia si las siguientes IPs cumplen el patrón anterior:
11000001.10101011.00001111.00101001 192.175.15.52
LA MÁSCARA WILDCARD
El problema es que, en una regla, el patrón no se puede escribir directamente con 1s, 0s y Xs. Es necesario expresarlo de manera indirecta mediante una operación entre una IP llamada modelo y una máscara especial denominada wildcard, ambas por determinar. Según lo que acabamos de decir: patrón = IP_Modelo + WildCard El resultado de la operación consistente en aplicar la WildCard a la IP_Modelo (y que va a generar el patrón), viene dado por el siguiente par de reglas:
• Un bit 0 en la máscara WildCard significa que el bit asociado en la IP_Modelo se debe copiar en el patrón.
• Un bit 1 en la máscara WildCard significa que el bit asociado del patrón debe ser un comodín, es decir, una X (independientemente del bit que figure en la misma posición de la IP_Modelo). CURIOSIDADES
• Para eliminar una ACL, se ejecuta el comando: R(C)# no access-list nº • Las reglas de una misma ACL se deben ordenar desde lo particular a lo general.
• Cuando se rechaza un paquete IP, el router manda un mensaje ICMP de host inalcanzable al emisor. • Las ACLs salientes no afectan a los paquetes originados en el router, solo a los que proceden de otra interfaz. • Cuando las ACLs estándar se utilizan para restringir el acceso a una determinada red de destino, deben ubicarse lo más cerca posible del destino. • En cambio, las ACLs extendidas conviene ubicarlas cerca del origen para evitar tráfico innecesario. CONDICIONES ABREVIADAS Para simplificar la notación de las reglas, algunas condiciones se pueden abreviar de la siguiente manera:
• La condición: 0.0.0.0 255.255.255.255 se abrevia: any
• La condición: IP_Modelo 0.0.0.0 se abrevia: host IP_Modelo ACLs ESTÁNDAR Su funcionamiento se basa en comprobar si la IP origen del paquete a enrutar cumple el patrón, independientemente del protocolo empleado (IP, ICMP, TCP, UDP, etc.). Se enumeran del 1 al 99 y del 1300 al 1999. La definición de una ACL estándar consta de dos pasos:
• Crear cada una de las reglas con la siguiente sintaxis:
R (C)# access-list nº { permit | deny | remark } IP_M [WC] [log]
• remark: Establece un comentario explicativo a una ACL.
• log: Registra los paquetes que cumplen el patrón y los muestra por consola.
• Asociarla a una o más interfaces de la siguiente forma:
R(C-I)# ip access-group nº {in | out} Notas:
• Si no se especifica ninguna WildCard se supone que aparece la 0.0.0.0
• Una regla se añade siempre al final de la lista. Para intercalar, hay que reescribir la ACL. ACLs EXTENDIDAS Ofrecen más posibilidades que las estándar ya que no solo filtran paquetes en base a la IP origen, sino que también lo hacen teniendo en cuenta la IP destino, el protocolo y números de puerto. Se enumeran del 100 al 199 y del 2000 al 2699. La sintaxis para crear una ACL extendida es:
R(C)# access-list nº {accion} protocolo IPMo [WCo] IPMd [WCd] [log] [operador][puerto] donde:
• protocolo: Indica el protocolo al que se va a aplicar la ACL (TCP, UDP ICMP, EIGRP, IP, OSPF, etc.).
• operador: Admite las opciones eq, neq, gt y lt.
• puerto: Indica el número de puerto sobre el que se aplica la ACL. En lugar del número, se puede indicar el nombre de protocolo de capa 7 que usa ese puerto (http, ftp, dns, etc.).
ACLs NOMBRADAS Estas ACLs se identifican por un nombre en lugar de un número por lo que son más sencillas de identificar, más fáciles de modificar y no existe límite en cuanto a cantidad. Sin embargo dos ACLs distintas no pueden tener el mismo nombre aunque sean de tipo distinto. La sintaxis de una ACL nombrada es la siguiente: • R (C)# ip access-list {extended | standard } nombre
• R(C-ext-nacl)# {permit | deny} IPM1 WC1 […]
RESTRINGIR UN TELNET LOCAL A un Telnet originado en el propio router no se le aplican las ACLs salientes. Sin embargo, una vez creada una ACL se puede asociar a las terminales virtuales como si se tratasen de una interfaz más. Para ello es obligatorio asociarla a todas las sesiones posibles de Telnet (0 a 15), con la siguiente sintaxis:
R(C)# line vty 0 15 R(C-line)# access-class nº {in | out}
COMANDOS DE VERIFICACIÓN Para verificar cómo ha quedado configurada una ACL, se pueden usar algunos de los siguientes comandos:
• sh ip int : Este comando muestra información sobre la interfaz indicada, incluyendo las ACL definidas en ella.
• sh access-list: Muestra el contenido de todas las ACLS definidas independiente- mente de la interfaz.
• sh access-list : Muestra el contenido de la ACL pasada como parámetro.
• sh run: Muestra todas las ACLS y las asignaciones a interfaces.