ACL se refiere a una lista de reglas que detallan puertos de servicio o nombres de dominios (de redes) que estn
disponibles en una terminal u otro dispositivo de capa de red, cada uno de ellos con una lista de terminales y/o redes que tienen permiso para usar el servicio. ACL estndar, donde solo tenemos que especificar una direccin de origen; ACL extendida, en cuya sintaxis aparece el protocolo y una direccin de origen y de destino. Comandos para crear ACLS: Crear una ACL estndar: (config)#access-list <# lista>; Ejemplos: (config)#access-list 1 deny [Link] [Link] (config)#access-list 1 permit host [Link] (config)#access-list 1 permit any Parmetros: # Lista: Estndar de 1 a 99, extendida de 100 a 199 Accin: Protocolo: ip | tcp | udp | icmp comparacin: gt | lt | eq gt = greater than, lt = lesser than, eq = equal Origen de una sola ip: host Origen de cualquier ip: any Origen de una red: La wildcard ser en la mayora de los casos el inverso de la mscara Crear una ACL extendida: (config)#access-list <# lista> [comparacin] [puerto origen] [comparacin] [puerto destino]; Ejemplos: (config)#access-list 105 permit [Link] [Link] host [Link] eq 80 (config)#access-list 105 permit host [Link] [Link] [Link] (config)#access-list 105 deny [Link] [Link] any Origen o destino de una sola ip: host Origen o destino de cualquier ip: any Origen o destino de una red: La wildcard ser en la mayora de los casos el inverso de la mscara Aplicar la lista sobre un puerto: Debe ingresarse primero al puerto deseado y luego aplicarla all, ya sea entrante o saliente: (config-if)#ip access-group <# lista>; Ejemplo: (config)#interface seria 0/0 (config-if)#ip access-group 100 out Para aplicarla al trfico que va dirigido al router propiamente (telnet por ejemplo), debe hacerse sobre las terminales virtuales (config)#line vty 0 4 (config-line)#access-class <# lista> Ejemplo: (config-line)#access-class 105 in Borrar una ACL: (config)#no access-list <# lista>; Ejemplo: (config)#no access-list 105
Es posible bloquear el acceso a un web site utilizando ACL en Cisco IOS?
La respuesta es simple y directa: SI. Es posible bloquear el acceso a una direccin URL desde un dispositivo Cisco IOS utilizando ACL. El tema es cmo. No es una tarea difcil en la medida en que se comprenda cmo operan las listas de acceso. Este es un procedimiento posible: 1. Configure un servidor DNS Supondremos que se nos ha encomendado bloquear el acceso a la URL [Link] (sera un poco raro, pero valga simplemente como ejemplo). No conocemos la direccin IP, y tampoco lo necesitamos; Cisco IOS tiene la posibilidad de trabajar a partir del nombre. Para esto es preciso que se haya configurado al menos un servidor DNS para ser utilizado por el IOS para la resolucin de nombres; esto se realiza utilizando el comando ip name-server: Router(config)#ip name-server ? A.B.C.D Domain server IP address (maximum of 6) Router(config)#ip name-server [Link] Observe que se pueden configurar varios servidores de nombre en la misma lnea de comando) A partir de este punto, el router utilizar el servidor de nombres que configuramos, para resolver todo texto que no se corresponda a un comando, en nuestro caso, por ejemplo: Router# ping [Link] Translating "[Link]"...domain server ([Link]) [OK] Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to [Link], timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/4 ms Router# En este caso el nombre [Link] ha sido resuelto a la direccin IP [Link] utilizando el servidor DNS [Link] 2. Cree una lista de acceso Ahora lo nico que necesitamos es crear una lista de acceso que defina exactamente qu es lo que se desea bloquear y permitir luego todo el dems trfico. En nuestro ejemplo: Router(config)# access-list 101 deny tcp any host [Link] eq www Translating "[Link]"...domain server ([Link]) [OK] Router(config)# access-list 101 permit ip any any Esta lista de acceso deniega todo el trfico web hacia el dominio especificado, cualquiera sea la direccin de origen. Despus de esta denegacin permitimos todo otro trfico IP a travs de esa interfaz para evitar el problema que genera el deny implcito que est al final de toda ACL.
Adicionalmente, si se deseara tener un registro de las direcciones IP que intentan acceder al sitio web bloqueado, la sentencia de la ACL debe ser: Router(config)# access-list 101 deny tcp any host [Link] eq www log El subcomando log da lugar a la creacin de un registro de todos los paquetes que sean denegados por esta sentencia. 3. Esto tiene sus lmites Este uso del servidor DNS parece resolver la necesidad de conocer la direccin IP del web server destino para bloquearlo en Cisco IOS. Esto es verdad solo parcialmente. Si se revisa el archivo de configuracin luego de ingresar nuestra sentencia ACL, lo que se ve es esto: Router# sh run inc access-list 101 access-list 101 deny tcp any host [Link] eq www Es decir, al ingresar el comando el servicio dns reemplaz automticamente la URL por la primer IP que corresponde a ese nombre, e ingres la sentencia ya con la IP destino en la configuracin. Esto tiene varias complicaciones: si la URL tiene varias direcciones IP como referentes, nuestra ACL solo filtrar la primera, las dems debern ser ingresadas manualmente: C:\>nslookup [Link] Server: [Link] Address: [Link] Non-authoritative answer: Name: [Link] Addresses: [Link], [Link] Aliases: [Link] En nuestro ejemplo, debiramos agregar una sentencia que filtre el trfico a la IP [Link]. Adicionalmente tambin hay que tener en cuenta que si la direccin IP del servidor que estamos filtrando cambio por cualquier motivo, nuestra sentencia permanecer direccionada a la misma IP por la que deber ser manualmente actualizada. 4. Aplique la ACL a la interfaz Echas estas salvedades, la ACL debe ser aplicada a la interfaz correspondiente. En nuestro ejemplo asumiremos que estamos filtrando el trfico que desde nuestra LAN busca salir hacia Internet. Siendo as, podemos aplicar, por ejemplo, la ACL para que filtre el trfico saliente del router a travs de la interfaz serial: Router(config)# int serial 0/0 Router(config-if)# ip access-group 101 out
ACL estndar
Sintaxis para un rengln (se escribe en el modo de configuracin global):
access-list (nmero) (deny | permit) (ip origen) (wildcard origen)
Ejemplo: Bloquear toda la subred [Link]/24, excepto la mquina [Link].
access-list 1 permit host [Link] access-list 1 deny [Link] [Link] access-list 1 permit any
Para asignarlo a una interface:
interface F0 ip access-group 1 out
ACL extendidas
Sintaxis para cada rengln:
access-list (nmero) (deny | permit) (protocolo) (IP origen) (wildcard origen) (IP destino) (wildcard destino) [(operador) (operando)]
El "protocolo" puede ser (entre otros) IP (todo trfico de tipo TCP/IP), TCP, UDP, ICMP. El "operando" puede ser un nmero de puerto (por ejemplo 21), o una sigla conocida, por ejemplo, "ftp". Ejemplo 1: Repetir el ejemplo de la ACL estndar, pero se especifica que se quiere permitir o denegar el trfico con destino al servidor, que est en [Link]:
access-list 101 permit ip host [Link] host [Link] access-list 101 deny ip [Link] [Link] host [Link] access-list 101 permit ip any any
Ejemplo 2: Permitir trfico HTTP y "ping" (ICMP) al servidor [Link], para todos. Denegar todo lo dems.
access-list 102 permit icmp any host [Link] access-list 102 permit tcp any host [Link] eq www
Comandos varios
show ip interface (muestra asignaciones de ACL) show access-lists (muestra el contenido de las ACL) debug ip packet 101 [detail] (permite analizar cmo se aplican las ACL)