Cómo configurar un Servidor OpenVPN en Windows.

Saludos a todos.

Después de un buen tiempo sin escribir, hoy les traemos este post que es de Gran interés, en el mundo empresarial, y en también en el mundo de los Gamers Online, como es mi caso.

Les cuento como surgió mi Odisea de aprender a configurar este protocolo.
Estaba con mi compañero Ju4ns3, y queríamos Jugar Age of Mythology, por Internet, pero lo queríamos hacer como si estuviéramos en una LAN.

Conocíamos de la existencia de hamachi, pero no era algo de mi gusto dadas las complicaciones, y las direcciones IP que tenía, las cuales pertenecían a un segmento completamente diferente al que yo manejaba.
Lo que yo quería era que simuláramos una red LAN, en la que mi compañero estuviera en el mismo segmento de red que yo. y esta alternativa la ofrece OpenVPN.

OpenVPN Cómo configurar un Servidor OpenVPN en Windows.

Así que empezaré a explicar como debe configurarse un servidor OpenVPN, en el sistema operativo windows, para conseguir que la LAN se encuentre toda en la misma subred.

Como es lógico lo primero que debe hacerse es descargar e instalar el OpenVPN para windows. como esta parte es bastante sencilla no la explicaré. como todo en windows es Siguiente, Siguiente, Terminar!!

El OpenVPN lo pueden descargar de acá, la que yo descargué es la 2.1 y es la que explicaré acá. aunque con versiones anteriores no difiere mucho.

Bien.
Una vez que se ha instalado el OpenVPN, si hicieron todo por defecto(así lo explicaré acá)
el paso a seguir es crear las claves Públicas y privadas.

1. Crear las Llaves para el Servidor y el Cliente

No me adentraré mucho en explicar lo que es esto, pero se los diré superficialmente.
OpenVPN usa el protocolo SSL para cifrar los datos que se envían por la red pública(en este caso internet), y se cifran para que en caso de ser interceptados no nos roben datos privados. SSL es un Protocolo para comunicarse de forma segura, el cual usa por lo general criptografía asimétrica, aunque también puede usar criptografía simétrica.

En fin lo que se hará acá será crear las llaves para el cliente y el servidor con las cuales se autenticarán.

Teniendo en cuenta que el OpenVPN esté instalado en la carpeta C:\Archivos de Programa\OpenVPN, realizaremos los siguientes pasos:

Abrir la consola de Windows Inicio->Ejecutar->CMD

Estando en la consola nos ubicaremos en el  directorio easy-rsa de OpenVPN

cd C:\Archivos de Programa\OpenVPNeasy-rsa

ahora ejecuta el siguiente comando

init-config

En los pasos siguientes, se te pedirán varias veces diferentes datos como Pais, Estado, Ciudad, Organización, Depto, Nombre del Servidor y Correo si solo quieres ingresar estos datos una vez puedes hacer el siguiente paso.

PASO OPCIONAL.

ejecuta el siguiente comando

notepad vars.bat

se te abrirá un block de notas con un batch script. el FINAL de este script es algo como esto:

set KEY_COUNTRY=US

set KEY_PROVINCE=CA

set KEY_CITY=SanFrancisco

set KEY_ORG=OpenVPN

set KEY_EMAIL=[email protected]

lo que haremos será cambiar estas últimas lineas como se ve acá.

set KEY_COUNTRY=CO

set KEY_PROVINCE=CA

set KEY_CITY=Manizales

set KEY_ORG=TodoTecnologia.net

set KEY_EMAIL=[email protected]

Obviamente, ahí pondrás tus propios Datos. te explico.
set KEY_COUNTRY=Iniciales de tu país
set KEY_PROVINCE=Iniciales de tu provincia
set KEY_CITY=El nombre de tu ciudad
set KEY_ORG=Tu nombre o el de tu organización.
set KEY_EMAIL=El correo de tu organización

FIN DEL PASO OPCIONAL

Ok. Después ejecutaremos los siguiente comandos uno a uno.

vars
clean-all
build-ca

El comando build-ca pedirá valores como Pais, Estado, Ciudad, Organización, Depto, Nombre del Servidor y Correo, todos estos valores los debes repetir durante todo el proceso cada que te los pida, a excepción del nombre del host(hostname) que cambiará en la parte de configuración de las llaves del cliente, si seguiste el paso opcional, no tendrás que hacer más que darle enter cada que te pida estos datos.(ojo recuerda que no todos los datos que pide los haz agregado, como el hostname, así que esos datos si deberías ponerlos)

lo que hemos hecho es crear el Certificado de Autoridad, este ha sido creado en el directorio

C:\Archivos de Programa\OpenVPN\easy-rsa\keys

junto con varios archivos. por ahora los vamos a ignorar, ya los usaremos después.

El siguiente paso es crear la llave privada y certificado del servidor.

para hacer esto ejecutamos los siguientes comandos.

vars
build-key-server NombreDelServidor

Este comando al final te hará 2 preguntas adicionales, a las cuales debes responder que si, poniendo la letra y.

El dato que ves en Verde, y todos los demás datos que aparescan en este tutorial de ese color, serán datos que tu te inventarás pero que deberás tener muy en cuenta durante todo el proceso.

Aquí Volverá a pedir los datos, los cuáles deben ser los mismos introducidos anteriormente, también pedirá un password, este mismo password debe ser usado cuándo se creen las llave de los clientes.

Luego ejecutar el siguiente comando,

build-dh

En este punto ya hemos creado todas las llaves para el servidor. ahora vamos a crear las llaves para el cliente.

Crear las llaves del Cliente

Es muy recomendable que por cada cliente que  vayan a usar creen un clave diferente.

¿Cómo es esto?, bien por ejemplo, en mi caso yo quería que la red local de JuSe, fuera la misma que la mía. en este caso solo necesitaríamos un cliente y un servidor. pero ¿qué pasa si queremos unir mi red, la de Ju4s3, y la de otras 2 personas más? bien en este caso necesitaríamos 1 servidor(siempre se necesita un solo servidor, por lo menos en la mayoría de los casos) y 3 clientes, y es acá donde recomendamos que JuSe el sujeto1 y el sujeto2, tengas cada uno sus propias claves de cliente. esto se logra simplemente repitiendo los siguientes pasos por cada cliente que tengan cambiando solo el nombre y el hostname. bien ahora si vamos a ver como se hace.

Desde la consola estando ubicados en el directorio

C:\Archivos de programa\OpenVPN\easy-rsa

ejecutaremos los siguientes comandos.
vars
build-key NombreDelCliente

Ya saben que el nombre del cliente se lo inventan ustedes.

Nuevamente nos hará las mismas preguntas, en las que solo cambia el hostname. recuerden que deben ponerle la misma contraseña que le pusieron a las llaves del servidor, y si van a crear llaves para varios clientes, deben tener un Nombre diferente.

Es todo. En este punto ya tenemos creadas las llaves del cliente y del servidor. así que los pasos siguientes son configurar el servidor.

2. Configuración del Servidor

2.1 Crear una conexion de Puente

Antes que nada, cuando instalaste el OpenVPN, debiste notar que estaba instalando un adaptador de red, y que incluso windows te decía que no estaba firmado y bla bla bla(ojo a este mensaje debiste darle continuar)

pues bien, este adaptador es de Gran importancia. así que lo que haremos será cambiarle el nombre. y crear un puente entre el adaptador de tu red normal, y el que ha creado OpenVPN

Esto lo hacen así

  1. En el Panel de Control, vallan a Conexiones de Red. y Renombren el “Conexión de Área local n” (TAP-Win32 Adapter V8) poniendole el nombre que quieran. yo le puse TAP y así me referiré a el en este tutorial
  2. Selecciona los dos adaptadores de red(el de open VPN y el de la red Física), hagan click derecho y luego conexiones de puente,  Este proceso demorará un poco, mientras se crea el puente..

Listo, con esto está creado el puente. les dejo acá un video de como hacerlo, está en inglés pero igual se entiende. aclaro que acá en vez de renombrar por TAP le pusieron OpenVPN, este nombre lo pones tu, lo importante es que lo recuerdes.

¿para qué se hace esto?

Muy sencillo. ya les había dicho que mi intención era que Ju4s3 y yo estubieramos en el mismo segmento de red. lo que hace esto es que lo dos adaptadores de red tengan la misma configuración IP, por lo que actuan como si fuera una sola tarjeta de red. es algo como esto, y bastante útil para mi caso. Una de las cosas mas importantes que se logra con esto, es que los paquetes de broadcast, se enviarán tanto por mi red local, como por la red virtual(la de OpenVPN) por lo cual llegarán a la red de mi compañero, y esto es algo bastante importante a la hora de jugar Online, ya que este es el método que usan los juegos para buscar servidores.

2.2 Configuración de la autenticación y la red

Lo siguiente que debemos hacer es ver los archivos que se generaron en el directorio

C:\Archivos de programa\OpenVPN\easy-rsa\keys.

De todos los archivos que hay acá los más importantes son los siguientes:

NombreDelServidor.crt

NombreDelServidor.key

ca.crt

dh1024.pem

NombreDelCliente.crt

NombreDelCliente.key

Los archivos que ven en Verde tendrán los nombres que ustedes les pusieron a su servidor y cliente. por ejemplo, cuando yo ejecuté los comandos buid-key los ejecuté así

buid-key AlejoVPN //para el servidor

buid-key JuSe //para el cliente.

por lo cual mis archivos son estos.

AlejoVPN.crt

AlejoVPN.csr

AlejoVPN.key

ca.crt

ca.key

dh1024.pem

JuSe.crt

JuSe.csr

JuSe.key

En fin, esto es importante, por que todos estos archivos deben copiarlos al directorio

C:\Archivos de programa\OpenVPN\config

Una ves copiados lo siguiente que vamos a hacer será crear el archivo de configuración del servidor en este mismo directorio, con el nombre de server.ovpn este archivo tendrá el siguiente contenido. (basado en el archivo que está en el directorio samples), antes de que copien el fichero les voy a explicar algo importante.

En mi caso la red que estaba usando era la red clase C 192.168.1.0.

Anteriormente mi router(modem ADSL) y mi red local estaban trabajando en la red Clase A 10.0.0.0 por lo cual tuve que configurar mi modem y mi red para que trabajaran en la red clase C. no es el propósito de este manual explicar este procedimiento ya que es diferente para cada modem. sin embargo aclaro que esto lo deben tener en cuenta.

Ahora, otra cosa importante es que cuando configuré mi red a la nueva IP, quedó en el rango de direcciones 192.168.1.1 al 192.168.1.10, y la red de mi compañero estaba en el rango 192.168.1.60 al 192.168.1.70, esto es importante para la configuración del servidor. Ahora si veamos cual es el archivo de configuración. las lineas antecedidas por un # o ; son comentarios y es en estos donde explicaré que debe ir en cada linea.

# Which TCP/UDP port should OpenVPN listen on?

# Acá va el puerto donde escuchará el servidor OpenVPN, este puerto debe estar abierto en el firewall y redireccionado en el router.

port 1194

# TCP o UDP, Recomiendo que usen UDP.
proto udp

#Como vamos a usar la red Puenteada usamos tap. en caso de ser enrutada sería tun.

dev tap

#Acá debe ir el nombre que le pusimos al Adaptador de red, del OpenVPN, en mi caso es TAP.

dev-node TAP

#Lo siguiente es indicarle al servidor cuales son los archivos que tienen las llaves.

# ya saben que deben ponerle los nombres correctos y que estos deben estar en el directorio config.

ca ca.crt
cert NombreDelServidor.crt
key  NombreDelServidor.key # Este archivo debe ser SECRETO!

# Parámetros Diffie hellman. asegurate de haber copiado este archivo en el directorio config

dh dh1024.pem

#log donde se guardará la IP virtual del cliente.

ifconfig-pool-persist ipp.txt

#acá van los datos en este orden.

#             IPLocal del Servidor Mascara de subred, primer IP de los clientes, última IP de los clientes
server-bridge 192.168.1.2 255.255.255.0 192.168.1.60 192.168.1.70

# Activa el servidor como puente.
server-bridge

#Si en tu caso hay varios clientes, y deseas que un cliente pueda ver a otro cliente, quítale el ; a la siguiente línea

;client-to-client

# Si deseas que varios clientes se puedan conectar con la misma firma quítale el ; a la siguiente línea

#Esto no es recomendado, como dije antes, es mejor crear una llave para cada cliente.
;duplicate-cn

# The keepalive directive causes ping-like
# messages to be sent back and forth over
# the link so that each side knows when
# the other side has gone down.
# Ping every 10 seconds, assume that remote
# peer is down if no ping received during
# a 120 second time period.
keepalive 10 120

# Enable compression on the VPN link.

# If you enable it here, you must also
# enable it in the client config file.
comp-lzo

# descomenta esta linea si quieres dar un límite de clientes conectados simultaneamente
;max-clients 100

# accessing certain resources on restart

# that may no longer be accessible because
# of the privilege downgrade.
persist-key
persist-tun

# Log de Estado
status openvpn-status.log

# Set the appropriate level of log

# file verbosity.
#
# 0 is silent, except for fatal errors
# 4 is reasonable for general usage
# 5 and 6 can help to debug connection problems
# 9 is extremely verbose
verb 3

Es todo.
Dejé algunos comentarios tal y como estaban en el archivo de ejemplo, por que no son relevantes para nuestro objetivo. por ahora con esta configuración el servidor funcionará perfectamente, según nuestro objetivo.

El campo naranja, que hace referencia al puerto lo pueden cambiar según sus necesidades, pero recuerden que el cliente debe tener también conocimiento del puerto.

3. Iniciar el Servicio

Para iniciar el servicio ejecuten el OpenVPN GUI el cual debió quedar en su escritorio cuando instalaron el programa.

ejecutarOpenVPNGUI Cómo configurar un Servidor OpenVPN en Windows.

luego en la barra de tareas aparecerá un icono como lo muestra la figura. le dan doble click, y ya estará funcionando el servidor.

OpenVPNIconobarra Cómo configurar un Servidor OpenVPN en Windows.

Después de darle doble click saldrá una ventana que muestra un log de lo que está haciendo y unos segundos después verán algo como esto.

serverConectadoOpenVPN Cómo configurar un Servidor OpenVPN en Windows.

Finalmente si entran a conexiones de Red verán que las 2 redes están activas.

ConexionesRedOpenVPN Cómo configurar un Servidor OpenVPN en Windows.

aclaro que los archivos

ca.crt

NombreDelCliente.crt

NombreDelCliente.key

deben enviarselos al cliente.

Lo siguiente entonces será configurar el cliente, este procedimiento lo pueden ver en este post

Si te ha gustado el post, compartelo y ayudanos a crecer.

Unete a nuestra Fanpage Siguenos en Twitter

Twitter Digg Delicious Stumbleupon Technorati Facebook Email

59 Respuestas para “Cómo configurar un Servidor OpenVPN en Windows.”

  1. Hola:
    Ante todo decirte que muy buenos manuales.
    He configurado todo como dices pero hay una cosa que no me ha quedado clara:
    “cuando configuré mi red a la nueva IP, quedó en el rango de direcciones 192.168.1.1 al 192.168.1.10, y la red de mi compañero estaba en el rango 192.168.1.60 al 192.168.1.70″
    Si configuras las dos redes, éstas quedarán en el rango 192.168.1.0/24 ¿No es así?
    Otra duda: Por defecto el puente se queda en DHCP. ¿Puedo ponerle una ip fija?
    Gracias
    Un saludo

  2. Perdona pero es que se me ha olvidado una cosa:
    Tanto en el servidor como en el cliente me pone en la conexión TAP cable de red desconectado.
    En el servidor lo he solucionado (no se si estará bien) quitando del puente la conexión TAP y volviéndola a poner una vez arrancado en servidor openvpn.
    Gracias

  3. exlente tutorial puesto en marcha la configuracion aunque no entendi amigo el punto de las configuraciones de red pusiste tu ip privada ??? se eupone que una ip privada no sales ala nube

    bueno me imagino que entu caso tenias un dns activo en un router por eso tomaste la cuestion de abir puertos tanto en el firewall del router y server y tu estas utilizando nat para tu ip privada me imagino

    enmicaso yo tengo una ip publica que sale directo a un enlace a la nube , solo abrirei mi puerto en mi server y ya,

    qkiero saber ke la configuracion que usare yo sera por decir una ip puclica xs

    ejemplo

    server-bridge 187.58.78.4 255.255.240.0 192.168.1.0 192.168.1.100

    nose si este bien peor supongo que por ahy kiero ke entren mis usarios en el internet. enteoria debes tener dos tarketas de red una entu red local y otra ke salga a internet .

    supongo

    saludos

  4. exelentisimo aporte ya lo configure y mefunciono me habia ekivocado en el TAP lo pude como en el video y no conectaba pero cambie elnombre y me pude conectar me falta probar los clientes saludos un 100 amigo

  5. no me funciona, la tarjeta tap nunca conecta

  6. buen dia he estado intentando hacer una vpn con openvpn del lado del servidor windows 7 ya le hice forwarding en el router a la ip del servidor con el puert 1194 y abri el puerto 1194 en el firewall de windows le doy conectar en el servidor y me asigna ip y toda la cosa pero del lado del cliente no conecta si lo hago de modo local me conecta sin ningun problema pero si intendo conectarme de modo remoto no me deja el cliente que crees que me este faltando saludos

  7. Hola, buenos dias. Solamente una pregunta, para realizar este proceso, necesito alguna ip publica en mi servidor o necesito dejar mi ip estatica con algun servicio o algo por el estilo???

  8. Gracias, de no ser por tu tutorial, no podria haber configurado mi vpn, de corazon muchas gracias.

Trackbacks/Pingbacks

  1. Cómo configurar un cliente OpenVPN en windows. | TodoTecnologia.net - 13 abril 2009

    […] recomendamos visitar el post de como configurar un servidor OpenVPN Lo primero es descargar el OpenVPB 2.1 desde acá, una vez instalado, lo que tenemos que hacer es ir directamente a la carpeta de instalación del programa, que por defecto es C:Archivos de ProgramaOpenVPNconfig y estando allí dentro de config hacemos lo siguiente: De la carpeta OpenVPNsample-config – Copiaremos el archivo cliente, y lo pegaremos en OpenVPNconfig. Luego de esto abrimos el archivo cliente con el bloc de notas y agregaremos al final el siguiente código: […]

Dejar un Comentario