lunes, 19 de diciembre de 2011

Access list Standard y extendidas: Filtrando en un router/firewall cisco

Las ACL son posiblemente el mecanismo mas sencillo para filtrar tráfico del que disponemos en un equipo de red.

Este es el primero de una serie de artículos en los que se tratarán los diversos tipos de ACL, desde los tipos mas sencillos, hasta funciones mas avanzadas.

Una ACL simplemente es un filtro en el que se especificará una lista del tráfico que se deja pasar y se deniega en una serie de tarjetas. 



A la hora de crear access list lo primero que debemos tener en cuenta es, que tan solo se puede especificar una access list para entrada, y otra para salida en la misma interfaz, el numero de lineas de la ACL es ilimitado. De la mano de esto podemos decir que una misma ACL se puede aplicar a múltiples interfaces, no hace falta crear una ACL por interfaz.

También hay que tener en cuenta que las ACL se evalúan de manera secuencial, si un tráfico esta afectado por un permit o un deny en una ACL en la linea número 1, no seguirá leyendo la ACL, el tráficos será denegado o permitido. Por ello es importante en las ACL establecer las sentencias mas específicas al inicio de la ACL, y las secuencias mas generales al final de la ACL, sin olvidar que por defecto toda ACL lleva implícito un deniega todo el tráfico en la última linea.

Las máscaras que se utilizan en las ACL son máscaras de Wildcard, que son inversas a las máscaras de red, para leer un poco sobre wildcard dejo este enlace.

Por último, las listas de acceso están identificadas con un número de lista de acceso, según el número de  la lista, esta lista será de un tipo u otro, a continuación la tabla de rangos disponibles para cada tipo de ACL:

1 99 IP standard access lists
100 199 IP extended access lists
200 299 Protocol type-code access lists
300 399 DECnet standard access lists
400 499 XNS standard access lists
500 599 XNS extended access lists
600 699 AppleTalk cable range access lists
700 799 MAC address access lists
800 899 Novell IPX standard access lists
900 999 Novell IPX extended access lists
1000 1099 Novell IPX SAP access lists
1100 1199 MAC address access lists (extended range)
1200 1299 Novell IPX NLSP access lists
1300 1999 IP standard access lists (extended range)
2000 2699 IP extended access lists (extended range)

En este artículo en concreto vamos a tratar dos tipos de ACL , la standard y las extendidas, que son las identificadas por los dos primeros rangos, con el tiempo se añadieron los dos últimos rango ya que a veces podemos necesitar mas de 100 listas de acceso diferentes en un equipo.

Listas de acceso standard:

Las listas de acceso standard permiten filtrar el tráfico en función del origen del paquete.

access-list <Numero_de_ACL> <deny/permit> <red_origen> <mascara_origen>
Numero de ACL: Es el número que identifica a la ACL, y todas las lineas de ACL que incluyan ese número formaran parte de la ACL.

Permit/deny: como os podeis imaginar es si queremos dejar pasar el tráfico o lo queremos filtrar.

Red origen y mascará de origen: El tráfico que queremos filtar. Se puede utilizar la sentencia host si solo queremos afectar a una única IP, como veremos en el siguiente ejemplo.

access-list 10 permit host 192.168.1.1
access-list 10 deny 192.168.1.0 0.0.0.255
access-list 10 permit any

En este ejemplo permitiríamos el tráfico con origen de la ip 192.168.1.1, pero denegaríamos el de toda la subred a la que pertenece la 192.168.1.1. El resto del tráfico estaría permitido.

Para aplicar la access list a una interfaz:

router(config)# int fast0/0
router(config-if)#ip access-group 10 <in/out>
Listas de acceso extended:

Las listas de acceso extendidas son parecidas a las standard, pero permiten elegir origen, destino, puerto y protocolo, en el fondo los firewalls tradicionales se componen de listas de acceso extendidas, teniendo en cuenta las nuevas opciones de las ACL extendidas su funcionamiento es mayormente igual al de las listas de acceso standard.

access-list <Numero_ACL> <deny/permit>  <protocolo> <red_origen> <mascara_destino> <red_origen> <mascara_destino> <eq/gt/lt> <numero puerto>
Protocolo permite seleccionar el tipo de protocolo que queremos usar, ya sea tcp, udp, icmp...etc. Para seleccionar todos usaremos ip como protocolo.

Red de destino y máscara su nombre lo indica, en ellos también podemos especificar la sentencia host, o la sentencia any.

eq/gt/lt: Eq se utilizará para decir que un puerto igual a x. gt que el puerto sea mayor a x , y por último lt   para especifcar que puertos sea menor a x.

Ejemplo:

interface Ethernet0/1
ip address 172.16.1.2 255.255.255.0
ip access-group 101 in
access-list 101 deny icmp any 10.1.1.0 0.0.0.255
access-list 101 permit ip any 10.1.1.0 0.0.0.255
Un último dato importante para TODAS las ACL es, que el tráfico con origen desde el propio router nunca es evaluado en las ACL, las ACL solo funcionan cuando el tráfico entra al router y sale del router, NUNCA para el tráfico originado desde el propio router.

Comandos relacionados:

show access-list

No hay comentarios:

Publicar un comentario