Translate

martes, 19 de noviembre de 2013

Configurar VPN entre Mac y Windows7

En este tutorial vamos a configurar una VPN entre un servidor y un cliente. En mi caso el servidor de VPN será un equipo con Windows 7, es posible hacerlo mediante un router que admita VPN, o incluso mediante un Servidor Linux, Mac, Windows XP, etc..

Para el cliente usaré un Mac con Mountain Lion instalado.

Para el servidor usaremos openVPN, por su facilidad de configuración y por ser gratuito. Puedes descargarlo aquí:


openvpn

Para el cliente usaremos tunnelblick que permite el uso de openVPN en MacOS. Puedes descargarlo aquí:  https://code.google.com/p/tunnelblick/

starbux-tunnelblick-7

Lo pasos generales a seguir serán:
1 Descargar e instalar ambos
2 Crear las claves necesarias para servidor y clientes
3 Crear los ficheros de configuración que se usaran en las conexiones de servidor y clientes.
4 Preparar la conexión Bridging en el servidor.
5 Testear y lanzar las conexiones.

1 Descargar e instalar ambos. En este punto no hay nada reseñable, tan solo que en nuestro Windows 7 tendremos que editar las propiedades del ejecutable openVPN GUI y activar que se pueda ejecutar como administrador. (Botón derecho sobre el)


runas


2 Crear las claves necesarias para servidor y clientes. Necesitaremos crear las siguientes claves y certificados:
1 Certificado y clave para Master Certificate Authority (CA) : Abrimos línea de comandos, e iremos al path c:\Program Files\openVPN\easy-rsa
Ejecutamos:

init-config  (copia el fichero vars.bat en vars.bat.sample)

Editamos el fichero vars.bat y modificamos las entradas KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG y KEY_EMAIL

Ejecutamos:

vars
clean-all
build-ca  (Con esto hemos creado las claves y certificados para la CA).

2 Certificado y clave para Servidor: ejecutamos el comando build-key-server server para crear las claves del servidor. Aquí a veces podemos encontrar un problema con la generación de claves si repetimos esta tarea varias veces, para ello es importante que usemos TODOS los datos que se nos pide de manera igual tanto en el cliente como en el servidor, A EXCEPCIÓN del grupo que es preferible poner algo distinto para cada certificado.

3 Certificado y clave para cada uno de los clientes que se vayan a conectar: igual que para el servidor, pero ejecutando el comando build-key client , donde client será un nombre distinto para cada uno de los clientes que queramos conectar.

4 Por último generamos los parámetros Diffie Hellman: ejecutando el comando build-df

Una vez creados los ficheros con los certificados y las claves los copiamos en su lugar correspondiente. Todos estos ficheros se generan y se guardan en la carpeta keys dentro de easy-rsa. En principio los del servidor se copiarán en la carpeta config y son ca.crt, dh{1}.pem, server.crt y server.key.


3 Preparar la conexión Bridging en el servidor. Cuando realizamos la instalación de openVPN se nos ha añadido un nuevo adaptador a los adaptadores de red de nuestro Windows. En este caso un adaptador llamado TAP-Win32. Lo renombraremos a MyTAP.




La idea aquí será trabajar con los dos adptadores, el físico correspondiente a nuestra tarjeta de red y el TAP añadido creando un bridge entre los dos. Para ello seleccionando ámbos adaptadores a la vez y pulsando con el botón derecho podremos seleccionar la opción Bridge Conections. Aparecerá un nuevo adaptador del tipo bridge. A este adaptador le daremos una configuración IP, que será la IP de nuestro Servidor VPN. En mi caso 192.168.1.3.
En este punto hay que decir que hay que tener cuidado con coger redes de este tipo, es decir 192.168.1.x, ya que si la red desde la que conectamos posee un rango de este tipo crearemos problemas en la VPN, ya que cuando hablemos de una ip dada de ese rango, no sabrá decir en que subred está, en la local o en la remota.


4 Crear los ficheros de configuración que se usaran en las conexiones de servidor y clientes. Para ello iremos a la carpeta simple-config y allí encontraremos ejemplos para el servidor y para el cliente. Los copiamos también a la carpeta config y los editamos para configurarlos.
Abrimos el fichero server.ovpn y lo configuramos. Los puntos a tocar serán:
Comentamos dev tun (añadir un ; para que quede así ;dev tun)
Descomentamos

dev tap

dev-node MyTAP

Comentamos la línea que empieza por server
Descomentamos server-bridge y la dejamos así:

Server-bridge 192.168.8.4 255.255.255.0 192.168.8.128 192.168.8.254

Lo que indica la IP y mascara del servidor VPN y el rango de IPs a servir a los clientes.
No olvidar desactivar el filtrado del firewall para el bridge y el TAP.
Grabamos y abrimos el fichero client, en este caso tan solo tendremos que indicar la IP del servidor VPN así como el puerto a usar, el resto debe ponerse igual que para el servidor.


5 Copiar los ficheros necesarios en el cliente. En este paso crearemos una conexión vpn para tunnelblick. Para ello abrimos tunnelblick y en la ventana que aparece escogemos la opción  Tengo Archivos de Configuración, y en la siguiente opción Cofiguración(es) VPN
Se abre entonces una carpeta donde copiaremos los certificados, clave y fichero de configuración creados para el cliente previamente: client.crt, client.key, ca.crt y cliente.ovpn
Una vez copiados los ficheros dentro de la carpeta le ponemos un nombre representativo para la conexión y añadimos una extensión del tipo tblk, por ejemplo miVPN.tblk, de esa forma se crea un paquete de configuración al que haremos doble click para instalar en tunnelblick.

Captura de pantalla 2013-09-23 a la(s) 17.45.51

6 Testear y lanzar las conexiones. En este paso podemos testear las conexiones haciendo click con el botón derecho sobre los ficheros del Servidor y del cliente y escogiendo la opción Iniciar OpenVPN con este fichero de config. En el caso del servidor deberemos obtener una pantalla similar a esta:

test

Lo mismo con el fichero del cliente
Una vez todo este ok podemos lanzar las conexiones, primero en el servidor para que quede escuchando, lo cual podemos hacerlo desde el icono de openVPNGUI justo al lado del reloj y en el cliente a través del icono tunnelblick y escogiendo la VPN configurada.

Captura de pantalla 2013-09-23 a la(s) 17.28.21

No hay comentarios: