Cómo configurar un Servidor OpenVPN en Windows. Publicada por AlejoCendek en General, Informática, Juegos, Software .
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.

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 ProgramaOpenVPN, 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 ProgramaOpenVPNeasy-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=mail@host.domain
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=todotecnologia.net@gmail.com
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 ProgramaOpenVPNeasy-rsakeys
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 programaOpenVPNeasy-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í
- 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
- 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 programaOpenVPNeasy-rsakeys.
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 programaOpenVPNconfig
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.

luego en la barra de tareas aparecerá un icono como lo muestra la figura. le dan doble click, y ya estará funcionando el servidor.
![]()
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.

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

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


















01 • Trackback :: Cómo configurar un cliente OpenVPN en windows. | TodoTecnologia.net 13.04.09 a las 2:40 PM
[...] 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: [...]
02 • Fernando comenta: 18.07.09 a las 11:55 AM
HOlas Alejo,
Esta groso tu post, te dire que segui todo la guia, pero tengo unas dudas, al momento de conectar el servidor establece conexion perfecto pero pierdo internet, es mas luego hacer el puente entre mi adaptador de red y el TAP ya me quedo sin internet, pero el server conecta sin problemas, aun no intento conectar el cliente, pero creo q no es normal que pierda internet sino como haria la conexion desde la otra red (tendra algo que ver que las pruebas las hago en maquinas virtuales?????), de todas maneras adjunto un log, por favor espero y puedas responderme a estas dudas muchas gracias, y de nuevo decirte que esta muy groso el post, gracias.
Atte
Fernando
PD: Adjunto log de Conexion
Sat Jul 18 20:22:27 2009 OpenVPN 2.0.9 Win32-MinGW [SSL] [LZO] built on Oct 1 2006
Sat Jul 18 20:22:27 2009 Diffie-Hellman initialized with 1024 bit key
Sat Jul 18 20:22:27 2009 TLS-Auth MTU parms [ L:1574 D:138 EF:38 EB:0 ET:0 EL:0 ]
Sat Jul 18 20:22:27 2009 TAP-WIN32 device [TAP] opened: \.Global{C445E300-6486-48BE-9A10-323C011BA14A}.tap
Sat Jul 18 20:22:27 2009 TAP-Win32 Driver Version 8.4
Sat Jul 18 20:22:27 2009 TAP-Win32 MTU=1500
Sat Jul 18 20:22:27 2009 Sleeping for 10 seconds…
Sat Jul 18 20:22:36 2009 NOTE: could not get adapter index for DEVICETCPIP_{C445E300-6486-48BE-9A10-323C011BA14A}, status=55 : El recurso de red o el dispositivo especificados ya no se encuentran disponibles.
Sat Jul 18 20:22:36 2009 Data Channel MTU parms [ L:1574 D:1450 EF:42 EB:135 ET:32 EL:0 AF:3/1 ]
Sat Jul 18 20:22:36 2009 UDPv4 link local (bound): [undef]:1194
Sat Jul 18 20:22:36 2009 UDPv4 link remote: [undef]
Sat Jul 18 20:22:36 2009 MULTI: multi_init called, r=256 v=256
Sat Jul 18 20:22:36 2009 IFCONFIG POOL: base=192.168.1.40 size=41
Sat Jul 18 20:22:36 2009 IFCONFIG POOL LIST
Sat Jul 18 20:22:36 2009 Initialization Sequence Completed
03 • AlejoCendek comenta: 21.07.09 a las 10:44 PM
Hola Fernando.
Te recomiendo que primero que todo, antes de hacer el puente verifiques las direcciones ip, puerta de enlace y dns que tiene asignado tu adaptador de red(el que normalmente te ofrece la conexión a internet), si hay direcciones asignadas cuando haces el puente esta no se asignan al puente por lo cual no da internet.
en el log que dejaste no veo que se haya hecho la conexión con el cliente.
04 • Bryan comenta: 27.07.09 a las 9:55 AM
HOla!!!! no entendi lo de los rangos de las ip, no importa si lo ago igual? digo, si en cuando configure el servidor uso los mismos rangos para el servidor(192.168.1.1 al 192.168.1.10) y para el cliente(192.168.1.60 al 192.168.1.70) se te agradece.
05 • Bryan comenta: 27.07.09 a las 10:38 AM
AAAA otra cosa, lo hice todo como sta pero al final el adaptador TAP (asi lo llame yo tambien) no se conecta x,( q paso???
06 • AlejoCendek comenta: 28.07.09 a las 3:21 PM
este rango solo se configura en el servidor, y debería ser solo un rango dentro de tu segmento de red.
ahora la conexión la hace el cliente hacia el servidor, el TAP quedará a la espera de conexiones
07 • Patricio comenta: 22.09.09 a las 7:41 PM
Hola como estas? tengo un problema y espero que me puedas ayudar. El servidor lo tengo instalado en un debian y el cliente esta en windows vista, ahora al momento de conectarme me sale esto y me rechaza la conexion. Sabes que puedo hacer
Log
All TAP-Win32 adapters on this system are currently in use
Espero qe me puedas dar una mano
Saludos
Patricio
08 • AlejoCendek comenta: 22.09.09 a las 9:52 PM
Hola que tal. ese error por lo general se da por que otra instancia de OpenVPN está corriendo y usando el adaptador TAP que configuraste. asegúrate de eso. y si sigue el error buscámos otra posible causa,
09 • David comenta: 25.01.10 a las 7:40 PM
buenas tardes, gracias muy bueno tu post me ayudo mucho, aunque no se si aun sigas contestando por que al parecer ya tiene un buen ratote .solo tengo un problema al correr el servidor me da el siguiente problema:
Options error: Unrecognized option or missing parameter(s) in server.ovpn:40: server-bridge (2.1_rc7)
Use –help for more information.
no me reconece el nombre y si solo lo dejo en server me da error dice la conexion tap no es valida.
me gustaria su punto de vista saludos y bien dia
010 • David comenta: 25.01.10 a las 7:55 PM
y probe desabilitando server bridge y me aparece esto:
Mon Jan 25 18:07:53 2010 OpenVPN 2.1_rc7 Win32-MinGW [SSL] [LZO2] [PKCS11] built on Jan 29 2008
Mon Jan 25 18:07:53 2010 Diffie-Hellman initialized with 1024 bit key
Mon Jan 25 18:07:53 2010 TLS-Auth MTU parms [ L:1574 D:138 EF:38 EB:0 ET:0 EL:0 ]
Mon Jan 25 18:07:53 2010 TAP-Win32 adapter ‘TAP’ not found
Mon Jan 25 18:07:53 2010 Exiting
011 • AlejoCendek comenta: 01.02.10 a las 2:20 PM
claro, al deshabilitar el bridge ya no te reconoce el adaptador de red virtual. en cuanto al comentario anterior, creo que tienens mal la línea 40 en el archivo server.ovpn que se encuentra dentro de la carpeta del programa. verifica esa línea con las planteadas en el post.
012 • sercho comenta: 06.02.10 a las 2:23 PM
“Hola que tal. ese error por lo general se da por que otra instancia de OpenVPN está corriendo y usando el adaptador TAP que configuraste. asegúrate de eso. y si sigue el error buscámos otra posible causa”
disculpa con que comandos,parametros o herramientas quito estas instancias y como configuro la vpn en server i cliente para que inicien cuando windows inicia sin necesidad que el usuario interactue con estas
gracias
mi correo es “sercho_an@hotmail.com”
gracias de nuevo
013 • sercho comenta: 06.02.10 a las 7:17 PM
Hola que tal. ese error por lo general se da por que otra instancia de OpenVPN está corriendo y usando el adaptador TAP que configuraste. asegúrate de eso. y si sigue el error buscámos otra posible causa,
hola de que forma quito otros adaptadores que esten usando el tap