VLAN en redes WiFi

Otra entrada relacionada con los switchs recuperada de mi anterior blog:

En el post anterior, vimos como mediante las Asymmetric VLAN, podíamos compartir recursos entre diversas redes virtuales, manteniendo en aislamiento entre ellas. En el post de hoy, configuraremos una red WiFi para soportar dos redes virtuales, una para invitados abierta y una corporativa protegida mediante WPA que permitirá el acceso de los usuarios a los recursos de la red.

En primer lugar, en el switch configuraremos uno de los puertos  (1-4), que configuramos para que pertenecieran a los tres vlan, para que pase a ser tagged (los puertos tagged etiquetan las tramas de salida con la etiqueta de la vlan correspondiente y sirven para crear la estructura troncal de switches y en este caso puntos de acceso WiFi).

vlanwifi01

La siguiente acción es conectar el punto de acceso y configurar el SSID de la red principal (que corresponde a la VLAN2). Esta acción la realizamos en el menú de Basic Settings -> Wireless. Configuramos esta red protegida mediante WPA-PSK, que nos ofrece una seguridad suficiente para un entorno de pequeña emperesa.

vlanwifi02

A continuación crearemos un segundo SSID para la red abierta, para ello tendremos que ir a Advanced Settings ->Multi-SSID. Esta red la configuraremos abierta, sin ningún tipo de protección.

vlanwifi03

Ahora realizaremos la asignación de SSID a la VLAN correspondiente: la vlan2 la asignaremos al SSID principal o Primary, mientras que la vlan3 la asignaremos al S-1. Estas acciones las realizaremos en el menú Advanced Settings -> VLAN

vlanwifi04

vlanwifi05

Para finalizar sólo nos queda asignar la etiqueta de puerto (PVID) al puerto LAN del AP (le asignaremos 1 que corresponde a la VLAN común) y los dos SSID (Primary y S-1) le asignaremos el PVID correspondiente a la VLAN respectiva (2 y 3).

vlanwifi06

De esta manera conseguimos con una infraestructura sencilla (un switch Smart y un punto de acceso), ofrecer una red protegida y una red abierta para invitados.

Anuncios

Asymmetric VLAN

Recupero una entrada que publiqué anteriormente en otro blog que mantenía dentro de la comunidad itpro.es, actualmente por motivos de tiempo disponible, tengo prácticamente abandonado.

La utilización de VLAN permite segmentar  nuestra red en capa 2, separando de forma segura y efectiva el tráfico entre redes al mismo tiempo que reduce el tamaño de los dominios de broadcast y por tanto, reduce el tráfico en la red. Habitualmente, el uso de la VLAN se centra en redes grandes, usando switchs gestionables que si bien son muy potentes, son caros. Sin embargo, las VLAN también pueden ser muy útiles en entornos de redes pequeñas y medianas, como vamos a ver a continuación.

Imaginemos un escenario, donde tenemos una red corporativa de una docena de equipos, router de acceso a Internet y algunos recursos en red, como algún servidor de archivos, impresoras, etc. Por cuestiones de seguridad, interesa separar la red en dos redes totalmente independientes pero que puedan mantener el acceso a los recursos comunes. La solución habitual es utilizar switch L3 donde gestionamos mediante ACLs el acceso entre VLANs. El gran problema, viene por el elevado precio de estos equipos, que los hace inviables para el caso comentado.

La solución viene de la mano de D-Link y de su serie Smart, switches que están a medio de camino de los clásicos switchs “tontos” de enchufas y listos y de los caros switches gestionables. Estos smart switch, se gestionan mediante una interfaz web y permiten una gestión del switch que los acerca bastante a las prestaciones de un switch gestionable tradicional, pero a un precio ostensiblemente inferior.

En concreto, vamos a emplear la funcionalidad de Asymmetric VLAN en un switch D-Link DGS-1210-24, que nos va a permitir separar la red en VLAN independientes, pero al mismo tiempo mantener una VLAN compartida a la que podrán acceder los equipos del resto de VLANs.

avlan11

A continuación vamos a ver la configuración paso a paso:

En  primer lugar, vamos a definir el problema: tendremos dos VLAN vlan2 y vlan3 que corresponden a las dos redes que queremos separar. En concreto vlan2 utilizará los puertos 5 al 18 y vlan 3 del 19 al 24. Los puertos 1-4 serán los puertos correspondientes a los servicios comunes (acceso a Internet, servidor, impresora, etc.). Como red común para permitir el acceso compartido utilizaremos vlan1.

Entramos en la configuración del switch y habilitamos la opción de Asymmetric VLAN:

avlan2

A continuación, comprobamos que vlan1 tiene habilitados todos los puertos del swich en modo untagged ( modo normal del puerto de switch donde no se le añade a las tramas de salida la etiqueta de la VLAN).

avlan3

Creamos la red VLAN2 y le asignamos los puertos correspondientes 1-18 en modo untagged. Observar como los puertos 19 a 24 se marcan como Not Member.

avlan4

Repetimos el proceso con VLAN3, añadiendo como miembros los puertos 1-4 y 19-24, dejando el resto como Not Members.

avlan5

Ahora asignamos el PVID correspondiente a cada uno de los puertos. Los puertos 1-4 se asignan con PVID=1, correspondiente a la VLAN1, mientras que del 5-18 les asignaremos PVID=2 y por último, los puertos 19-24 se les asgina el PVID=3.

avlan6

Aplicamos los cambios y ya podemos salir de la configuración del switch.

A partir de este momento, los equipos asignados a diferentes VLAN son invisibles, pero todos ellos pueden acceder a Internet o a los recursos que se encuentren en los puertos compartidos. Evidentemente, en este caso, todos los equipos estarán en la misma subred IP.

En un siguiente post, explicaré cómo extender este procedimiento a nuestra red corporativa WiFi, por ejemplo para crear una red de invitados que simplemente tenga acceso a Internet.

 

VyOS: Configuración Firewall I

Como ya se explicó en otro post, con la adquisición por parte de Brocade de Vyatta, se abandonó la versión Community del popular router, naciendo VyOS como fork para del proyecto. En otros post 1,2 y 3 vimos como configurar Vyatta o a partir de ahora VyOS para funcionar como un router básico con NAT. En esta ocasión, vamos a configurar un firewall para nuestra red.

El primer paso es decidir qué infraestructura queremos implementar, en este ejemplo, el mismo que planteo en las clases, supondremos una red local (LAN) y una DMZ que deberá aceptar conexiones desde el exterior. A nivel de simulación, se plantea el siguiente modelo, donde una VM hará de equipo de la LAN, otra máquina actuará como servidor web y finalmente una tercera VM VyOS que hará la función router firewall, como podemos ver en la siguiente imagen.

2017-04-17_0938

Las dos máquinas que harán de equipo local y servidor, se configuran en el VirtualBox como red interna, de la misma manera que dos de las interfícies de la VM de VyOS. Como en el aula quiero que todos los VyOS accedan a la red local para que los alumnos puedan interactuar, la tercera interfície del VyOS la configuraremos en mode adaptador-puente, saliendo a Internet a través del router del aula.

Un tema muy importante cuando se trabaja con el firewall, es tener claro el sentido del tráfico. Esto, suele ser una fuente habitual de errores, debido a que se interpreta de forma errónea qué es tránsito de entrada o de salida.

El criterio para determinar si el tránsito es de entrada o de salida se debe mirar sobre la interfície donde se aplica el firewall, como se ve en el siguiente dibujo.

2017-04-17_0946

Así, si trabajamos sobre eth0, el tránsito de salida es el que va hacia Internet, pero si queremos aplicar el filtrado sobre eth1, esos mismos paquetes que van hacia el exterior son tránsito de entrada, puesto que entran en el router.

Una cuestión de buenas prácticas es que a la hora de dar nombre a los firewall se utilice un criterio indicando si es de entrada o salida y sobre qué interfície se aplica, por ejemplo, FW0IN indica que se aplicará sobre eth0 de entrada.

Instalación VM

Aunque en los post mencionados anteriormente ya se explicó el proceso detallado, aquí haremos un breve resumen de los pasos previos.

Crearemos una máquina virtual con tres interfícies: la primera en modo puente (eht0) y las otras dos (eth1 y eth2) en modo red interna. Le asignamos una memoria de 1024 MiB y un espacio de disco de 10 GiB. Simplemente le conectamos la ISO de vyOS que podéis descargar de aquí.

Una vez arranca el sistema, entramos user: vyos password: vyos y procederemos a instalar el el sistema mediante el comando:

install image

Seguiremos las instrucciones y al finalizar, desconectamos la ISO de la máquina virtual y la reiniciamos.

Configuración de las interfícies y del sistema

El siguiente paso será configurar las interfícies. En este ejemplo configuraré eth0 con 192.168.2.30, eth1 con 192.168.20.254 (que corresponde a la puerta de enlace de la LAN) y eth2 con 192.168.120.254 (para la puerta de enlace de la DMZ).

Para configurar vyOS hay que entrar en el modo edición con el comando configure

set interfaces ethernet eth0 address 192.168.2.20/24

set interfaces ethernet eth1 address 192.168.20.254/24

set interfaces ethernet eth2 address 192.168.120.254/24

commit

Para confirmar los cambios habrá que introducir el comando commit.

A continuación, configuraremos el sistema para que se pueda comunicar con el router que le dará acceso a Internet (en mi caso 192.168.2.254).

set system gateway-address 192.168.2.254

set system name-server 8.8.8.8

commit

Es muy importante recordar que para que los cambios sean permanentes, deberemos guardarlos antes de salir del modo edición, con el comando save.

Configuración NAT

Como queremos simular que la máquina virtual vyOS se comporte como el router-firewall de un sistema, configuraremos la traducción de direcciones (NAT) tal como sería necesario hacerlo para salir con una sola IP pública. Si quisieramos que simplemente actuara como un firewall sin NAT, tendríamos que configurar el enrutamiento.

En primer lugar configuramos el NAT de salida para permitir que tanto la LAN como la DMZ puedan conectarse al exterior.

set nat source rule 1 outbound-interface eth0

set nat source rule 1 source address 192.168.20.0/24

set nat source rule 1 translation address masquerade

set nat source rule 2 outbound-interface eth0

set nat source rule 2 source address 192.168.120.0/24

set nat source rule 2 translation address masquerade

commit

A continuación configuramos el NAT de entrada para permitir que la DMZ reciba conexiones entrantes, en este caso para el puertos 443.

set nat destination rule 1 inbound-interface eth0.

set nat destination rule 1 protocol tcp

set nat destination rule 1 destination port 443

set nat destination rule 1 translation address 192.168.120.1

commit

Guardamos las configuraciones realizadas y comprobamos el correcto funcionamiento del entorno, donde tendremos una máquina cliente con IP 192.168.20.1 y un servidor Ubuntu con Apache configurado para funcionar con https y servicio ssh instalado, con IP 192.168.120.1.

Desde el cliente y servidor se debe poder tener acceso a Internet. Por otro lado, desde otra máquina de la red 192.168.2.0/24 deberíamos poder conectarnos a nuestro servidor web introduciendo la IP del router (192.168.2.20).

Configuración firewall: ejemplos sencillos

Las reglas básicas del firewall son DROP o REJECT para descartar o rechazar un paquete o ACCEPT para dejarlo pasar. Por ejemplo podemos pensar en un primer cortafuegos que permita salir todo el tráfico hacia Internet excepto a una dirección concreta. Lo aplicaremos sobre la interfície eth0:

set firewall name FW0OUT default-action accept

set firewall name FW0OUT rule 1 action drop

set firewall name FW0OUT rule 1 destination address 136.243.172.77

commit

Si quisiéramos incluir más reglas, simplemente se irían añadiendo condiciones rule 2, rule 3, etc.

Por ejemplo, una segunda regla para impedir conexiones FTP hacia el exterior desde la DMZ y la LAN:

set firewall name FW0OUT rule 2 action reject

set firewall name FW0OUT rule 2 protocol tcp

set firewall name FW0OUT rule 2 destination port 21

commit

Ahora queda aplicar el firewall definido sobre la interface correspondiente (aquí es de mucha utilidad usar el criterio de nombre mencionado antes):

set interfaces ethernet eth0 firewall out name FW0OUT

commit

Ahora solo quedaría comprobar el funcionamiento correcto del firewall, haciendo pruebas desde los equipos virtuales.

En el siguiente post, veremos más configuraciones del firewall.