CCNP SWITCH 17: Seguridad con VLANs

( redes / certificaciones / ccnp_route-switch / switch )

Listas de acceso VLAN

Configuración de VACL

VACL (VLAN ACL o VLAN maps) se configuran como un access map VLAN muy parecido a un route map (ya que se definen coincidencias y acciones). Cada VACL consiste en un nombre que agrupa a una o más sentencias.

Primero definimos la VACL con el nombre y número de secuencia (opcional):

switch(config)# vlan access-map map-name [sequence-number]

Cada access map se evalúa en orden de secuencia (sequence-number) por lo  que es importante indicarlo si no será en orden de configuración.

Seguimos definiendo las condiciones de coincidencia que identifica el tráfico que se filtrará. Estas coincidencias se definidas por listas de acceso IP, IPX o direcciones MAC. Para ello usamos uno o más de los siguientes comandos:

switch(config-access-map)# match ip address {acl-number | acl-name}
switch(config-access-map)# match ipx address {acl-number | acl-name}
switch(config-access-map)# match mac address acl-name

Ahora debemos definir la acción a tomar si se produce una coincidencia (la primera que sea):

switch(config-access-map)# action {drop | forward [capture] | redirect type mod/num}

Finalmente debemos aplicar la VACL a la VLAN usando el comando:

switch(config)# vlan filter map-name vlan-list vlan-list

Hay que tener en cuenta que la VACL se aplica GLOBALMENTE a una o más VLANs y no la interface VLAN (SVI).

EXAMEN: Recordar que tanto routed como bridge ACLs se pueden aplicar tanto inbound como outbound y que las VLAN maps y router ACLs se pueden usar en conjunción.

Private VLANs

VLANs privadas (PVLAN) permiten separar en un switch diferentes interfaces de una misma red que no se ven entre ellas (o si entre algunas) pero que todas si permiten ver el GW, es como aislar redes pero en una misma red. Para ello tenemos una vlan primaria (primary) que puede ser asociada con  vlans unidireccionales o secundarias (secondary). Los Hosts o dispositivos finales asociados con la vlan secundaria puedes SOLO comunicarse con la vlan primaria (que suele ser el router o GW), pero no pueden comunicarse con otras interfaces de otras vlans secundarias.

Una VLAN secundaria puede configurarse de dos tipos:

Además cada interface debe configurarse en un modo:

Configurar la VLANs privadas

Primero definimos las VLANs secundarias (tantas como necesitemos) con los comandos:

switch(config)# vlan vlan-id
switch(config-vlan)# private-vlan {isolated | community}

Definimos la VLAN primaria e indicamos las VLANs secundarias asociadas a ella con estos comandos:

switch(config)# vlan vlan-id
switch(config-vlan)# private-vlan primary
switch(config-vlan)# private-vlan association {secondary-vlan-list | add secondary-vlan-list | remove secondary-vlan-list}

Asociar interfaces con VLANs privadas

Definimos la función de la interface que participará en la VLAN privada con el comando:

switch(config)# interface type mod/num
switch(config-if)# switchport mode private-vlan {host | promiscuous}

Si la interface se conecta un host debe ir en host y debemos asociar la VLAN principal y secundaria con el comando:

switch(config-if)# switchport private-vlan host-associaton primary-vlan-id secondary-vlan-id

Si la interface se conecta un GW (router, firewall, etc) debe ir en promiscuous y debemos mapear la interface a la VLAN primaria y a las VLANs secundarias con el comando:

switch(config-if)# switchport private-vlan mapping primary-vlan-id secondary-vlan-id | [add secondary-vlan-id} | [remove secondary-vlan-id}

Asociar VLANs secundarias a VLAN SVI primarias

Como una interface VLAV SVI es de capa 3 la configuración cambia ligeramente, en la interface vLAN debemos mapear las VLANs secundarias sin idicar la VLAN primaria que es la propia interface VLAN SVI con el comando:

switch(config)# interface vlan vlan-id
switch(config-if)# private-vlan mapping secondary-vlan-list | [add secondary-vlan-id} | [remove secondary-vlan-id}

Asegurando VLAN Trunks

Switch Spoofing

Cuando un puerto está configurado con Dynamic Trunking Protocol (DTP) (por defecto en Cisco una interface está así configurada) y la interface está en auto puede negociar la interface para convertirse en un Trunk, por eso un atacante que conecte un host (PC, server, etc) a una interface DTP en auto podría "negociar" con el switch para establecer un Trunk entre el host y el switch lo que se llama Switch Spoofing.

Por ello es conveniente que cada interface que no se use ponerla en shutdown y configurar las interfaces donde se conecten usuarios finales en modo acceso y con la VLAN correspondiente con los comandos:

switch(config)# interface type mod/num
switch(config-if)# switchport access vlan-id
switch(config-if)# switchport mode access

VLAN Hopping (o doble tagging)

El exploit llamado VLAN Hopping consiste en que un atacante marca doblemente el tráfico para poder alcanzar una VLAN que de por si no debería alcanzar. Primero marca con la VLAN que NO puede alcanzar y por encima vuelve a encapsular con la VLAN en la que se encuentra (que será la VLAN nativa), por ejemplo: [VLAN-30][VLAN 50][trama].

Para que este exploit funcione se deben cumplir estas condiciones:

Para evitar este tipo de ataque es conveniente seguir estos pasos:

También podemos configurar que la VLAN nativa vaya marcada siempre con el comando:

switch(config)# vlan dot1q tag native
Modificado el 3 Enero, 2015
   

Compartiendo conocimiento desde 1995 - I.M.D. I.M.D.