ACL - Access Lists

Share
ACL - Access Lists

Para nuestro entrenamiento en el mundo del networking, esta primera defensa serán las ACLs (Access Lists) que nos darán un primer filtro de seguridad en muchos aspectos. Veamos de que se trata

IMPORTANTE: Estas ACLs suelen ser un dolor de cabeza para los que se inician en el mundo del networking. Para hacerte la vida más simple, esta es la forma en la que las ACL trabajan, quizás pueda aclararte el panorama.

  • ID y tipo de ACL (estándar o extendida)
    • Clausula 1 (permitir o denegar algo)
    • Clausula 2 (permitir o denegar algo)
    • Clausula 3 (permitir o denegar algo)
    • ...
    • Clausula n (permitir o denegar algo)
    • Clausula por defecto (denegar todo)

Como se puede apreciar, todo se realiza en orden, uno a continuación del otro, así que cualquier cosa que quieras permitir o denegar, siempre debes procurar realizarlo en el orden correcto :)

Clases de ACLs

Las ACLs se pueden dividir en dos grupos: las estándares y las extendidas. Ambas son de mucha utilidad y por supuesto, depende de cómo es que se quieran usar. Algo importante es que además de ponerles nombres a los ACLs también pueden ser numeradas, es decir, tener un ID. A este punto creo que le estamos yendo con muchos rodeos y yo se que a ti te gusta la acción de la batalla, así que empecemos con las definiciones

ACL Estándar

También conocida como Standar ACL (lo se, mi inglés es lo máximo :D) es para cubrir una cierta subred. El rango de ID que podemos usar es de 1 a 99, es decir, si ves un ACL 23 significa que es una estándar.

Veamos un ejemplo práctico de esto:

Esta es la historia de la topología. 10.1.1.0/24 es la subred de los servidores, obviamente no todos tienen permiso para acceder a ella, sin embargo la subred 192.168.1.0/24 si tiene privilegios pues son los ingenieros (of course :D). La pregunta es...como podemos hacer que la subred 192.168.2.0/24 no acceda a la subred de servidores? Les ponemos un memo? callejón oscuro si entran?

La solución elegante: usar una ACL, nuestra primera línea de defensa, nuestra falange romana!!

Vamos a ver primero un test de ping desde la PC01 y PC02

PC01#ping 10.1.1.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds:

!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 32/51/60 msPC02#ping 10.1.1.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds:

!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 56/64/72 ms

Ahora vamos a configurar el siguiente ACL

R1(config)#ip access-list standard 1
R1(config-std-nacl)#deny 192.168.2.0 0.0.0.255 log
R1(config-std-nacl)#permit any

Veamos qué significa cada parte del comando:

ip access-list standard 1: Aqui le indicamos al router que usaremos un ACL standard

deny 192.168.2.0 0.0.0.255 log: Ahora le decimos que queremos denegar la subred 192.168.2.0/24, en este caso no se configura una mascara de red, sino que se hace con algo llamado wilcard, que es la dirección de broadcast menos la mascara de subred, es decir:

255.255.255.255 -
255.255.255.0
---------------
  0.  0.  0.255

Finalmente, añadimos la palabra log para que el router nos envíe mensajes a la consola sobre qué es lo que sucedió con la ACL, esto no es obligatorio, lo pusimos para que veas como funciona 😃

permit any: Como ya denegamos lo que queríamos, y debido a que la clausula final por defecto es denegar todo, al final vamos a permitir todas las demás subredes :)

Una vez terminado con esto, tenemos que situar el ACL en la interfaz de entrada de R1, de esta manera:

R1(config-if)#int f0/0
R1(config-if)#ip access-group 1 in

Ahora la prueba de fuego...veamos si podemos alcanzar la subred de servidores desde PC01 y PC02

PC01#ping 10.1.1.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds:

!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 56/57/60 msPC02#ping 10.1.1.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds:

UUUUU
Success rate is 0 percent (0/5)

Como verás, es unreachable desde PC02, pero aún podemos llegar desde PC01

Y el log en R1? veamos qué mensaje nos muestra el router:

*Apr 23 17:58:33.039: %SEC-6-IPACCESSLOGNP: list 1 denied 0 192.168.2.10 -> 10.1.1.1, 4 packets

Hell yeah! Hemos creado nuestra primera ACL, una cerveza para celebrar!!

ACL Extendida

Conocida también como…exacto, adivinaste! Se le conoce como extended ACL y esta es una opción que es mas completa, aquí puedes bloquear trafico de algún protocolo especifico, es decir, si necesitas que la subred 192.168.2.0 pueda alcanzar mediante ping a la red de servidores pero que este denegado el acceso a ssh o telnet, podemos aplicar una ACL extendida.

Mucho palabreo? veamos ahora el ejemplo práctico :D

R1(config)#ip access-list extended 101
R1(config-ext-nacl)#deny tcp 192.168.2.0 0.0.0.255 host 10.1.1.1 eq telnet log
R1(config-ext-nacl)#permit ip any any
R1(config-ext-nacl)#permit tcp any any

Es parecida a la ACL Standar, pero la diferencia aquí es que se pueden especificar host o subredes de origen y destino y elegir la clase de protocolo a usar, en nuestro ejemplo, usamos TCP para denegar telnet. Y como en la cláusula final por defecto todo es denegado, hemos optado por permitir el resto para que R1 pueda poder hacer telnet con toda confianza :)

Hora de la prueba de fuego...

PC02#ping 10.1.1.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds:

!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 72/78/84 msPC02#telnet 10.1.1.1

Trying 10.1.1.1 ...

% Destination unreachable; gateway or host down

Y PC01?

PC01#telnet 10.1.1.1
Trying 10.1.1.1 ... Open

User Access Verification

Username: cisco
Password:

R1>en
Password:
R1#exit

[Connection to 10.1.1.1 closed by foreign host]

Bingo! Nuestra primera línea de defensa está completada.

Conclusiones

Los ACLs nos pueden servir de muchas formas y aplicarlas nos traerán muchos beneficios en cuanto a seguridad. Por supuesto que hay más consideraciones y teoría extendida sobre las ACLs, pero eso lo veremos en futuros posts.

Y por supuesto, si tienes alguna duda o sugerencia no dudes en dejarlo en la sección de comentarios.

Cheers !