viernes, 13 de septiembre de 2019

ACL (Access Control List)

ACL (Access Control List)


En este post se explicara que son las access list y como funcionan, lo primero es saber que son las access list, estas son reglas que sirven para permitir o denegar el tráfico a través de un router, se pueden ver como una forma de seguridad en nuestros dispositivos.

Las ACL se pueden ver como una colección de reglas para un tráfico en especifico, supongamos que tenemos la siguiente topología:


Si queremos solo permitir el tráfico de la red 10 y 11 pero no de la red 1, tenemos que pensar en como hacer la regla, las reglas se leen de arriba hacia abajo, en este caso en el router tienen que estar las siguiente reglas:

permite: 192.168.10.0 255.255.255.0
permite: 192.168.11.0 255.255.255.0
No permite: 192.168.1.0 255.255.255.0

Estas serian las reglas básicas para configurar en el dispositivo; En este post solo veremos las ACL Standard, en un futuro tema veremos las ACL extended, que estas nos permiten bloquear no solo por IP, sino por puerto, protocolo o en un tiempo definido aplicar esa regla.

¿Para que son usadas las ACL?

Las ACL son usadas principalmente para lo siguiente:

Access Control (Seguridad):

Permitir o denegar acceso entre redes.


NAT (Network Address Translation):
Permite que una IP privada se traduzca como pública y podamos navegar a Internet, este tema se vera en próximos temas, el NAT permite que una IP privada puede navegar hacia fuera de la red local usando una IP pública.



QoS(Quality of service): La calidad de servicio nos ayuda a darle prioridad al tráfico, si tenemos una vlan de voz y una de datos y no queremos problemas en nuestras llamadas telefonicas lo que podemos hacer es darle una mayor prioridad a nuestro tráfico de voz sobre los datos y así aseguramos que la comunicación funcione correctamente.


Policy routing: En este caso si tenemos dos enlaces WAN podemos decidir pasar cierto tráfico por un enlace o por otro, es decir podemos hacer un balanceo con el uso de ACL, con esto podemos tener una mejor eficiencia en la red.


Route filtering: Este nos sirve para contar con un poco mas de seguridad en nuestro equipo, ya que puede detectar si tenemos demasiado tráfico desde un equipo, o si ciertas redes las conocemos como maliciosas.


Como vemos las ACLs son muy versátiles y nos pueden ayudar a controlar el tráfico que entra o sale de nuestro dispositivo, un punto a tener en cuenta es que estas se aplican directamente en una interfaz y dependiendo el flujo del tráfico es como debemos aplicarla, usando el ejemplo anterior con la topología, la ACL creada la podemos colocar en dos puntos del router:

Si la ponemos en la interfaz G0/0 vemos que el flujo es de entrada a la interfaz, es decir tenemos que poner nuestra ACL con el sentido de Inbound.


Si la ponemos en la interfaz G0/1 vemos que el flujo es de salida a la interfaz, es decir tenemos que poner nuestra ACL con el sentido de Outbound.


Entonces como saber en donde ponerla, ambas opciones son validas pero la recomendación es poner la ACL en la interfaz que recibe el tráfico en este caso la G0/0 ya que al llegar a la interfaz no tiene que procesar el paquete y le ayuda a no consumir recursos, mientras que si la ponemos en la G0/1 el paquete entra y es procesado por el router para ser entregado por esta interfaz.



Configuración básica de ACL Standard:

1.- Creación de la ACL

(config)#access-list "#" "acción" "IP Host/Red" "wildcard"

En este comando tenemos las siguientes variables:

#: se refiere al número de ACL, en las ACL estandar es de 1 al 99.

Acción: Se refiere a que hará la ACL con el tráfico donde tenemos permit,deny y remark este ultimo es para poner comentarios en las ACL.

IP Host/Red: IP del dispositivo o la red que va a ser permitida o bloqueada.

Wildcard: La wildcard se entiende como la máscara opuesta a la máscara de red, ya que usa los bits que estan en 0 en la máscara de red de un dispositivo o red.

Ejemplo:

permite: 192.168.10.0 255.255.255.0

(config)#access-list 1 permit 192.168.10.0 0.0.0.255

Como vemos la wildcard se activan los bits opuestos a la máscara de red, si pusimos atención al post de subneteo lo podemos entender como los bits que se usan para la red, con esto lo que hace el equipo es saber que bits se activan solo para los hosts y omite los bits que identifican a la red.


Podemos validar el ACL con el comando:

#show access-lists


Como vemos en la imagen tenemos el número 10 antes de nuestra ACL, este número representa el orden en donde se encuentra nuestra ACL, como las ACL se leen de arriba hacia abajo se les agrega una numeración para identificar su posición.

Agregamos la siguiente sentencia:

permite: 192.168.11.0 255.255.255.0

(config)# access-list 1 permit 192.168.11.0 0.0.0.255




como vemos la agrego y la puso en la posición 20, es decir mas abajo de la posición de la primera regla que creamos para la red 192.168.10.0/24.

La última regla es la de denegar el tráfico de la red 192.168.1.0/24, esto se puede hacer de dos maneras, la primera es crear la regla para esa red y la segunda es omitiendo la red en nuestras reglas, ya que al final de la ACL, existe una regla implícita que por default deniega todo el tráfico.

Las ACL las encontramos en 3 formas:

Standard
*se basa en la dirección de origen (source address)
*utiliza menos procesamiento del dispositivo.


Extended:
*Se basan en la red de origen y destino, asi como protocolos, y número de puerto.
*utiliza mas procesamiento del dispositivo
*la sintaxis es un poco mas compleja

Reflexive:
*Esta regla es especial ya que maneja el tráfico statefull de los firewalls, supongamos que tenemos una regla para un source NAT, en este tipo de regla cambiamos la IP privada por una pública, no hay que hacer una ACL para el tráfico de entrada, esto es debido a que al momento de que la PC inicia la sesión esta se queda en el router y cuando regresa el tráfico desde Internet respeta esa sesión siempre y cuando se llegue con los mismos parámetros.

Como ultimo punto sobre las ACL Standard es que podemos crearlas con un nombre en lugar de un número, el comando para poder crear una ACL por nombre es el siguiente:

(config)#ip access-list standard "nombre"


CONFIGURACIÓN


A continuación veremos un ejemplo de ACL Standard, para eso utilizaremos la siguiente topología:


vamos a configurar los siguientes escenarios (Usando ACL Standard)

1.- Usar una ACL para bloquear el acceso de la IP 1.1.1.1 a la IP 1.1.1.6 y la red 172.16.1.0/24

2.- Usar una ACL para bloquear el acceso a la red 172.16.1.0/24 desde la red 172.16.2.0/25

3.- Usar una ACL para bloquear el acceso de la IP 172.16.2.50 a la IP 1.1.1.1


ESCENARIO 1 

Usar una ACL para bloquear el acceso de la IP 1.1.1.1 a la IP 1.1.1.6 y la red 172.16.1.0/24.

En este escenario lo primero es determinar en donde pondremos la ACL y determinar la dirección del tráfico en la interfaz, en este caso la opción mas viable y recomendada es el Router0 en la interfaz s0/0/0 ya que al llegar el tráfico a este router podemos controlar el tráfico que entra por la interfaz.

La dirección del tráfico sera inbound ya que el tráfico es de entrada a esa interfaz.


En este escenario hay diferentes maneras de configurar la ACL, la manera correcta depende de los estándares que se tengan en la empresa o si se tiene una documentación homologada para estos casos, expondré las maneras que se puede solucionar este escenario.

Caso 1 - Denegar el tráfico de 1.1.1.1 y permitir el tráfico de las otras redes, poniendo cada una en una regla diferente.

Paso 1: Creamos la ACL 1 y denegamos el acceso a la IP 1.1.1.1/32

Aquí es importante ver porque la máscara que se usa es la /32, esto significa que solo haremos la exclusión o denegación de tráfico a un host en particular, al tener activados todos los bits en su máscara de red se entiende que es un equipo en especifico, quedando de la siguiente manera:

1.1.1.1/32 -> 1.1.1.1/255.255.255.255

Como necesitamos la wildcard de la máscara de red tendremos que ver cual es su opuesto en este caso:



como vemos la wildcard queda en 0.0.0.0 ya que al restar la máscara nos queda todo en 0.

(config)#access-list 1 deny 1.1.1.1 0.0.0.0

Paso 2: Creamos las reglas para las redes que están involucradas en la topología.

En este caso podemos ver las wildcards de esas redes:




Como vemos para cada una de las redes la wildcard será la siguiente, en este caso utilice la máscara /24 para la red 172.16.2.0 y 172.16.2.128, ya que sumarizo ambas redes.

(config)#access-list 1 permit 1.1.1.0 0.0.0.3
(config)#access-list 1 permit 1.1.1.4 0.0.0.3
(config)#access-list 1 permit 172.16.2.0 0.0.0.255


Usando el comando show access-lists


Antes de agregar la ACL a la interfaz podemos hacer una prueba de ping desde el Router2 hacia la IP 1.1.1.6 que se encuentra en el Router0 y vemos que nos responde:


Paso 3: Agregamos la ACL a la interfaz s0/0/0

Ingresamos a la interfaz
(config)#int serial s0/0/0

Usando el siguiente comando agregamos la ACL y la dirección del tráfico
(config-if)#ip access-group "ACL"in 

Quedando de la siguiente manera:

interface serial s0/0/0
ip access-group 1 in


Con esto terminamos la configuración, solo queda hacer una prueba de ping nuevamente:


Como podemos observar ahora nos manda el mensaje de U (Unreachable) podemos también ver cuantas veces se aplico la ACL con el comando show access-lists


Caso 2 - Denegar el tráfico de 1.1.1.1 y permitir todo el tráfico por default, en este caso solo denegamos el acceso a la IP 1.1.1.1/32 y dejamos un permit por default.

(config)#access-list 1 deny 1.1.1.1 0.0.0.3
(config)#access-list 1 permit 0.0.0.0 255.255.255.255

Las siguientes son las mismas configuraciones solo que le ponemos un nombre a la ACL para identificarla mas cómodamente que en lugar de un número.

Caso 1 - Con nombre - 
(config)#ip  access-list standard ESCENARIO1
(config)#deny host 1.1.1.1
(config)#permit 1.1.1.0 0.0.0.3
(config)#permit 1.1.1.4 0.0.0.3
(config)#permit 172.16.2.0 0.0.0.255



*Como vemos aquí podemos usar el comando host y solo ponemos la IP del dispositivo a bloquear sin necesidad de poner la wildcard.

Caso 2 - Con nombre - En este caso ponemos el orden en el que acomodaremos las reglas
(config)#ip access-list standard ESCENARIO1 2 permit 0.0.0.0 255.255.255.255
(config)#ip   access-list standard ESCENARIO1 1 deny 1.1.1.1 0.0.0.0



Como vemos se acomodaron según el orden establecido.

*NOTA: Podemos también cambiar el número del orden con el comando resequence

(config)#ip access-list resequence "Nombre" "#_de_inicio" "#_de_incremento"

Ejemplo:

(config)#ip access-list resequence ESCENARIO1 1 1


ESCENARIO 2

Usar una ACL para bloquear el acceso a la red 172.16.1.0/24 desde la red 172.16.2.0/25

En este caso lo que se requiere es que la LAN 172.16.1.0/24 no tenga acceso a la LAN 172.16.2.0/25, como vemos en este caso solamente es esa LAN, por lo cual pondremos la ACL en el puerto Gig0/0 en cual es el puerto de nuestra LAN y como el tráfico saldrá por esa interfaz, se pondrá como OUTBOUND.




Configuramos la ACL:

Paso 1: Obtenemos la wildcard de la red a bloquear.



Paso 2 - Configurar la ACL



Paso 3 - Asignar la ACL a la interfaz



Comprobamos con un ping desde la PC 172.16.2.50 a la PC 172.16.1.50:



Ahora revisamos los logs en el Router:


En las ACL ESCENARIO1 y ESCENARIO2 vemos la misma cantidad de matches, esto es porque al ingresar el tráfico por la interfaz s0/0/0 se deja pasar pero al llegar a la interfaz de salida Gig0/0 cae en la ACL ESCENARIO2 y es donde se hace la denegación del tráfico.


ESCENARIO 3

Usar una ACL para bloquear el acceso de la IP 172.16.2.50 a la IP 1.1.1.1

En este caso se requiere bloquear de un host a un host, para este escenario colocaremos la ACL en el puerto s0/0/1 del router 2 y como dirección será IN.



Configuramos la ACL:

Paso 1: Obtenemos la wildcard de la red a bloquear.



Paso 2 - Configurar la ACL


*NOTA: como vemos aquí no se configuro la regla de permit default como permi 0.0.0.0 255.255.255.255 sino que se utilizo permit any , que es exactamente lo mismo que el primer comando.

Paso 3 - Asignar la ACL a la interfaz



Comprobamos con un ping desde la PC 172.16.2.50 a la interfaz del router 1.1.1.1




Ahora revisamos los logs en el Router:



La configuración de ACL Standard es un proceso muy sencillo, el único reto que se puede encontrar es descifrar la dirección y en que interfaz la colocaremos para causar el menor impacto en el procesamiento del equipo y tambien crear una ACL que sea efectiva.

Espero este post haya sido de su agrado, pueden dejar sus comentarios.

No hay comentarios.:

Publicar un comentario