Open+VPN+III

enlace original http://www.todotecnologia.net/como-configurar-un-servidor-openvpn-en-windows.htm

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 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=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 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í 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.
 * 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..

¿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. 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]