Actualizado el 10 de Noviembre del 2018 (Publicado el 6 de Noviembre del 2018)
790 visualizaciones desde el 6 de Noviembre del 2018
165,7 KB
12 paginas
Creado hace 21a (31/12/2002)
Uso de listas de acceso en entornos Cisco
por Antonio Gallego de Torres, autor del libro "Enrutadores Cisco". © 2003. Se autoriza
la difusión total o parcial siempre que se cite procedencia.
LISTAS DE ACCESO. PRESENTACION
Los routers Cisco proporcionan varios métodos de selección de tráfico. En el presente
artículo exploraremos las posibilidades de las listas de acceso. Las listas de acceso son
conjuntos de reglas que indican al router como seleccionar paquetes. Una vez
seleccionados los paquetes pueden ser tratados de diversas formas. Uno de los usos más
extendidos de las listas de acceso es el de controlar el flujo de tráfico entrante y saliente
de un router.
El presente artículo se divide en dos bloques: una exposición teórica de las listas de
acceso (estructura, tipos, formación de las condiciones que las conforman) y una serie
de ejemplos prácticos que aclararán rápidamente todos los conceptos establecidos en la
primera parte.
I. TEORIA DE LAS LISTAS DE ACCESO
LISTAS DE ACCESO. ESTRUCTURA BASICA
Las reglas que componen las listas de acceso tienen tres partes: un número que
identifica la lista, una instrucción deny o permit y una condición
access-list número_identificador [permit|deny] condición
El número utilizado para identificar una lista concreta debe ser seleccionado de un
rango numérico acorde con el uso concreto de la lista. En la Tabla 1 vemos los
principales tipos de listas disponibles. En este artículo nos centraremos especialmente
en las listas IP, en sus formas Estándar y Extendida.
Tabla 1. Numeración de las listas de acceso.
PROTOCOLO
IP
IP
Ethernet
TIPO
Estándar
Extendidas
Código
(Type)
RANGO
1-99 y 1300-1999
100-199 y 2000-
2699
FILTRA POR
el origen
el origen, destino, protocolo, puerto...
200-299
el tipo de código Ethernet
DECnet
Appletalk
Ethernet
IPX
IPX
IPX
Protocol
Suite
Protocol
Suite
Direcciones
Estándar
Extendida
300-399
600-699
799-799
800-899
900-999
SAP
1000-1099
el origen
el origen
la dirección MAC
el origen
el origen, destino, protocolo, puerto...
tipo de aplicación (SAP, Service
Access Point)
SINTAXIS DE LAS LISTAS DE ACCESO
Ya hemos visto la sintaxis general de las listas de acceso (Standar ACLs):
access-list número_identificador [permit|deny] condición
Mostramos a continuación la sintaxis de las listas de acceso extendidas (extended
ACLs):
Para el protocolo IP:
access-list access-list-number [dynamic dynamic-name [timeout minutes]]
{deny | permit} protocol source source-wildcard destination destination-wildcard
[precedence precedence] [tos tos] [log | log-input] [time-range time-range-name]
Para el protocolo ICMP:
access-list access-list-number [dynamic dynamic-name [timeout minutes]]
{deny | permit} icmp source source-wildcard destination destination-wildcard
[icmp-type | [[icmp-type icmp-code] | [icmp-message]] [precedenceprecedence]
[tos tos] [log | log-input] [time-range time-range-name]
Para el protocolo TCP:
access-list access-list-number [dynamic dynamic-name [timeout minutes]]
{deny | permit} tcp source source-wildcard [operator [port]]
destination destination-wildcard [operator [port]] [established]
[precedence precedence] [tos tos] [log | log-input] [time-range time-range-name]
Para el protocolo UDP:
access-list access-list-number [dynamic dynamic-name [timeout minutes]]
{deny | permit} udp source source-wildcard [operator [port]]
destination destination-wildcard [operator [port]] [precedence precedence]
[tos tos] [log | log-input] [time-range time-range-name]
Desde la versión de Cisco IOS 11.2, y para listas IP, el identificador numérico de la lista
puede ser reemplazado por un identificador alfanumérico de hasta 64 caracteres (el
primero, obligatoriamente alfabético). Versiones posteriores de IOS extienden esta
característica al protocolo IPX. A este tipo de listas se les llama "Listas de acceso con
nombre" (Named ACLs) y su forma es la siguiente:
ip access-list [standar|extended] nombre condicion
ESPECIFICACION DE CONDICIONES
Las condiciones de las listas de acceso permiten identificar las direcciones de origen y
destino de los paquetes. Junto con las direcciones se especifican máscaras que permiten
identificar la parte de la dirección que debe coincidir exactamente y la parte que puede
ser ignorada
Las máscaras de las listas de acceso son distintas a las máscaras de red y subred
utilizadas para configurar interfaces o rutas estáticas. Concretamente los ceros de las
máscaras significan que el bit correspondiente de la dirección es relevante, mientras que
los unos significan que el bit correspondiente de la dirección no ha de ser tenido en
cuenta a la hora de decidir si la condición se cumple. A las máscaras de las listas de
acceso se les denomina wildcard mask o máscaras comodín.
Si tenemos, por ejemplo, la condición 10.10.10.0 0.0.0.255, al pasar a binario la
dirección y la máscara podemos ver qué parte de la dirección será tenida en cuenta a la
hora de determinar si un paquete concreto cumple la condición (puede usar la
calculadora de Windows en modo Científico para ayudarse al convertir entre decimal y
binario):
Tabla 2. Direcciones y Máscaras comodín.
Dirección
Máscara
Decimal
10.10.10.0
0.0.0.255
Binario
00001010.00001010.00001010.00000000
00000000.00000000.00000000.11111111
Esta condición selecciona las direcciones que comprenden desde la 10.10.10.0 hasta la
10.10.10.255, o dicho de otra forma las direcciones de la forma 10.10.10.x. Por ejemplo
la dirección 10.10.9.7 no cumple la condición (el tercer byte de la dirección es distinto
en la dirección y en la condición, y este tercer byte es relevante, tal como se indican los
ceros de la máscara para este tercer octeto) pero la dirección 10.10.10.254 si que
cumpliría las condiciones especificadas por la condición del ejemplo.
Las máscara inversa de las listas de acceso también puede ser determinada sustrayendo
la máscara normal de la máscara 255.255.255.255. En el ejemplo, la máscara comodín
para la red 10.10.10.255 con una máscara normal 255.255.255.0 sería 255.255.255.255
- 255.255.255.0 (normal) = 0.0.0.255 (inversa, comodín)
El uso adecuado de las máscaras comodín puede ayudarnos a seleccionar subconjuntos
de direcciones. En el siguiente ejemplo queremos crear una lista de acceso capaz de
seleccionar las redes
Tabla 3. Sumarizando subredes.
10.1.32.0/2
4
10.1.33.0/2
4
10.1.34.0/2
4
10.1.35.0/2
4
10.1.36.0/2
4
10.1.37.0/2
4
10.1.38.0/2
4
10.1.39.0/2
4
00001010.00000001.00100000.00000000/11111111.11111111.11111111.00
000000
00001010.00000001.00100001.00000000/11111111.11111111.11111111.00
000000
00001010.00000001.00100010.00000000/11111111.11111111.11111111.00
000000
00001010.00000001.00100011.00000000/11111111.11111111.11111111.00
000000
00001010.00000001.00100100.00000000/11111111.11111111.11111111.00
000000
00001010.00000001.00100101.00000000/11111111.11111111.11111111.00
000000
00001010.00000001.00100110.00000000/11111111.11111111.11111111.00
000000
00001010.00000001.00100111.00000000/11111111.11111111.11111111.00
000000
Está claro que la diferencia radica en el tercer octeto. Si examinamos la columna
correspondiente al mismo en su forma binaria, separando las partes variables de las fijas
32
33
34
35
36
37
38
39
00100 000
00100 001
00100 010
00100 011
00100 100
00100 101
00100 110
00100 111
00000 111
podemos observar que la parte común a todas estas direcciones es la que comprende los
cinco bits de la derecha (los que ponemos a cero en la última fila. La dirección de red
que comprende las subredes del ejemplo será en binario
00001010.00000001.00100000.00000000 (usando para construirla los bits comunes a
todas las subredes y el resto a cero). Construiremos la máscara inversa o comodín
usando ceros para la parte que queremos seleccionar y unos para la que nos es
indiferente que cambie:
00001010.00000001.00100000.00000000
00000000.00000000.00000111.11111111
El valor del tercer octeto de la máscara es en este caso 00000111, y pasado a decimal es
7. Para el conjunto de redes de nuestro ejemplo la máscara 0.0.7.255 es capaz de
seleccionar todas las subredes.
Y ahora, ¿cómo se traduce esto en la práctica?
* * *
Por si no ha quedado suficientemente claro, la máscara inversa wildcard se calcula
wildcard = 255 - Máscara de Subred
En definitiva, buscaremos la máscara de red (o subred) que mejor recoja la condición
que queremos especificar y usaremos la fórmula anterior o una tabla como la 4 para
convertir de la máscara directa (la normal, la que usamos para configurar interfaces o
rutas estáticas) en una máscara inversa (el complemento de la máscara normal, que ya
veremos en alguna otra ocasión como también son utilizadas en la configuración de los
protocolos de enrutamiento OSPF y EIGRP)
Tabla 4. Transformación de las máscaras de red en máscaras inversas.
La máscara
255
254
252
248
240
224
192
128
0
11111111
11111110
11111100
11111000
11110000
11100000
11000000
10000000
00000000
se transforma en la máscara inversa
(wildcard)
00000000
0
00000001
1
00000011
3
00000111
7
00001111
15
00011111
31
63
00111111
127 01111111
255 11111111
Terminaremos presentando dos palabras clave bastante útiles a la hora de especificar
ciertas máscaras de uso muy corriente, host y any.
La palabra clave host se usa como atajo para especificar una dirección única (la de una
máquina específica). Por ejemplo
access-list permit host 192.168.5.10
en lugar de
access-list permit 192.168.5.10 0.0.0.0
La palabra clave any se usa como atajo para especificar cualquier dirección:
access-list 10 deny any
II. APLICACIONES PRACTICAS DE LAS LISTAS DE
ACCESO
Basta de teoría. A continuación expondremos unos ejemplos de listas de acceso que
demuestran su uso en la práctica. La configuración de listas de acceso consta de dos dos
pasos:
1.- Crear la lista de acceso
2.- Aplicarla en la interfaz correspondiente (o, en general, utilizarla en el proceso
Comentarios de: Uso de listas de acceso en entornos Cisco (0)
No hay comentarios