LISTAS DE CONTROL DE ACCESO Una ACL es una lista secuencial de sentencias de permiso o denegación que se aplican a direcciones o protocolos de capa superior. Las ACL brindan una manera poderosa de controlar el tráfico de entrada o de salida de la red. Puede configurar las ACL para todos los protocolos de red enrutados. Las ACL realizan un control de tráfico de entrada y de salida de la red, el cual puede ser tan simple como permitir o denegar los hosts o direcciones de red, como también pueden configurarse para controlar el tráfico de red según el puerto TCP que se utiliza. Como cada paquete llega a través de una interfaz con una ACL asociada, la ACL se revisa de arriba a abajo, una línea a la vez, y se busca un patrón que coincida con el paquete entrante. La ACL hace cumplir una o más políticas de seguridad corporativas al aplicar una regla de permiso o denegación para determinar el destino del paquete. De manera predeterminada, un router no tiene ninguna ACL configurada y, por lo tanto, no filtra el tráfico. El tráfico que ingresa al router es enrutado según la tabla de enrutamiento. Si no utiliza una ACL en el router, todos los paquetes que pueden enrutarse a través del router lo atraviesan hacia el próximo segmento de la red. Algunas pautas para el uso de las ACL: Utilice las ACL en routers firewall entre su red interna y su red externa, como Internet. Utilice las ACL en un router situado entre dos partes de la red a fin de controlar el tráfico que entra o sale de una parte específica de su red interna. Configure las ACL en routers de borde situados en los extremos de la red. Esto proporciona un búfer muy básico desde la red externa, o entre un área menos controlada y un área más sensible de su red. Configure las ACL para cada protocolo de red configurado en las interfaces del router de borde. Puede configurar las ACL en una interfaz para filtrar el tráfico entrante, saliente o ambos. Como regla general se puede configurar una ACL por protocolo, por dirección y por interfaz. Una ACL por protocolo: para controlar el flujo de tráfico de una interfaz, se debe definir una ACL para cada protocolo habilitado en la interfaz. Una ACL por dirección: las ACL controlan el tráfico en una dirección a la vez de una interfaz. Deben crearse dos ACL por separado para controlar el tráfico entrante y saliente. Una ACL por interfaz: las ACL controlan el tráfico para una interfaz, por ejemplo, Fast Ethernet 0/0. Las ACL inspeccionan los paquetes de la red según un criterio, como dirección de origen, de destino, protocolos y números de puerto. Además de permitir o denegar el tráfico, una ACL puede clasificar el tráfico para darle prioridad en la línea. Tipos de ACL: ACL estándar Las ACL estándar le permiten autorizar o denegar el tráfico teniendo como parámetro las direcciones IP de origen. No importan el destino del paquete ni los puertos involucrados. El ejemplo permite todo el tráfico desde la red 192.168.30.0/24. Debido a la sentencia implícita "deny any" (denegar todo) al final, todo el otro tráfico se bloquea con esta ACL. Es como decir “permitir la 192.168.30.0 0.0.0.255 y bloquear todo lo demás” Las ACL estándar se crean en el modo de configuración global. ACL extendidas Las ACL extendidas filtran los paquetes IP en función de varios atributos, por ejemplo: tipo de protocolo, direcciones IP de origen, direcciones IP de destino, puertos TCP o UDP de origen, puertos TCP o UDP de destino e información opcional de tipo de protocolo para una mejor disparidad de control. En la figura, la ACL 103 permite el tráfico que se origina desde cualquier dirección en la red 192.168.30.0/24 hacia cualquier puerto 80 de host de destino (HTTP). Las ACL extendidas se crean en el modo de configuración global. Los comandos para las ACL se explicarán mas adelante. ¿Cómo funciona una ACL estándar? La ACL estándar es una colección secuencial de condiciones de permiso o denegación que aplican a las direcciones IP. No se incluyen el destino del paquete ni los puertos involucrados. En la figura, aparece el proceso de decisión. El software IOS de Cisco prueba las direcciones una a una con las condiciones. La primera coincidencia determina si el software acepta o rechaza la dirección. El orden de las condiciones es muy importante, ya que el software detiene las condiciones de prueba luego de la primera coincidencia. Si no coinciden ningunas de las condiciones, se rechaza la dirección. Las dos tareas principales involucradas al utilizar las ACL son: Paso 1. Crear una lista de acceso que especifique un número o nombre de lista de acceso y las condiciones de acceso. Paso 2. Aplicar la ACL a las interfaces o líneas de terminal. Dónde ubicar las ACL La ubicación adecuada de las ACL para filtrar el tráfico no deseado proporciona un funcionamiento más eficiente de la red. Las ACL pueden actuar como firewalls para filtrar paquetes y eliminar el tráfico no deseado. El lugar donde ubique las ACL puede reducir el tráfico innecesario. Por ejemplo, el tráfico que se deniega en un destino remoto no debe usar los recursos de la red en el camino hacia ese destino. Todas las ACL deben ubicarse donde más repercutan sobre la eficacia. Las reglas básicas son: Ubicar las ACL extendidas lo más cerca posible del origen del tráfico denegado. De esta manera, el tráfico no deseado se filtra sin atravesar la infraestructura de red. Como las ACL estándar no especifican las direcciones de destino, colóquelas lo más cerca del destino posible. Consideremos un ejemplo de dónde colocar las ACL en nuestra red. La ubicación de la interfaz y la red depende de lo que desee que realice la ACL. En la figura, el administrador desea que el tráfico que se origina en la red 192.168.10.0/24 no ingrese a la red 192.168.30.0/24. Una ACL en la interfaz de salida de R1 deniega a R1 la posibilidad de enviar tráfico no solo a 192.168.10.0/24 sino también a otros lugares. La solución por tanto es colocar una ACL estándar en la interfaz de entrada de R3 para detener todo el tráfico desde la dirección de origen 192.168.10.0/24. De esta manera el tráfico de 192.168.30.0/24 será enviado normalmente a cualquier ubicación pero le será denegado su ingreso a R3. Una ACL estándar cumple con los requerimientos porque sólo se centra en las direcciones IP de origen. Considere que los administradores sólo pueden colocar las ACL en los dispositivos que ellos controlan. Por lo tanto, su ubicación debe determinarse según la extensión del control del administrador de red. En el siguiente ejemplo, el administrador de las redes 192.168.10.0/24 y 192.168.11.0/24 (designadas en este ejemplo Diez y Once, respectivamente) desea denegar el tráfico Telnet y FTP desde Once a la red 192.168.30.0/24 (Treinta en este ejemplo). Al mismo tiempo, se debe permitir todo el tráfico restante desde Diez. Hay varias maneras de realizar esta tarea. Una ACL extendida en R3 que bloquea el tráfico Telnet y FTP desde Once podría realizar la tarea, pero el administrador no controla R3. Esa solución sigue permitiendo, además, que el tráfico no deseado atraviese toda la red, sólo para bloquearlo en el destino. Esto afecta la eficacia general de la red. Una solución es utilizar una ACL extendida de salida que especifique las direcciones de origen y de destino (Diez y Treinta respectivamente), y diga "El tráfico Telnet y FTP desde Diez no puede llegar hasta Treinta." Coloque esta ACL extendida en el puerto de salida S0/0/0 de R1. Una desventaja de esta solución es que el tráfico desde Once también está sujeto a cierto procesamiento de la ACL, incluso si se permite el tráfico Telnet y FTP. La mejor solución es acercarse al origen y colocar una ACL extendida en la interfaz de entrada Fa0/2 de R1. Esto garantiza que los paquetes desde Diez no ingresen a R1 y que luego no puedan atravesar hacia Once ni incluso ingresar a R2 o R3. Aún se permite el tráfico con otras direcciones y puertos de destino hacia R1. Cómo ingresar sentencias de criterios Antes de comenzar a configurar una ACL estándar, revisaremos conceptos importantes sobre las ACL que abarcamos en la sección anterior. Cuando el tráfico ingresa al router, se lo compara con las sentencias de ACL en función del orden de las entradas en el router. El router continúa procesando las sentencias de ACL hasta lograr una coincidencia. Por ello, se debe colocar la ACL más utilizada al principio de la lista. Si no se encuentran coincidencias cuando el router llega al final de la lista, el tráfico es denegado porque las ACL tienen una sentencia de denegación implícita para todo el tráfico que no cumple con los criterios de prueba. Una ACL de una única entrada con sólo una entrada de denegación llega a denegar todo el tráfico. Debe tener al menos una sentencia de permiso en una ACL o se bloquea todo el tráfico. Por ejemplo, las dos ACL (101 y 102) de la figura tienen el mismo efecto. La red 192.168.10.0 puede acceder a la red 192.168.30 mientras que 192.168.11.0 no puede. Lógica de las ACL estándar En la figura, se revisan las direcciones de origen de los paquetes que ingresan a Fa0/0: access-list 2 deny 192.168.10.1 access-list 2 permit 192.168.10.0 0.0.0.255 access-list 2 deny 192.168.0.0 0.0.255.255 access-list 2 permit 192.0.0.0 0.255.255.255 Si los paquetes tienen permiso, se enrutan a través del router hacia una interfaz de salida. Si se les niega el permiso, se los descarta en la interfaz de entrada. Configuración de las ACL estándar Para configurar las ACL estándar numeradas en un router Cisco, primero debe crear la ACL estándar y, luego, 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. El software IOS de Cisco Versión 12.0.1 extendió el rango y permite desde 1300 a 1999 para brindar un máximo de 798 ACL estándar posibles. Estos números adicionales son denominados ACL IP expandidos. La sintaxis completa del comando ACL estándar es: Router(config)#access-list número-de-lista-de-acceso deny permit remark origen [wildcard origen] [log] La figura muestra una explicación detallada de la sintaxis para una ACL estándar. Por ejemplo, para crear una ACL numerada nombrada 10 que permita la red 192.168.10.0 /24, debe ingresar: R1(config)# access-list 10 permit 192.168.10.0 Eliminar una ACL La forma no de este comando elimina la ACL estándar. En la figura, el resultado del comando show access-list muestra las ACL actuales configuradas en el router R1. 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 la lista de acceso 10 ha sido eliminada. Por lo general, los administradores crean las ACL y comprenden plenamente el propósito de cada sentencia dentro de la ACL. Sin embargo, cuando se vuelve a revisar una ACL más adelante, puede no ser tan evidente como antes. La palabra clave remark se utiliza para la documentación y facilita considerablemente la comprensión de las listas de acceso. Cada observación está limitada a 100 caracteres. Si bien es bastante simple, la ACL de la figura se utiliza como ejemplo. Al revisar la ACL en la configuración, se muestra también la observación. Máscaras wildcard Las sentencias de las ACL incluyen máscaras, también denominadas máscaras wildcard. Una máscara wildcard es una secuencia de dígitos binarios que le indican al router qué partes del número de subred observar. Aunque las máscaras wildcard no tienen una relación funcional con las máscaras de subred, sí proporcionan una función similar. La máscara determina qué parte de la dirección IP de origen y destino aplicar a la concordancia de direcciones. Los números 1 y 0 de la máscara identifican cómo considerar los bits de direcciones IP correspondientes. Sin embargo, se utilizan con distintos propósitos y siguen distintas reglas. Las máscaras wildcard y máscaras de subred tienen una longitud de 32 bits y utilizan unos (1) y ceros (0) binarios. Las máscaras de subred utilizan unos y ceros binarios para identificar la red, subred y porción de host de una dirección IP. Las máscaras wildcard utilizan unos y ceros binarios para filtrar direcciones IP individuales o en grupo para permitir o denegar el acceso a recursos según la dirección IP. Al configurar cuidadosamente las máscaras wildcard, puede permitir o denegar una o varias direcciones IP. Las máscaras wildcard y máscaras de subred difieren en la forma en la que concuerdan sus unos y ceros binarios. Las máscaras wildcard utilizan las siguientes reglas para hacer coincidir sus unos y ceros binarios. Bit 0 de máscara wildcard: hacer coincidir el valor de bits correspondiente de la dirección Bit 1 de máscara wildcard: ignorar el valor de bits correspondiente de la dirección La figura muestra la forma en la que las diferentes máscaras wildcard filtran direcciones IP. Como puede observar en el ejemplo, recuerde que el 0 binario representa una coincidencia, y el 1 binario, ignorar. Nota: Las máscaras wildcard generalmente son denominadas máscaras inversas. El motivo es que, a diferencia de una máscara de subred cuyo 1 binario representa una coincidencia y el 0 binario la falta de coincidencia, lo inverso es verdadero. Uso de la máscara wildcard La tabla de la figura muestra los resultados de aplicar una máscara wildcard 0.0.255.255 a una dirección IP de 32 bits. Recuerde que un 0 binario indica un valor coincidente. Máscaras wildcard para hacer coincidir subredes IP Calcular la máscara wildcard puede ser un tanto confuso al principio. La figura proporciona tres ejemplos de máscaras wildcard. En el primer ejemplo, la máscara wildcard indica que cada bit de la dirección IP 192.168.1.1 debe coincidir en forma exacta. La máscara wildcard es equivalente a la máscara de subred 255.255.255.255. En el segundo ejemplo, la máscara wildcard indica que todo coincide. La máscara wildcard es equivalente a la máscara de subred 0.0.0.0. En el tercer ejemplo, la máscara wildcard indica que coincide cualquier host dentro de la red 192.168.1.0 /24. La máscara wildcard es equivalente a la máscara de subred 255.255.255.0. Estos ejemplos son bastante sencillos. Sin embargo, el cálculo de las máscaras wildcard puede ser un poco más complicado. En el cuarto ejemplo, los primeros dos octetos y los primeros cuatro bits del tercer octeto deben coincidir de manera exacta. Los últimos cuatro bits del tercer octeto y el último octeto pueden ser cualquier número válido. Esto da como resultado una máscara que verifica de 192.168.16.0 a 192.168.31.0. El quinto ejemplo muestra una máscara wildcard que coincide con los primeros dos octetos y el bit más insignificante del tercero. El último octeto y los primeros siete bits del tercer octeto pueden ser cualquier número válido. El resultado es una máscara que permite o deniega todos los hosts desde subredes impares de la red principal 192.168.0.0. Calcular máscaras wildcard puede ser complicado, pero puede hacerlo fácilmente restando la máscara de subred de 255.255.255.255. Por ejemplo, supongamos que desea permitir el acceso a todos los usuarios de la red 192.168.3.0. Si la máscara de subred es 255.255.255.0, puede tomar 255.255.255.255 y restar de la máscara de subred 255.255.255.0 o como se muestra en la figura. La solución genera la máscara wildcard 0.0.0.255. Supongamos que desea permitir el acceso a la red a los 14 usuarios de la subred 192.168.3.32 /28. La máscara de subred para la subred IP es 255.255.255.240; tome 255.255.255.255 y reste de la máscara de subred 255.255.255.240. Esta vez la solución genera la máscara wildcard 0.0.0.15. Palabras clave de la máscara de bits wildcard Trabajar con representaciones decimales de bits wildcard binarios puede ser una tarea muy tediosa. Para simplificarla, las palabras clave host y any ayudan a identificar los usos más comunes de las máscaras wildcard. Con estas palabras clave no necesita ingresar las máscaras wildcard al identificar un host o red específicos. También facilitan la lectura de una ACL al proporcionar pistas visuales en cuanto al origen o destino del criterio. La opción host reemplaza la máscara 0.0.0.0. Esta máscara indica que todos los bits de direcciones IP deben coincidir o que sólo un host coincide. La opción any reemplaza la dirección IP y la máscara 255.255.255.255. Esta máscara indica que debe ignorarse toda la dirección IP o que deben aceptarse todas las direcciones. Ejemplo 1: Proceso de las máscaras wildcard con una dirección IP que coincide con todas Ejemplo, en lugar de ingresar 0.0.0.0 255.255.255.255, puede usar la palabra clave any. Ejemplo 2: Proceso de las máscaras wildcard con una única dirección IP En lugar de ingresar 192.168.10.10 0.0.0.0, puede utilizar host 192.168.10.10. Procedimientos de configuración de las ACL estándar Luego de configurar una ACL estándar, se la vincula a una interfaz con el comando ip access-group: Router(config-if)#ip accessgroup {número de lista de acceso | nombre de lista de acceso} {in | out} Para eliminar una ACL de una interfaz, primero ingrese el comando no ip access-group en la interfaz y luego el comando global no access-list para eliminar toda la ACL Ejemplos: Ejemplo 1: ACL que permite una única red. Esta ACL sólo permite que el tráfico de la red de origen 192.168.10.0 sea enviado por la interfaz S0/0/0. Se bloquea el tráfico de las demás redes, excepto la 192.168.10.0. La primera línea identifica la ACL como lista de acceso 1. Permite el tráfico que coincide con los parámetros seleccionados. En este caso, la dirección IP y la máscara wildcard que identifica la red de origen es 192.168.10.0 0.0.0.255. Recuerde que existe la sentencia implícita y oculta "deny all", equivalente a agregar la línea access-list 1 deny 0.0.0.0 255.255.255.255. El comando de configuración de interfaz ip access-group 1 out vincula y adjunta la ACL 1 a la interfaz Serial 0/0/0 como filtro de salida. Por ello, la ACL 1 sólo permite hosts de la red 192.168.10.0 /24 para salir del router R1. Deniega cualquier otra red, incluso la 192.168.11.0. Ejemplo 2: ACL que deniega un host específico. Esta ACL reemplaza el ejemplo anterior, pero además bloquea el tráfico de una dirección específica. El primer comando borra la versión anterior de la ACL 1. La siguiente sentencia de ACL deniega el host PC1 ubicado en 192.168.10.10. Está permitido cualquier otro host de la red 192.168.10.0 /24. Nuevamente, la sentencia implícita de denegación coincide con cualquier otra red. Nuevamente se aplica la ACL a la interfaz S0/0/0 en dirección saliente. Ejemplo 3: ACL que deniega una subred específica. Esta ACL reemplaza el ejemplo anterior pero aún bloquea tráfico del equipo host PC1. Permite, además, que todo el tráfico de LAN salga del router R1. Los primeros dos comandos son los mismos que el ejemplo anterior. El primer comando borra la versión anterior de la ACL 1 y la siguiente sentencia de ACL deniega el host PC1 ubicado en 192.168.10.10. La tercera línea es nueva y permite todos los hosts de las redes 192.168.x.x /16. Ahora, esto significa que todos los hosts de la red 192.168.10.0 /24 sí coinciden, pero ahora también coinciden los hosts de la red 192.168.11.0. Nuevamente se aplica la ACL a la interfaz S0/0/0 en dirección saliente. Por ello, las dos LAN conectadas al router R1 pueden salir de la interfaz S0/0/0, a excepción del host PC1.