¿Qué son ACL -Access Control Lists o listas de control de acceso-?Pues si no sabe lea la primera entrada sobre ACLs. En ésta entrada vamos a partir de que se sabe qué es una acl estándar y qué son acls extendidas, partiendo de eso vamos a configurar en la topología de ejemplo una política de seguridad arbitraria con listas estándar y listas extendidas y veremos la diferencia.
Topología de ejemploComo base para el ejercicio vamos a tomar la misma topología de la última entrada sobre ACLs, en ella se conectan 5 enrutadores por cables seriales, a cada uno se le conecta una subred con la posibilidad de agregar varios equipos. La topología ya está configurada y hay conectividad perfecta de punta a punta, es decir, se puede hacer ping entre los PCs y se puede acceder por Telnet desde cualquier PC a cualquier enrutador. Las subredes de los PCs (usuarios) están todas dentro del prefijo 172.16.0.0/12, usando las subredes 172.16.0.0/16, 172.17.0.0/16 y 172.19.0.0/16, la 172.18.0.0/16 es la dirección que simulará la salida a Internet. Los enlaces y el servidor pertenecen al prefijo 10.0.0.0/8, es decir, los enlaces son 10.1.1.0/30, 10.1.1.4/30, 10.1.1.8/30, 10.1.1.12/30, 10.1.1.16/30 y el servidor es 10.0.0.5/8. Éste esquema de direcciones se llama direccionamiento no contiguo, es decir, las subredes consecutivas de una misma clase (A, B o C) no están asignadas a un sólo enrutador (por ejemplo las subredes de los enlaces pertenecen a la red 10.0.0.0/8 de clase A pero sus subredes se distribuyen por todos los enrutadores). Cuando en una topología se da el direccionamiento no contiguo, hay que deshabilitar el auto resumen en el protocolo de enrutamiento que se esté usando. El servidor corre http, tftp y dns (hay que activarlo), de hecho, vamos a usar example.com para hacer pings y telnets, lo anterior sólo funciona si se puede acceder al servidor dns para convertir el nombre de dominio en dirección IP y si el servidor DNS tiene una entrada para example.com que se traduce a una dirección IP, en nuestro caso la 172.18.0.2.
Recomendaciones previasComo lo que vamos a hacer es un ejercicio un poco más realista, lo primero que deberíamos tener en cuenta antes de comenzar es tomar precauciones. Lo primero es guardar todas las configuraciones actuales, para que en caso de catástrofe (p.e.: se pierda totalmente la conectividad) se pueda recuperar rápidamente la configuración. Eso se puede hacer guardando una copia del archivo de configuración en un archivo de texto o en un tftp. Hay que tener muy en cuenta que cuando se configuran ACLs usualmente uno se conecta por Telnet, es decir, que si el daño hace perder la conectividad del enrutador que se está configurando con el PC en el que estamos trabajando… ¡Despedidos!. En una entrada anterior describo un comando para evitar catástrofes de éste tipo (cuando el IOS lo soporta), que consiste en establecer un timer de reinicio, por lo tanto si no guardamos la configuración que estamos haciendo y perdemos la conectividad hay garantía de que el enrutador/switch se reinicie y arranque con la configuración original (antes del cambio). Lo otro que hay que verificar Y DOCUMENTAR es el estado de la conectividad previa a la configuración. No perdamos el tiempo tratando de arreglar lo que esté malo (a menos que sea nuestra responsabilidad directa), sólo documentemos cómo está, haciendo unos pings selectos y unos telnets que muestren qué se podía hacer antes de la instalación de las ACLs. Recuerden que una forma de verificar conectividad de capa 4 y superior es usar un telnet al enrutador al que queremos verificar la conectividad (previa configuración correcta de las lineas de vty en el equipo al que apuntamos).
Política de seguridad de ejemploYa descrita la topología, creemos una política de seguridad impuesta por un «superior» administrativo.
- El servidor es de la intranet, es decir que de las redes del Router4 y Router2 deben poder acceder a la web interna.
- Los PCs de la red del enrutador Router1 son invitados, por lo tanto sólo pueden acceder a Internet, no al servidor ni a las redes internas (las de Router4, Router2 ni a los enrutadores mismos)
- De los PCs de las redes internas, sólo quienes tengan direcciones IP impar pueden acceder a Internet, el resto no.
- Los PCs internos (excepto los invitados) pueden acceder a sus recursos y a los enrutadores.
- El PC 5 no puede acceder a ningún enrutador por ningún medio.
- Cualquier tráfico no contemplado debe ser bloqueado.
Configuración con listas estándarUna de las cosas interesantes a notar es que la configuración se puede hacer con listas estándar o extendidas, el problema es qué tan difícil sea configurar todo ésto. Primero intentaremos con listas estándar. El orden de las listas afecta el resultado, por lo tanto hay que poner las más restrictivas primero y luego las más generales, además hay que seleccionar dónde ponerlas. Para las listas estándar, la ubicación debe ser lo más cercano posible del destino, por lo tanto para el tráfico que se dirige al servidor lo más cercano al destino es su enrutador, en la interfaz que da hacia el servidor y en la dirección de entrada (recuerden que las ACLs estándar sólo pueden filtrar con base en la dir. origen). Esa es la mejor opción, otras opciones serían en las otras interfaces de salida, pero probablemente sea necesario ponerlas en todas las interfaces. Me alargaría demasiado si explico cada regla, pero yo creo que queda claro con la elección de la lista del servidor, así que voy a escribir el listado y la ubicación: Política 1: Router0, fa 0/0 out access-list 1 permit 172.16.0.0 0.0.255.255 access-list 1 permit 172.19.0.0 0.0.255.255 Política 2: Router4, ser 0/0/0, in access-list 1 deny 172.17.0.0 0.0.255.255 access-list 1 permit any Router2, ser 0/0/0, in access-list 1 deny 172.17.0.0 0.0.255.255 access-list 1 permit any Router3, ser 0/0/0, in access-list 1 permit 172.17.0.0 0.0.255.255 Política 3: Router3, ser 0/0/0, in access-list 1 permit 172.17.0.0 0.0.255.255 access-list 1 permit 0.0.0.1 255.255.255.254 Política 4: Router4, ser 0/0/0, in access-list 1 deny 172.17.0.0 0.0.255.255 access-list 1 permit 172.19.0.0 0.0.255.255 Router2, ser 0/0/0, in access-list 1 deny 172.17.0.0 0.0.255.255 access-list 1 permit 172.16.0.0 0.0.255.255 Router0, Router1, Router2, Router3 y Router4 en las vty. access-list 2 permit 172.19.0.0 0.0.255.255 access-list 2 permit 172.16.0.0 0.0.255.255 access-list 2 permit 10.0.0.0 0.255.255.255 Política 5: Router0, Router1, Router2, Router3 y Router4 en las vty. access-list 2 deny host 172.19.0.3 access-list 2 permit 172.19.0.0 0.0.255.255 access-list 2 permit 172.16.0.0 0.0.255.255 access-list 2 permit 10.0.0.0 0.255.255.255 Política 6: Todas las listas de acceso terminan en un deny implícito, es recomendable usar un deny any explícito para poder llevar control de cuántos paquetes son filtrados por ésta última regla. Adicionales: 1) Dado que las listas escritas también bloquean el protocolo de enrutamiento, una vez instaladas las listas anteriores, las tablas de enrutamiento se empiezan a dañar (faltan rutas), se pierde la conectividad y la convergencia de la red. Por lo anterior, hay que permitir el tráfico que provenga de los enrutadores, en las interfaces habría que poner una regla como ésta access-list 1 permit 10.1.1.0 0.0.0.255 y en las vty, una como ésta para incluir el servidor en la posibilidad de hacer telnets access-list 1 permit 10.0.0.0 0.255.255.255 2) Con las listas propuestas, el tráfico de Internet de las estaciones impares puede salir de la red, pero ¿pasa las listas en los enrutadores finales? No, y el problema es que el tráfico proveniente de internet no tiene un patrón de direcciones IP origen, por lo tanto la única regla que permitiría el tráfico de internet sería permit any, lo cual violaría la política de bloquear cualquier otro tráfico. 3) No hay forma de permitir el tráfico desde la red de invitados hacia el servidor sólo para web, dns y tftp. Si sólo hubiera la opción de usar listas estándar, habría que ubicar un servidor por fuera de la zona protegida o no protegerlo de la red de invitados, algo que es inaceptable en las redes modernas. Según las consideraciones anteriores, las listas de acceso serían: Router0, fa 0/0 out access-list 1 permit 172.16.0.0 0.0.255.255 access-list 1 permit 172.19.0.0 0.0.255.255 Router3, ser 0/0/0, in access-list 1 permit 172.17.0.0 0.0.255.255 access-list 1 permit 0.0.0.1 255.255.255.254 access-list 1 permit 10.0.0.0 0.255.255.255 access-list 1 deny any Router4, ser 0/0/0, in access-list 1 deny 172.17.0.0 0.0.255.255 access-list 1 permit any Router2, ser 0/0/0, in access-list 1 deny 172.17.0.0 0.0.255.255 access-list 1 permit any Router0, Router1, Router2, Router3 y Router4 en las vty. access-list 2 permit 172.19.0.0 0.0.255.255 access-list 2 permit 172.16.0.0 0.0.255.255 access-list 2 permit 10.0.0.0 0.255.255.255 Para terminar, los comandos con los cuales se instalan las listas son ip access-group N in/out si se va a instalar en las interfaces (serial o fastethernet) pero si se van a instalar en las líneas vty se usa el comando access-class N in/out.
Conclusiones
muy buena info
Excelente documental, me despejaste una duda que tenia, no comprendia las listas de acceso.
hola
tengo dos tiendas y quiero tener un servidor en mi casa, para que todas las información de la tiendas tenerla en mi servidor.
pero, no se si es un problema de donde tengo el Internet de mi casa.
obtengo el Internet de un red local que tiene un joven en mi comunicad ,la red esta constituida por 14 pc y3 swich, mi pc esta en el segundo swich pero la dos tienda no esta en esa red.
mi pregunta e:
1.cuando yo este haciendo la red en el packet tracer, tengo que poner la dirección ip del swich q estoy conectado,la del swich q alimenta el q estoy conecta y la del route?
2.o solo tengo q poner la dirección ip de mi servidor, ip del route del de la red q estoy conectado, la ip de lo route de la pc de la dos tienda y listo?.
.
espero q entiendan mi explicación
cual quier ayunda favor de escribirme al coreo gabriel_r_g_18 en hotmail
Hola Gabriel,
en el escenario que propones seguramente tienes direcciones privadas al interior de ambas redes (o por lo menos en tu casa) y toca configurar redirección de puerto en los enrutadores que te dan acceso, asignando estáticamente una IP a tu servidor y conociendo los puertos por los que escucha tu aplicación servidora. Eso no se puede hacer con PT (que yo sepa).
Adicionalmente te voy a dar una recomendación, con todo respeto. Cuando dejes comentarios y desees rápida respuesta debes tener en cuenta dos cosas: 1) ser claro y no cometer muchos errores, así sean de digitación; 2) dejar los comentarios bajo un texto relacionado con tu pregunta.
Gracias por el comentario, espero que mi respuesta de aclare alguna duda y hasta pronto.
Hola César, excelente material !!
Mi caso es: tengo un router conectado a un switche con 3 vlan configuradas.
La duda: ¿se pueden crear acls para las subinterfaces del router?
Saludos
Hola Javier,
sí, las acls se pueden poner por subinterfaz como si fueran interfaces reales.
Gracias y hasta pronto.
Hola un favor yo tengo un problema tengo dos routers conectados y en cada router tengo dos vlans la comunicacion es exitosa pero yo necesito que se comuniquen la vlan 2 de R1 con la vlan 2 de R2, y la vlan 3 de R1 con la vlan 3 de R2, y que no exista comunicacion de vlan 2 con vlan 3 en ningun router, con acls logre la comunicacion de vlan 2 de R1 con la vlan 2 de R2, pero la vlan 3 de R1 aun se comunica con la vlan 2 de R2 y al aplicar acl me niega toda la comunicacion si podrias darme una solucion te agradeceria mucho.