Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Teoria de ACL
Teoria de ACL
Introduccin
Una ACL (lista de control de acceso -Access Control Lists) es una lista secuencial de
sentencias de permiso o denegacin que se aplican a direcciones o protocolos de capa
superior. Las ACL brindan una manera poderosa de controlar el trfico de entrada o de salida
de la red. Puede configurar las ACL para todos los protocolos de red enrutados.
Las ACLs son la especificacin de una accin a realizar sobre paquetes que cumplan ciertas
condiciones. Una ACL es un conjunto de reglas identificadas con un nmero o un nombre y
cada regla especifica una accin y una condicin, las acciones a aplicar son permitir o denegar
todos los paquetes que cumplan la condicin asociada a la regla. Una ACL se identifica con un
nmero o un nombre y todas las reglas que tengan el mismo nmero/nombre hacen parte de la
ACL, stos identificadores suelen indicar tambin qu tanta expresividad tendr la ACL, es
decir, qu tan especficas pueden ser las reglas.
El motivo ms importante para configurar las ACL es brindar seguridad a la red.
Las ACL le permiten controlar el trfico de entrada y de salida de la red. Este control puede ser
tan simple como permitir o denegar los hosts o direcciones de red. Sin embargo, las ACL
tambin pueden configurarse para controlar el trfico de red segn el puerto TCP que se utiliza.
Cuando solicita datos de un servidor Web, IP se encarga de la comunicacin entre la PC y el
servidor. TCP se encarga de la comunicacin entre su navegador Web (aplicacin) y el
software de servidor de red. Cuando enva un correo electrnico, visita una pgina Web o
descarga un archivo, TCP es el responsable de desglosar los datos en paquetes para IP, antes
de enviarlos, y de integrar los datos de los paquetes al recibirlos. El proceso de TCP es muy
similar a una conversacin, donde dos nodos de una red aceptan transferir datos entre s.
Recuerde que TCP ofrece un servicio orientado a la conexin, confiable y de stream de bytes.
El trmino "orientado a la conexin" significa que las dos aplicaciones que utilizan TCP deben
establecer una conexin TCP entre s antes de intercambiar datos. TCP es un protocolo fullduplex, que significa que cada conexin TCP admite un par de streams de bytes, y cada
stream fluye en una direccin. TCP incluye un mecanismo de control de flujo para cada stream
de bytes que permite al receptor limitar la cantidad de datos que el transmisor puede enviar.
TCP tambin implementa un mecanismo de control de congestin.
El segmento de datos TCP identifica, adems, el puerto que coincide con el servicio solicitado.
Por ejemplo, HTTP es puerto 80, SMTP es puerto 25 y FTP es puerto 20 y puerto 21
El filtrado de paquetes, a veces denominado filtrado esttico de paquetes, controla el acceso a
la red, analiza los paquetes de entrada y de salida, y permite o bloquea su ingreso segn un
criterio establecido.
La ACL es una configuracin de router que controla si un router permite o deniega paquetes
segn el criterio encontrado en el encabezado del paquete. Las ACL tambin se utilizan para
seleccionar los tipos de trfico por analizar, reenviar o procesar de otras maneras.
Como cada paquete llega a travs de una interfaz con una ACL asociada, la ACL se revisa
lnea a lnea, y cuando una lnea coincida con el paquete entrante se le aplica esa regla. La
ACL hace cumplir una o ms polticas de seguridad corporativas al aplicar una regla de
permiso o denegacin para determinar el destino del paquete. Es posible configurar las ACL
para controlar el acceso a una red o subred.
De manera predeterminada, un router no tiene ninguna ACL configurada y, por lo tanto, no filtra
el trfico. El trfico que ingresa al router es enrutado segn la tabla de enrutamiento. Si no
utiliza una ACL en el router, todos los paquetes que pueden enrutarse a travs del router lo
atraviesan hacia el prximo segmento de la red.
Puede recordar una regla general para aplicar las ACL en un router mediante las tres P. Puede
configurar una ACL por protocolo, por direccin y por interfaz.
Una ACL por protocolo: para controlar el flujo de trfico de una interfaz, se debe definir
una ACL para cada protocolo habilitado en la interfaz.
Una ACL por direccin: las ACL controlan el trfico en una direccin a la vez de una
interfaz. Deben crearse dos ACL por separado para controlar el trfico entrante y
saliente.
Una ACL por interfaz: las ACL controlan el trfico para una interfaz, por ejemplo, Fast
Ethernet 0/0.
Las sentencias de la ACL operan en orden secuencial. Comparan los paquetes con la ACL, de
arriba hacia abajo, una sentencia a la vez.
La figura muestra la lgica para una ACL de entrada. Si coinciden un encabezado de paquete y
una sentencia de ACL, se omite el resto de las sentencias de la lista y el paquete tiene
permitido pasar o no, segn la sentencia coincidente. Si el encabezado del paquete no coincide
con una sentencia de ACL, el paquete se prueba segn la siguiente sentencia de la lista. Este
proceso de coincidencia contina hasta el final de la lista.
La figura muestra la lgica para una ACL de salida. Antes de reenviar un paquete a una interfaz
de salida, el router verifica la tabla de enrutamiento para ver si el paquete es enrutable. Si no lo
es, se descarta. A continuacin, el router verifica si la interfaz de salida se agrupa a una ACL.
Si la interfaz de salida no se agrupa a una ACL, el paquete puede enviarse al bfer de salida.
Algunos ejemplos del funcionamiento de las ACL de salida son los siguientes.
Si la interfaz de salida no se agrupa a una ACL de salida, el paquete se enva directamente a la
interfaz de salida.
Si la interfaz de salida se agrupa a una ACL de salida, el paquete no se enva a una interfaz de
salida hasta probarlo segn la combinacin de sentencias de ACL asociadas a la interfaz. De
acuerdo con el resultado de las pruebas realizadas por la ACL, el paquete se puede permitir o
denegar.
Para las listas de salida, "permitir" significa enviar el paquete al bfer de salida y "denegar"
significa descartarlo.
Cuando un paquete llega a la interfaz del router, el proceso del router es el mismo se utilicen o
no las ACL:
1. el router verifica si la direccin de destino de Capa 2 concuerda con la propia o si es
una trama de broadcast.
2. Si se acepta la direccin de la trama, la informacin de la trama se elimina y el router
busca una ACL en la interfaz de entrada.
Si existe una ACL, entonces se verifica si el paquete cumple o no las
condiciones de la lista. Si el paquete coincide con la sentencia, se acepta o se
rechaza.
Si no existe ACL pasa al siguiente punto
3. Si se acepta el paquete en la interfaz, se lo compara con las entradas de la tabla de
enrutamiento para determinar la interfaz destino y conmutarlo a aquella interfaz.
4. A continuacin, el router verifica si la interfaz de destino tiene una ACL.
Si existe una ACL, entonces se verifica si el paquete cumple o no las
condiciones de la lista. Si el paquete coincide con la sentencia, se acepta o se
rechaza.
Las ACL estndar entonces especifican un slo par direccin de referencia/wildcard contra el
que se comparan todos los paquetes que entren o salgan de la interfaz en la que se instale la
ACL, en otras palabras, una ACL estndar filtra trfico con base en la direccin IP origen de los
paquetes.
Tener en cuenta siempre que las listas de acceso terminan en denegacin por defecto, por lo
tanto, si una ACL slo tiene reglas de denegacin lo nico que logra es denegar TODO el
trfico. Una ACL debe tener siempre por lo menos una regla de permitir
Como cada regla se verifica en secuencia comenzando por la primera, si una regla es ms
general debera ir despus de las ms especficas
ACL extendidas
Las ACL extendidas filtran los paquetes IP en funcin 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 informacin opcional de tipo de protocolo para una mejor
disparidad de control. Por ejemplo
Access-list 103 permit tcp 192.168.30.0 0.0.0.255 any eq 80
la ACL 103 permite el trfico que se origina desde cualquier direccin 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 configuracin global.
ACL complejas
Dentro de las ACLs complejas tenemos 3 tipos: dinmicas, reflexivas y basadas en tiempo pero
en el currculo oficial no se ven muy a fondo ni se dan mayores ejemplos. A continuacin les
describo cada una de ellas y al final de la entrada describo las acl nombradas son un tipo de
acl que facilita la configuracin y administracin de ACLs.
ACLs dinmicas
stas usan un mecanismo bsico de autenticacin, generalmente Telnet, para activar la ACL,
lo que permite usar una ACL como mecanismo de autenticacin o vincular una ACL con la
autenticacin de los usuarios con medios reconocidos. La idea consiste en crear una regla en
la ACL que slo se activar si es disparada por algn evento, en ste caso un acceso por telnet
al enrutador. La regla en cuestin agrega antes de la accin (permit/deny) las palabras
reservadas dynamic testlist timeout <n>, donde n es la cantidad de minutos que la regla ser
activa una vez que es disparada, luego de estos parmetros va la regla ordinaria que se har
activa, por ejemplo permit ip host 10.1.1.1 any. Como esta ltima regla est asociada con un
acceso por telnet como disparador, en las lneas de vty se debe poner un comando especial
autocommand access-enable host timeout 5, que establece el acceso permitido al telnet como
disparador de la acl dinmica.
* access-list 101 permit ip any host 10.1.1.1 eq telnet
* access-list 101 dynamic testlist timeout 10 permit ip 172.16.0.0 0.0.255.255 172.17.0.0
0.0.255.255
* interface fa 0/0
* ip access-group 101 in
* username usuario password clave
* line vty 0 4
* login local
* autocommand access-enable host timeout 5
El anterior listado de comandos instala una lista de acceso dinmica de entrada en la interfaz fa
0/0 que slo despus que un usuario cesar abre exitosamente una sesin por telnet con la
clave cecab123 con el enrutador se activa, permitiendo acceso de la red 172.16.0.0/16 a la
172.17.0.0/16. Valga la aclaracin que el comando autocommand cierra automticamente la
sesin de telnet pero dispara la acl, es decir, la sesin de telnet es slo un disparador de la acl
y no tiene que quedar activa para que la acl est en funcionamiento.
ACLs reflexivas
Las reflexivas son un tipo de firewall primitivo que permite el trfico slo si es iniciado en una
direccin, pero sin usar las banderas de conexin de TCP. Ya en las ACLs extendidas
habamos visto que en vez de ip se pueden poner otros protocolos y al final poner criterios
adicionales particulares al protocolo en cuestin. Especficamente, tcp permite agregar al final
del identificador de origen o destino un identificador de puerto en incluso banderas de conexin
como established, que indica que la conexin ya se abri. ste caso particular de tcp es muy
til cuando se tienen dos redes de las cuales una es confiable y la otra no, entonces es
preferible permitir slo conexiones cuya solicitud provenga de la red confiable, es decir, que se
abran desde la red interna y no se puedan abrir conexiones desde la externa. Con el truco de la
bandera established (ack activo) se puede permitir de entrada slo los paquetes con sta
condicin, de tal manera que si llegan paquetes solicitando una conexin desde fuera (todava
no tienen el bit ack activo) se rechazan, mientras que si las conexiones se abren desde
adentro, todos los paquetes entrantes debern tener el ack activo y por lo tanto se van a
permitir. Pero qu pasa con UDP y otros protocolo no orientados a la conexin? Pues ah
entran en juego las acl reflexivas. La idea es hacer lo mismo que el truco de established, pero
basndose slo en los parmetros bsicos de capa 3 y 4.
Las acls reflexivas son un poco complejas en su configuracin, ya que se aplican varios
comandos para establecer las entradas temporales, adicionalmente las ACLs reflexivas son un
caso particular de ACL nombrada extendida, por lo tanto no se pueden configurar en acl
numeradas ni en acls nombradas estndar. Primero, en una de las direcciones del trfico se
debe marcar la regla cuyo trfico de vuelta se va a permitir con la palabra clave reflect
<nombre>, donde nombre es un identificador arbitrario que le ponemos a esta instancia, luego
en la direccin de vuelta del trfico (la acl que se va a instalar en la direccin contraria) se
agrega la sentencia evaluate <nombre> donde nombre es el identificador arbitrario que
pusimos en la otra direccin. En otras palabras, se le pone un identificador al trfico que inicia
la acl reflexiva, luego en la otra direccin se le ordena que evale si el trfico corresponde con
la regla marcada para permitirlo si coincide. Finalmente se instalan las listas, una de entrada y
otra de salida en la misma interfaz (el trfico entra y sale por la misma interfaz).
* ip access-list extended OUTB
* permit udp 172.16.0.0 0.0.255.255 any reflect UDPTRAFFIC
* permit icmp 172.16.0.0.0.0.255.255 any reflect ICMPTRAFF
* ip access-list extended INB
* evaluate UDPTRAFFIC
* evaluate ICMPTRAFF
* interface ser 0/0
* ip access-group OUTB out
* ip access-group INB in
El listado anterior instala una lista de acceso reflexiva que permite el trfico de UDP e ICMP
slo si se origin en la red 172.16.0.0/16.
Ejemplos de ACLS
Supongamos la ACL formada por las siguientes 4 reglas:
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
es show ip interface, este comando muestra mucha informacin, por la mitad de toda esa
informacin dice inbound ACL Outbound ACL.
* show access-list
* show ip interface serial 0/0
Configurar ACL extendida
A diferencia de lo que sucede con la ACL estndar, las extendidas permiten especificar hacia
dnde se dirige el trfico y con sta caracterstica, yo puedo bloquear o permitir un trfico
mucho ms especfico: slo trfico que proviene del host pero se dirige a una red en particular
o a otro host en particular o slo el trfico de una red que se dirige a otra red en particular. El
truco se logra con el hecho de permitir comparar las direcciones destino de los paquetes contra
la acl, no slo las direcciones origen. Dentro de lo que hemos venido manejando, hablamos
que una acl est compuesta por un conjunto de reglas todas con el mismo identificador, que
cada regla era una lnea compuesta por una accin y una condicin que el paquete debe
cumplir para aplicarle la accin (permitir o denegar). Las condiciones en las acl estndar estn
compuestas por una direccin de referencia y una wildcard que dice qu bits de la direccin
origen de los paquetes se deben comparar con la direccin de referencia, en las acls
extendidas se especifica dos pares de direcciones de referencia/wildcard, un par para la
direccin origen de los paquetes y otro par para la direccin destino de los mismos. Vamos a
extender el ejemplo que venimos usando y usar sta idea de filtrado ms granular.
El requisito dado es permitir un host de una red, el resto de la red la vamos a bloquear y
cualquier otra red la vamos a permitir. Para extender el ejemplo digamos que queremos
permitir el trfico del host, excepto lo que vaya a un host particular, digamos el 172.16.1.1, y
que de la red completa queremos permitir lo que vaya a un servidor en especial de la empresa,
digamos el 192.168.2.1. Las reglas de la acl estndar nos sirven de inicio, como de costumbre
lo ms especfico lo vamos a poner de primero en la regla para evitar que las reglas ms
generales incluyan a las particulares.
* access-list 100 deny ip 192.168.1.1 0.0.0.0 172.16.1.1 0.0.0.0
* access-list 100 permit ip 192.168.1.1 0.0.0.0 0.0.0.0 255.255.255.255
* access-list 100 permit ip 192.168.1.0 0.0.0.63 192.168.2.1 0.0.0.0
* access-list 100 deny ip 192.168.1.0 0.0.0.63 0.0.0.0 255.255.255.255
* access-list 100 permit ip any any
En sta lista observamos varias cosas nuevas: ip, las acl extendidas no slo permiten
especificar las direcciones origen y destino sino discriminar por protocolos e incluso por
parmetros particulares de cada protocolo pero eso lo veremos luego, por lo pronto lo
importante es que ip indica que todos los protocolos que se encapsulan dentro de ip sern
afectados por sta lista de acceso. En este caso, la palabra ip para los protocolos es similar a
any en las direcciones, casi todo se encapsula en ip por lo tanto especificar ip es como
especificar cualquier protocolo (de capa 4 en adelante). En vez de ip se puede poner un
protocolo equivalente o de capa 4, por ejemplo se puede filtrar icmp, tcp o udp, cambiando la
palabra ip por stas ltimas.
El parmetro established permite respuestas al trfico que se origina desde una red, si se
produce una coincidencia si el datagrama TCP tiene ajustados los bits ACK o reset (RST) que
indican que el paquete pertenece a una conexin existente. Sin el parmetro established en la
sentencia de ACL, los clientes pueden enviar trfico a un servidor Web, pero no lo reciben de
ese servidor.
Otra cosa importante y nueva es un segundo par de direccin de referencia/mscara wildcard,
ste segundo par compara la direccin destino de los paquetes con la direccin de la regla.
Para las acls extendidas, el paquete debe coincidir tanto en la direccin origen como en la
destino.
Finalmente, la direccin de referencia 0.0.0.0 con mscara wildcard 255.255.255.255. Como
esta mscara es todo unos, eso significa que ningn bit del paquete se compara con la
direccin de referencia, es decir, no importa qu escriba en la direccin de referencia cualquier
destino coincide. Esta mscara es lo mismo que any, debido a que la mscara es equivalente a
cualquier direccin y puede usarse tanto para el origen como para el destino.
Explicacin de la ACL
La primera regla aplica deny slo si el paquete tiene como origen la direccin 192.168.1.1 y
direccin destino 172.16.1.1, por lo tanto slo el trfico especfico de entre esos host se
deniega, la segunda regla permite el resto del trfico del host hacia cualquier destino. La
tercera regla permite el trfico de la red 192.168.1.0/26 hacia el host 192.168.2.1. La 4a regla
complementa a la anterior y niega todo el trfico de la red, como sta regla general esta
despus de la especfica, el trfico comparado con sta regla ya no coincidi con el trfico
dirigido al servidor, que es una condicin ms especfica dentro de la misma red. Finalmente
cualquier trfico que no coincida con las reglas anteriores se permite sin importar de dnde
provenga y hacia dnde vaya.
Finalmente y para no dejar incompleto el ejemplo, hay que instalarla en una interfaz por la que
pase el trfico que se quiere interceptar y recordar que el sentido en el que se instala la acl,
indica cules sern las direcciones origen y destino (que se invierten si se invierte el sentido del
trfico).
* interface serial 0/0
* ip access-group 100 in
Las listas de acceso extendidas no difieren de las estndar ms que en las caractersticas
mencionadas, por lo tanto los comandos usados para verificar las estndar siguen siendo
vlidos.
* show ip interface serial 0/0
* show ip access-list
Las acls extendidas son mucho ms eficientes en el filtrado que las acls estndar, pero como
ya he mencionado en otras entradas, las acls son mecanismos de clasificacin de trfico y
direcciones y hay algunas aplicaciones que se corresponden mejor con las acl estndar que
con las extendidas, por lo tanto se siguen usando tanto como las extendidas.
Eliminar ACL
La forma no de este comando elimina la ACL estndar. Para eliminar la ACL, se utiliza el
comando de configuracin global no access-list. La ejecucin del comando show access-list
confirma que la lista de acceso ha sido eliminada.
La palabra clave remark se utiliza para la documentacin y facilita considerablemente la
comprensin de las listas de acceso.
ACL nombrada
Las ACL nombradas tienen una gran ventaja sobre las ACL numeradas porque son ms fciles
de editar. A partir del software IOS de Cisco versin 12.3, las ACL IP nombradas le permiten
borrar entradas individuales en una ACL especfica. Puede usar secuencias de nmeros para
insertar sentencias en cualquier parte de la ACL nombrada. Si utiliza una versin anterior del
software IOS de Cisco, puede agregar sentencias slo al final de la ACL nombrada. Como
puede borrar entradas individuales, puede modificar su ACL sin necesidad de borrar y luego
reconfigurar toda la ACL.
Comentarios en las ACL
Puede usar la palabra clave remark para incluir comentarios (observaciones) sobre entradas en
cualquier ACL IP estndar o extendida. Las observaciones facilitan la comprensin y el anlisis
de la ACL. Cada lnea de observacin est limitada a 100 caracteres.
Editar ACL
Las ACL nombradas tienen una gran ventaja sobre las ACL numeradas porque son ms fciles
de editar. A partir del software IOS de Cisco versin 12.3, las ACL IP nombradas le permiten
borrar entradas individuales en una ACL especfica. Puede usar secuencias de nmeros para
insertar sentencias en cualquier parte de la ACL nombrada. Si utiliza una versin anterior del
software IOS de Cisco, puede agregar sentencias slo al final de la ACL nombrada. Como
puede borrar entradas individuales, puede modificar su ACL sin necesidad de borrar y luego
reconfigurar toda la ACL. Para insertar una lnea basta precederla del numero de orden.