Los criterios de comparación de las reglas se basan en los campos de datos de los
encabezados IP, TCP y UDP, tales como:
Las acciones que pueden aplicarse sobre los paquetes de datos son básicamente dos:
permitir el pasaje del paquete o no permitirlo, en función de que se cumpla o no la condición a
evaluar.
Una Lista de Control de Acceso puede estar formada por una o varias reglas y la lógica de
su funcionamiento es la siguiente. Cuando llega un paquete de datos a la interfaz del router
sobre la que se aplicó la lista, IOS toma la primera regla de la lista y aplica el criterio de
comparación. Si el criterio se verifica, entonces se ejecuta la acción definida para esa regla y el
resto de las reglas de la lista se ignoran. Si el criterio de comparación no se verifica, entonces
IOS toma la segunda regla y aplica el criterio de comparación. Si para esta segunda regla el
criterio se verifica, se ejecuta la acción correspondiente y si no se verifica, se toma la tercera
regla y así sucesivamente. Si luego de ejecutadas todas las reglas, el paquete de datos no verifica
ninguno de los criterios, entonces el paquete se descarta.
Esto último implica que cada Lista de Control de Acceso tiene, como última regla y de
manera implícita, una regla que descarta los paquetes de datos que no cumplan con ninguna de
las reglas anteriores de la lista.
Por otra parte, cuando una regla se verifica, el resto de las reglas de la lista se ignoran. En
consecuencia, el orden en que se establezcan las reglas en una lista es muy importante puesto
que, si por ejemplo, la primera regla es tal que todos los paquetes de datos la verifican y la
acción definida en la misma es descartarlos, entonces se estará bloqueando todo el tráfico.
Para establecer una Lista de Control de Acceso se deben seguir básicamente dos pasos:
ORT 149
Capítulo 13 Listas de Control de Acceso
Para aplicar una Lista de Control de Acceso a una interface del router, el formato general
es el siguiente:
Cuando se utiliza la palabra clave in, el paquete de datos ingresa al router por la interface
y luego se le aplican las reglas de la lista asociada a esa interface. En cambio, cuando se utiliza la
palabra clave out, las reglas de la lista de aplican antes de que el paquete de datos vaya a ser
transmitido hacia afuera por la interface.
• Solo puede asignarse una lista de control de acceso por interface, protocolo y dirección
de tráfico.
• Cuando se agrega una regla a una lista, la regla se ubica al final de la misma. Si se
quiere agregar una regla en otra posición, es necesario editar la lista completa, es
decir, crearla nuevamente ingresando todas las reglas en el orden deseado.
• Las Listas de Control de Acceso se implementan para filtrar el tráfico que pasa a
través del router y no para filtrar paquetes de datos originados por el propio router.
IOS permite definir dos clases de Listas de Control de Acceso para IP: estándares y
extendidas. Las Listas de Control de Acceso estándares se identifican por un número de 1 a 99 y
la condición de cada regla es tal que permite exclusivamente verificar toda o parte de la
dirección IP de origen del datagrama.
150 ORT
Listas de Control de Acceso Capítulo 13
Por su parte, las Listas de Control de Acceso extendidas son más flexibles, se identifican
por un número de 100 a 199 y en la condición de cada regla se pueden especificar otros
parámetros, tales como la dirección IP de destino del datagrama, el tipo de protocolo y los
números de puerto de origen y de destino, entre otros.
Veamos a continuación algunos ejemplos de máscaras comodín para aclarar el uso de las
mismas:
En decimal En binario
Máscara comodín 0.0.0.0 00000000.00000000.0000000.00000000
La dirección IP entera debe coincidir, es decir, deben
Comentario
examinarse los 32 bits en busca de una coincidencia
Máscara comodín 0.0.0.255 00000000.00000000.00000000.11111111
Solamente los primeros 24 bits de la dirección IP deben
Comentario coincidir, es decir, solo deben examinarse los primeros 24 bits
en busca de una coincidencia.
Máscara comodín 0.0.15.255 00000000.00000000.00001111.11111111
Solamente los primeros 20 bits de la dirección IP deben
Comentario coincidir, es decir, solo deben examinarse los primeros 20 bits
en busca de una coincidencia.
Ejemplos de Aplicación
Volvamos ahora a nuestra interred del Capítulo 8 y establezcamos algunas Listas de
Control de Acceso para limitar el tráfico en la misma. La interred del capítulo 8 se reproduce
abajo en la figuna 13-1.
Vamos, en primer lugar, a filtrar todo el tráfico originado en la red local LAN 3 y
destinado a la red local LAN 1. Puesto que para llegar a los hosts de la LAN 1, este tráfico debe
pasar por el router A, debemos definir la lista en router A y luego aplicarla a alguna de sus
interfaces.
ORT 151
Capítulo 13 Listas de Control de Acceso
LAN 2
FastEthernet 0/0
FastEthernet 0/0
WAN 1 WAN 2
LAN 1 LAN 3
Fig. 13 - 1
RouterA(config)# access-list ?
<1-99> IP standard access list
<100-199> IP extended access list
<1000-1099> IPX SAP access list
<1100-1199> Extended 48-bit MAC address access list
<1200-1299> IPX summary address access list
<200-299> Protocol type-code access list
<300-399> DECnet access list
<400-499> XNS standard access list
<500-599> XNS extended access list
<600-699> Appletalk access list
<700-799> 48-bit MAC address access list
<800-899> IPX standard access list
<900-999> IPX extended access list
routerA(config)# access-list
Puesto que vamos a definir una lista estándar, su número de identificación debe estar
entre 1 y 99; elijamos el 10 y continuemos solicitando ayuda:
RouterA(config)# access-list 10 ?
deny Specify packets to reject
permit Specify packets to forward
routrA(config)# access-list 10
152 ORT
Listas de Control de Acceso Capítulo 13
Puesto que lo que queremos es bloquear tráfico, indicamos la palabra clave deny y
continuamos con la ayuda:
Aquí tenemos tres opciones: especificar una dirección IP para indicar o hacer coincidir
una red o un host específico, utilizar la palabra clave any para permitir o denegar cualquier
host o utilizar la palabra clave host para indicar un host en particular. Utilicemos la primera
opción:
Ahora que la lista ha sido definida, debemos aplicarla a una de las interfaces del router.
Tenemos varias opciones para hacer esto, alguna mejor que las otras. En principio, lo más lógico
parece ser aplicar la regla a la interfaz serial 0/1 del router A puesto que los datagramas
que se originen en la LAN 3 llegan a este router a través del enlace WAN 3. De este modo, serán
rechazados antes de ingresar al router. Entonces:
De este modo, cuando un datagrama llegue al router por la interfaz serial 1, IOS aplicará
la regla de la lista y si el criterio de comparación se cumple, se descartará el datagrama. Sin
embargo, aquí podemos tener un problema. Si el enlace WAN 3 sale de funcionamiento, el
router C tendrá un camino alternativo para hacer llegar los datagramas a la LAN 1. Este camino
será a través del router B. Recordemos que sobre el final del Capítulo 9 dejamos funcionando un
protocolo de encaminamiento dinámico en los tres routers de la interred y también vimos en ese
capítulo que ocurre con las tablas de encaminamiento de los mismos cuando se quita este
enlace.
ORT 153
Capítulo 13 Listas de Control de Acceso
En la situación potencial de que el enlace WAN 3 esté fuera de servicio, los datagramas se
encaminarán a través del enlace WAN 2, pasarán por el router B, seguirán su camino por el
enlace WAN 1 e ingresarán al router A por su interfaz serial 0/0. Sin embargo, nosotros
aplicamos la Lista de Control de Acceso a la interfaz serial 0/1, de modo que a los
datagramas que ingresen por aquella interface no se les aplicará la regla y en consecuencia no
será filtrados.
Lo que queremos lograr es bloquear el tráfico desde LAN 3 a LAN 1, independientemente
del camino que los datagramas hayan recorrido. Una alternativa es aplicar la misma Lista de
Control de Acceso también a la interfaz serial 0/0 del router A, de modo que los
datagramas que lleguen a este router por esa interfaz sean filtrados también antes de ingresar al
mismo. Ahora bein; sin importar por dónde ingresen los datagramas al router A, para que los
mismos lleguen a la LAN 1 deben indefectiblemente salir por la interfaz fastethernet 0/0
que es la que conecta el router a esa red local. Entonces, como segunda alternativa tenemos que,
en lugar de aplicar el filtro a los datagramas que llegan al router por sus interfaces seriales,
podemos aplicarlo a los datagramas que vayan a salir por la interfaz Ethernet. Si bien es
preferible la primera alternativa (pues filtra los datagramas antes de que ingresen al router),
vamos aplicar la segunda para ejercitar el comando que permite remover una lista de control
de acceso de una interfaz.
Quitemos entonces la lista de la interfaz serial 0/1 y apliquémosla a la interfaz
fastethernet 0/0. Para quitar una Lista de Control de Acceso de una interfaz se utiliza la
forma “no” del comando que permite aplicarla, es decir, no ip access-group:
Bien; de este modo hemos resuelto el problema potencial de la caída del enlace WAN 3.
Sin embargo, las cosas no están mejores que antes y el problema está en la forma en que hemos
definido nuestra Lista de Control de Acceso y en su lógica de funcionamiento.
La pregunta es: ¿qué ocurrirá con los datagramas destinados a la LAN 1 pero originados
en hosts de la LAN 2?
Mencionamos anteriormente que si un datagrama cumple con la condición de alguna de
las reglas de la lista, se le aplicará la acción correspondiente que, en nuestro caso, es denegar el
pasaje del mismo. Y también mencionamos que todas las listas tienen como última regla
implícita denegar el pasaje de los paquetes que no cumplan con ninguna de las reglas
anteriores. Los datagramas originados en la LAN 2 no cumplirán con la regla definida puesto
que su dirección IP de origen no estará en la red 197.168.100.0 y, en consecuencia, serán
bloqueados por esa última regla implícita.
A nuestra lista le está faltando, entonces, una segunda regla (usualmente ubicada en el
último lugar) que permita el pasaje de todos los demás datagramas, es decir, de aquellos que no
154 ORT
Listas de Control de Acceso Capítulo 13
cumplan con la condición de la primera regla. Agreguemos entonces a la lista una segunda
regla que permita esto.
Veamos como ha quedado ahora nuestra Lista de Control de Acceso; para esto utilizamos
el comando de modo Privilegiado show access-list:
La nueva regla ha quedado en segundo lugar, que es precisamente donde queremos que
esté. Recordemos que cuando se agrega una regla a una lista, la regla se ubica al final de la
misma.
Nuestra lista va a funcionar, ahora, de la siguiente manera. Cuando llega al router un
datagrama no destinado a él mismo, el proceso de encaminamiento de IOS determinará hacia
dónde debe reencaminarlo. Si el caso es que el datagrama está destinado a la red LAN 1,
entonces IOS sabe que debe retransmitirlo hacia fuera por su interfaz Ethernet 0. Como esta
interfaz tiene aplicada una Lista de Control de Acceso, IOS aplicará al datagrama las reglas de
la lista en el orden en que éstas están establecidas. Tomará entonces la primera regla (la que dice
deny) y si se cumple su condición, descartará el datagrama y no lo reenviará por la interfaz.
Esto ocurrirá con cada datagrama cuya dirección IP de origen comience con 197.168.100.
Si esta condición no se cumple, aplicará entonces la segunda regla cuya condición
establece que se permita (permit) el pasaje de datagramas con cualquiera (any) dirección IP de
origen. Esta condición será cumplida por todos los datagramas que no hayan sido bloqueados
por la primera regla, es decir que se hayan originado en una red distinta a la 197.168.100.0.
Nuestra lista está ahora bien diseñada y aplicada a la interfaz más adecuada para su
correcto funcionamiento. La interfaz más adecuada ha sido, en este caso, la que está “más cerca”
del destino de los datagramas que se quieren bloquear. Este último comentario constituye, en
realidad, una regla general a tener en cuenta al momento de implementar una Lista de Control
de Acceso estándar, es decir, aplicar las listas estándares lo más cerca posible del destino.
ORT 155
Capítulo 13 Listas de Control de Acceso
La estructura de una lista extendida es más compleja que la de una lista estándar. El
formato general de una lista extendida es:
Router(config)# access-list ?
<1-99> IP standard access list
<100-199> IP extended access list
... [texto omitido]
Puesto que vamos a definir una Lista de Control de Acceso extendida, su número de
identificación debe estar comprendido entre 100 y 199. Elijamos el 110 para identificarla y
continuemos utilizando la ayuda para ver el parámetro acción:
La regla que vamos a crear es para denegar tráfico. Utilicemos entonces la palabra clave
deny y pasemos al parámetro protocolo:
156 ORT
Listas de Control de Acceso Capítulo 13
Debemos indicar entonces el protocolo de capa de Transporte que la regla debe verificar.
Puesto que el protocolo HTTP utilizado por el servidor de páginas web utiliza TCP como
protocolo de Transporte, indiquemos la palabra clave tcp y pasemos al parámetro origen:
Puesto que vamos a bloquear el tráfico proveniente desde cualquier host, seleccionemos la
palabra clave any y pasemos al parámetro destino:
Puesto que estamos interesados en filtrar solo el tráfico dirigido a un puerto TCP en
particular, indicamos la palabra clave eq (equal, es decir, igual) para indicar el operador de
comparación:
ORT 157
Capítulo 13 Listas de Control de Acceso
Para indicar el puerto TCP de destino de los paquetes a filtrar podemos indicar su número
o la palabra clave que lo representa. En nuestro caso, el número de puerto es 80 o la palabra
clave es www:
La última palabra clave en el comando anterior, log, es para indicarle a IOS que registre
información sobre los paquetes que verificaron la regla y que, por lo tanto, fueron bloqueados.
especificar las palabras claves standard o extended según quiera crearse una lista estándar o
una extendida.
Tomemos como ejemplo la lista de control de acceso extendida que creamos
anteriormente y veamos cómo es el procedimiento para crear y aplicar una lista con nombre:
Para aplicar la lista anterior a una interface del router se utiliza el comando de submodo
de Configuración de Interfaz ip access-group que hemos utilizado anteriormente pero, en
lugar de especificar un número de lista, se debe especificar su nombre.
ORT 159
160 ORT