Вы находитесь на странице: 1из 12

Uso de listas de acceso en entornos Cisco

por Antonio Gallego de Torres, autor del libro "Enrutadores Cisco". 2003. Se autoriza la difusin total o parcial siempre que se cite procedencia. LISTAS DE ACCESO. PRESENTACION Los routers Cisco proporcionan varios mtodos de seleccin de trfico. En el presente artculo 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 ms extendidos de las listas de acceso es el de controlar el flujo de trfico entrante y saliente de un router. El presente artculo se divide en dos bloques: una exposicin terica de las listas de acceso (estructura, tipos, formacin de las condiciones que las conforman) y una serie de ejemplos prcticos que aclararn rpidamente 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 nmero que identifica la lista, una instruccin deny o permit y una condicin access-list nmero_identificador [permit|deny] condicin El nmero utilizado para identificar una lista concreta debe ser seleccionado de un rango numrico acorde con el uso concreto de la lista. En la Tabla 1 vemos los principales tipos de listas disponibles. En este artculo nos centraremos especialmente en las listas IP, en sus formas Estndar y Extendida. Tabla 1. Numeracin de las listas de acceso. PROTOCOLO IP IP Ethernet DECnet RANGO FILTRA POR 1-99 y 1300-1999 el origen 100-199 y 2000Extendidas el origen, destino, protocolo, puerto... 2699 Cdigo 200-299 el tipo de cdigo Ethernet (Type) Protocol 300-399 el origen TIPO Estndar

Appletalk Ethernet IPX IPX IPX

Suite Protocol Suite Direcciones Estndar Extendida SAP

600-699 799-799 800-899 900-999 1000-1099

el origen la direccin MAC el origen el origen, destino, protocolo, puerto... tipo de aplicacin (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 nmero_identificador [permit|deny] condicin Mostramos a continuacin 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 versin de Cisco IOS 11.2, y para listas IP, el identificador numrico de la lista puede ser reemplazado por un identificador alfanumrico de hasta 64 caracteres (el primero, obligatoriamente alfabtico). Versiones posteriores de IOS extienden esta caracterstica 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 mscaras que permiten identificar la parte de la direccin que debe coincidir exactamente y la parte que puede ser ignorada Las mscaras de las listas de acceso son distintas a las mscaras de red y subred utilizadas para configurar interfaces o rutas estticas. Concretamente los ceros de las mscaras significan que el bit correspondiente de la direccin es relevante, mientras que los unos significan que el bit correspondiente de la direccin no ha de ser tenido en cuenta a la hora de decidir si la condicin se cumple. A las mscaras de las listas de acceso se les denomina wildcard mask o mscaras comodn. Si tenemos, por ejemplo, la condicin 10.10.10.0 0.0.0.255, al pasar a binario la direccin y la mscara podemos ver qu parte de la direccin ser tenida en cuenta a la hora de determinar si un paquete concreto cumple la condicin (puede usar la calculadora de Windows en modo Cientfico para ayudarse al convertir entre decimal y binario): Tabla 2. Direcciones y Mscaras comodn. Decimal 10.10.10.0 0.0.0.255 Binario 00001010.00001010.00001010.00000000 00000000.00000000.00000000.11111111

Direccin Mscara

Esta condicin 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 direccin 10.10.9.7 no cumple la condicin (el tercer byte de la direccin es distinto en la direccin y en la condicin, y este tercer byte es relevante, tal como se indican los ceros de la mscara para este tercer octeto) pero la direccin 10.10.10.254 si que cumplira las condiciones especificadas por la condicin del ejemplo. Las mscara inversa de las listas de acceso tambin puede ser determinada sustrayendo la mscara normal de la mscara 255.255.255.255. En el ejemplo, la mscara comodn para la red 10.10.10.255 con una mscara normal 255.255.255.0 sera 255.255.255.255 - 255.255.255.0 (normal) = 0.0.0.255 (inversa, comodn) El uso adecuado de las mscaras comodn 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/24 00001010.00000001.00100000.00000000/11111111.11111111.11111111.00000000 10.1.33.0/24 00001010.00000001.00100001.00000000/11111111.11111111.11111111.00000000 10.1.34.0/24 00001010.00000001.00100010.00000000/11111111.11111111.11111111.00000000 10.1.35.0/24 00001010.00000001.00100011.00000000/11111111.11111111.11111111.00000000 10.1.36.0/24 00001010.00000001.00100100.00000000/11111111.11111111.11111111.00000000 10.1.37.0/24 00001010.00000001.00100101.00000000/11111111.11111111.11111111.00000000 10.1.38.0/24 00001010.00000001.00100110.00000000/11111111.11111111.11111111.00000000 10.1.39.0/24 00001010.00000001.00100111.00000000/11111111.11111111.11111111.00000000

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 comn a todas estas direcciones es la que comprende los cinco bits de la derecha (los que ponemos a cero en la ltima fila. La direccin 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 mscara inversa o comodn 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 mscara es en este caso 00000111, y pasado a decimal es 7. Para el conjunto de redes de nuestro ejemplo la mscara 0.0.7.255 es capaz de seleccionar todas las subredes. * * *

Y ahora, cmo se traduce esto en la prctica?

Por si no ha quedado suficientemente claro, la mscara inversa wildcard se calcula wildcard = 255 - Mscara de Subred En definitiva, buscaremos la mscara de red (o subred) que mejor recoja la condicin que queremos especificar y usaremos la frmula anterior o una tabla como la 4 para convertir de la mscara directa (la normal, la que usamos para configurar interfaces o rutas estticas) en una mscara inversa (el complemento de la mscara normal, que ya veremos en alguna otra ocasin como tambin son utilizadas en la configuracin de los protocolos de enrutamiento OSPF y EIGRP) Tabla 4. Transformacin de las mscaras de red en mscaras inversas. La mscara 255 254 252 248 240 224 192 128 0 11111111 11111110 11111100 11111000 11110000 11100000 11000000 10000000 00000000 se transforma en la mscara inversa (wildcard) 0 00000000 1 00000001 3 00000011 7 00000111 15 00001111 31 00011111 63 00111111 127 01111111 255 11111111

Terminaremos presentando dos palabras clave bastante tiles a la hora de especificar ciertas mscaras de uso muy corriente, host y any. La palabra clave host se usa como atajo para especificar una direccin nica (la de una mquina especfica). 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 direccin: access-list 10 deny any

II. APLICACIONES PRACTICAS DE LAS LISTAS DE ACCESO


Basta de teora. A continuacin expondremos unos ejemplos de listas de acceso que demuestran su uso en la prctica. La configuracin 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 deseado) Para muchos de los ejemplos IP usaremos la siguiente red:

Concretamente asignaremos las siguientes direcciones IPs por interfaz: 10.208.60.1/24 eth ---[router A]--- se0 172.35.1.46/30 --WAN LINK-- 172.35.1.45/30 se0 ---[router B]--- se1 172.35.1.49/30 --WAN LINK-- 172.35.1.50/30 se0 ---[router C]--- eth 10.208.48.1/24 CONTROL SENCILLO DE TRAFICO MEDIANTE LISTAS DE ACCESO Queremos filtrar en el router B aquellos paquetes que provienen de las mquinas 10.208.60.10 y 10.208.60.25, pertenecientes a la red local del router A access-list 1 deny 10.208.60.10 0.0.0.0 access-list 1 deny 10.208.60.25 0.0.0.0 access-list 1 permit any La ltima lnea es fundamental, debido a una especial caracterstica de las listas de acceso: siempre aaden de forma automtica una denegacin implcita del total (un deny any), de forma que la lista access-list 1 deny 10.208.60.10 0.0.0.0 access-list 1 deny 10.208.60.25 0.0.0.0 denegara todo. Siempre tiene que haber una condicin permit en una lista (si queremos que deje pasar algo). Por cierto, podemos configurar lo anterior de una forma ms compacta mediante el uso de host: access-list 1 deny host 10.208.60.10 access-list 1 deny host 10.208.60.25 access-list 1 permit any

Vamos a aplicar la lista de acceso 1 en la interfaz serial 0 del router B. Lo haremos "de entrada", esto es, aplicaremos el filtro a los paquetes que cumplan la condicin de la lista de acceso 1 pero slo chequearemos contra esta lista los paquetes que entran al router B por la interfaz serial 0. Para aplicar la lista de acceso se usa la rden accessgroup en la interfaz adecuada: interface serial 0 ip access-group 1 in Dos ideas muy importantes: 1.- Necesitamos al menos una condicin permit para dejar pasar paquetes 2.- Las listas de acceso slo chequean los paquetes que pasan por la interfaz donde estn aplicadas y slo en el sentido en el que estn aplicadas. La lista anterior dejara pasar paquetes con origen en las mquinas 10.208.60.10 y 10.208.60.25 si estos paquetes pasan por cualquier otra interfaz del router en cuelquier sentido, e incluso si pasan por la interfaz serial0 en sentido saliente. Lo de entrante (in) o saliente (out) es siempre desde el punto de vista del router donde se aplica la lista. Antes de continuar con el resto de ejemplo de uso de las listas acceso vamos a ver una serie de indicaciones acerca de su manipulacin prctica MANIPULACION DE LAS LISTAS DE ACCESO Esto se puede leer tambin como "consejos desde la trinchera". Con las listas de acceso se filtra el trfico: los efectos de las listas de acceso en la practica son bastante potentes, y los usuarios que se ven afectados por ellas lo manifestarn sin duda de formas muy claras. Recuerde que si aplica una lista de acceso en una interfaz que le est dando en ese momento a Usted acceso al router (un caso tpico, dado que los routers son equipos de red y generalmente se gestionan de forma remota) se la "est jugando": es muy fcil crear una lista de acceso que filtre ms de la cuenta, u olvidarse de dar paso a los paquetes con origen la red local desde la que gestiona el equipo. Nada ms aplicar la lista el router le echar. Cuando le pase no se lo tome a mal, ms bien sintase parte de la corporacin: quedarse sin gestin de un equipo en red forma parte del folklore. La situacin tiene varios remedios que se me ocurran de primeras: reload, reset y loopback: Puede llamar a la delegacin remota y pedir que reinicien el router (Manolo de seguridad puede darle sin problemas el botonazo al "vdeo oscuro" del rack de la sala de comunicaciones). Quedar con la configuracin que tena la ltima vez que se grab con write o con copy running startup. Por supuesto habr perdido las ltimas configuraciones realizadas. Una segunda alternativa es el uso de la orden de IOS reload in o reload at, por ejemplo reload in 5 (que reinicia el router a los 5 minutos) o reload at 22:15 (que reinicia el equipo a la hora especificada). Programe un reload, haga sus cambios y cancele el reinicio con reload cancel. El router le avisar un minuto antes del reinicio. Puede ver como anda de tiempo con show reload. Consulte la documentacin de su versin de IOS

para ver ms detalles sobre el uso de esta instruccin. La tercera va es algo ms sofisticada. Sin entrar en muchos detalles, sabiendo la lista configurada, puede crear una interfaz virtual (loopback interface) con una direccin de las que permite la lista de acceso (porque... puso un permit, no?) y hacer un telnet extendido (telnet ip_router /source-interface loopback_nmero). En prximos artculos abordar este tipo de tcnicas. En general, es mejor escribir las listas en un editor de texto tipo vi o notepad y copiar/pegar las configuraciones en el router. Esto es por varias razones, siendo una de las ms importantes que al borrar una lnea (una condicin) de una lista de acceso, borramos la lista entera (y mucho ojo, porque la lista, aunque inexistente, sigue aplicada en la interfaz, lnea o dnde sea que la estemos usando). Osea, que si configuro access-list 1 deny host 10.208.60.10 access-list 1 deny host 10.208.60.25 access-list 1 permit any y me doy cuenta de que no quiero filtrar a Juan de contabilidad 10.208.60.10 sino a Julio de recursos humanos 10.208.60.12, voy y configuro no access-list 1 deny host 10.208.60.10 access-list 1 deny host 10.208.60.12 y ah comienzan los problemas, por que la lista de acceso 1 queda access-list 1 deny host 10.208.60.12 con un deny any implicito a continuacin, lo que no es exactamente lo que tenamos pensado (no access-list 1 deny 10.208.60.10 equivale a no access-list 1 que equivale a borrar la lista entera). Antes de hacer cambios: A. Desaplique la lista de donde est en uso (evidentemente, esto slo es de apliacin si la lista ya est en uso) B. Cree la lista con un editor de texto y copiela en el router una vez creada C. Aplique (o vuelva a aplicar) la lista en la interfaz, lnea o proceso donde tenga pensado usarla. Pero crame, da igual lo que yo le diga: hasta que no lo experimente Ud. mismo no ver porqu hay que hacerlo de esta manera. OTRAS POSIBILIDADES DE LAS LISTAS DE ACCESO Podemos realizar un filtrado extendido, por ejemplo para dejar pasar los paquetes con origen en la LAN del router A hostname RouterB !

interface ethernet0 ip accessgroup 101 in ! accesslist 101 permit ip 10.208.60.0 0.0.0.255 10.208.48.0 0.0.0.255 Con la orden show line puede ver las lneas de acceso al router, tales como las lneas virtuales (VTY), el puerto de consola (CON), el puerto Auxiliar (AUX) y las lneas Asncronas (ASYNC). Podemos filtrar todas estas lneas y puertos por medio de la instruccin access-class. La siguiente lista permite el acceso por los cinco terminales virtuales (del 0 al 4) a aquellas mquinas que tengan por origen la LAN de A accesslist 20 permit 10.208.60.0 0.0.0.255 accesslist 20 deny any ! line vty 0 4 access-class 20 in login Si queremos filtar el acceso Telnet (puerto 23) al routerC: hostname RouterC ! interface serial0 ip accessgroup 105 in ! accesslist 105 deny tcp any any eq 23 accesslist 105 permit ip any any Digamos que queremos dejar navegar por internet , hacer telnet y el correo: hostname RouterB ! interface Serial0 ip accessgroup 120 in ! accesslist 120 permit tcp any any eq www accesslist 120 permit tcp any any eq telnet accesslist 120 permit tcp any any eq smtp accesslist 120 permit tcp any any pop3 Una lista como la anterior no dejara pasar el trfico ftp, por ejemplo. A veces podemos ser vctimas de un ataque de denegacin de servicio distribuido. Podemos ser inundados con peticiones ping (ICMP) de muy diversos origenes. Probemos con hostname RouterC ! interface serial0 ip accessgroup 130 in ! accesslist 130 deny icmp any any

accesslist 130 permit ip any any Un uso muy interesante es el de la instruccin log, si ponemos accesslist 130 deny icmp any any log accesslist 130 permit ip any any Quedarn registrados en el log del router (show logg) todos los origenes y destinos de los paquetes que encajan con la condicin. Podemos convertir el router en un analizador de trfico con un par de instrucciones: hostname RouterB ! interface serial0 ip accessgroup 140 in ip accessgroup 150 out ! accesslist 140 permit ip any any log accesslist 150 permit ip any any log Este era el mecanismo usado en el artculo sobre ping para ver el origen y destino de los paquetes. Ms ejemplos: con listas de acceso horarias podemos controlar el uso de determinados servicios en funcin de la hora time-range bloquear-internet periodic weekdays 8:30 to 17:45 ! accesslist 150 deny any any eq www time-range bloquear-internet accesslist 150 permit any any ! interface ethernet0 ip accessgroup 150 in Vaya, quizs un poco excesivo... Veamos ms usos: A veces queremos que en funcin del origen los paquetes vayan por una ruta (es distinto a usar rutas estticas, porque estas miran el destino, no el origen de los paquetes) Puede hacerse? Si. Cmo? access-list 120 permit ip 10.208.60.0 0.0.0.255 any ! route-map AL_FIREWALL permit 10 match ip address 120 set ip next-hop 10.208.48.15 ! interface serial 0 ip policy route-map AL_FIREWALL Las listas de acceso sirven tambin para especificar el trfico interesante capaz de lanzar

una llamada bajo demanda tipo RDSI, por ejemplo interface Dialer1 dialer-group 1 ! dialer-list 1 protocol ip list 8 La instruccin dialer-group 1 conecta con la orden dialer-list 1, que en nuestro caso permite lanzar aquellas llamadas que cumplan con la condicin expresada en la lista de acceso 8 Otra interesante aplicacin es el uso de listas de acceso en la redistribucin de rutas entre protocolos de enrutamiento. Por ejemplo, la siguiente configuracin propagar junto con los anuncios de enrutamiento EIGRP las rutas estticas configuradas en el router que encajen con la condicin expresada en la lista de acceso 10: router eigrp 1 redistribute static route-map filtro ! route-map filtro permit 10 match ip address 10 Sobre el protocolo de traduccin de direcciones NAT (Network Address Translation) se podra escribir un libro entero. Es mi intencin abordarlo de forma especfica en prximos artculos, pero de momento veamos como mediante el uso de listas de acceso se especifica el origen de los paquetes a traducir, en nuestro ejemplo se procesarn mediante NAT los paquetes que encajen con la lista de acceso 9, y sern traducidos a una direccin del pool denominado TRADUCCION (que consta de una nica direccin "pblica", la IP 152.24.58.254): ip nat pool TRADUCCION 152.24.58.254 152.24.58.254 netmask 255.255.255.0 ip nat inside source list 9 pool TRADUCCION ! interface ethernet 0 ip nat inside ! interface serial 0 ip nat outside Otras aplicaciones interesantes de las listas de acceso son la priorizacin por protocolo, el uso ajustado de la orden debug y el filtrado dinmico (con estado) de sesiones. Veremos en prximos artculos algunos de estos usos. RESUMEN Las listas de acceso son el mecanismo por excelencia para seleccionar trfico. Una vez que un conjunto de paquetes ha sido seleccionado el router puede realizar diversas tareas sobre ellos. Uno de los usos ms extendidos de las listas de acceso es el de controlar el flujo de trfico entrante y saliente de un router, pero hemos visto otras muchas aplicaciones prcticas. El proceso de configuracin de listas de acceso consta de

dos pasos generales, la creacin de la lista de acceso en s y su aplicacin en la interfaz correspondiente (o, de forma ms general, en el proceso deseado). Hay que tomar unas precauciones generales a la hora de aplicar listas de acceso. Hemos mencionado tres mecanismos para prvenir o corregir los problemas derivados de una mala configuracin, recuerde: reload, reset y loopback

Вам также может понравиться