INSTALACIÓN DE UN SERVIDOR VPN CON OPENVPN Y CLIENTE WINDOWS AARON STEVENSON SOTO VERGEL 1151452 WILLIAM RICARDO ARENAS VERA 0152198 Presentado a: JAN POLO CEQUEDA OLAGO UNIVERSIDAD FRANCISCO DE PAULA SANTANDER FACULTAD DE INGENIERÍA PLAN DE ESTUDIOS DE INSGIERÍA DE SISTEMAS CÚCUTA 2016 VPN (Virtual Private Network) Una red privada virtual (VPN) es una red privada construida dentro de una infraestructura de red pública, tal como la red mundial de Internet. Es una tecnología de red que permite una extensión segura de la red local (LAN) sobre una red pública o no controlada como Internet. Permite que la computadora en la red envíe y reciba datos sobre redes compartidas o públicas como si fuera una red privada con toda la funcionalidad, seguridad y políticas de gestión de una red privada. Esto se realiza estableciendo una conexión virtual punto a punto mediante el uso de conexiones dedicadas, cifrado o la combinación de ambos métodos. Una red privada virtual se basa en un protocolo denominado protocolo de túnel, es decir, un protocolo que cifra los datos que se transmiten desde un lado de la VPN hacia el otro. VENTAJAS Cuando deseamos crear una VPN dentro de nuestra empresa siempre debemos saber qué ventajas nos puede proporcionar esta tecnología. Las principales ventajas son: Seguridad: Por medio de una VPN podemos crear túneles en los cuales pasan la información encriptada los clientes por lo cual existe una integridad segura de los datos. Autenticación y autorización: Solo se permiten conectarse a los equipos o dispositivos móviles autorizados, por medio de certificados de autenticación, llaves encriptadas y usuarios/contraseñas. Velocidad: Cuando enviamos o solicitamos información por medio de una red VPN es comprimida y descomprimida entre los 2 clientes de la VPN, esto hace que la VPN funcione más rápido en la transferencia de información. Administración del ancho de banda: Es posible solicitar a nuestros ISP un ancho de banda específico para nuestra red VPN. Con la tecnología VPN podremos conectar redes locales sin importar la zona geográfica, con el simple hecho de estar conectado a internet, nos ahorraremos los grandes costos de los enlaces físicos, y nos proporcionaría una conexión sumamente segura. En Wikipedia se encuentra la siguiente definición de openVPN: OpenVPN es una solución de conectividad basada en software libre: SSL (Secure Sockets Layer) VPN Virtual Private Network (red virtual privada), OpenVPN ofrece conectividad punto-a-punto con validación jerárquica de usuarios y host conectados remotamente, resulta una muy buena opción en tecnologías Wi-Fi (redes inalámbricas IEEE 802.11) y soporta una amplia configuración, entre ellas balanceo de cargas. Está publicado bajo la licencia GPL, de software libre. Podemos mencionar los distintos tipos de Redes Privadas Virtuales (VPN): VPN de Acceso Remoto: Este tipo de VPN consiste en brindar a los colaboradores externos la posibilidad de conectarse a la red desde sitios remotos a través de internet, al ser autenticados con una relación de confianza, mayormente tienen los mismos accesos que un colaborador interno. VPN Punto a Punto: Este tipo de VPN consiste en proporcionar un túnel para la conexión de puntos remotos (Sucursales) a una sede central, para así eliminar los costosos enlaces Punto a Punto tradicionales (Utilizando medios físicos). VPN sobre Red Local: Este tipo de VPN, también denominado "VPN OVER LAN" consiste en un VPN de Acceso remoto, pero en vez de utilizar internet como vínculo de acceso, utilizaría la misma red Local. Normalmente esto se usa para proporcionar seguridad extra a ciertas zonas de la red, como por ejemplo que ciertos usuarios que tengan las relaciones de confianzas necesarias puedan acceder a la VPN. ESQUEMAS BÁSICOS DIAGRAMA DE RED INSTALACION Y CONFIGURACION OPENVPN EN UBUNTU SERVER 16.04 1. Lo primero es instalar los paquetes de los servidores, para eso escribimos en la terminal lo siguiente: Primero se autentica como súper usuario para no tener más adelante problemas de permisos, para eso se escribe “sudo su” y presiona enter, pedirá la contraseña, se digita la contraseña y listo Ahora se escribe el siguiente comando para instalar los paquetes del servidor openvpn y la certificación de autoridad de certificación (CA) que es el paquete easy-rsa: 2. Terminada la instalación se ubica en la siguiente ruta /usr/share/doc/openvpn/examples/, para eso en la terminal se escribe lo siguiente: 3. Se copia el contenido de la carpeta easy-rsa en la siguiente ruta /etc/openvpn. Para eso en la terminal se escribe lo siguiente: 4. Se ubica en la carpeta sample-config-files; para eso digita lo siguiente en la consola: 5. Se copia el archivo server.conf.gz y el archivo client.conf en la siguiente ruta /etc/openvpn, para eso se escribe lo siguiente en la terminal: 6. Se dirige a la carpeta “openvpn” ubicada en etc (/etc/openvpn), luego se descomprime el archivo server.conf.gz; para esto se escribe lo siguiente en la terminal: 7. Luego se dirige a la carpeta easy-rsa y se modifica el archivo vars, para esto se escribe lo siguiente en la terminal: 8. Dentro del archivo se procede a editar lo siguiente: Este archivo permite generar los certificados y las llaves de nuestro servidor. Luego en esta parte del archivo nos dirigimos a modificar la información correspondiente con nuestros datos. Guardamos y cerramos el archivo. 9. Para poder crear las llaves y los certificados haremos los siguiente: lo primero es cambiarle los permisos a la carpeta easy-rsa, para ello ejecutamos en consola Luego nos ubicamos en la carpeta easy-rsa. Luego ejecutamos el archivo vars con la siguiente instrucción: (. ./vars) Luego limpiamos la carpeta keys de cualquier certificado creado con anterioridad, para eso escribimos lo siguiente: Procedemos a crear el certificado y llenamos los datos con la información necesaria. Para esto ejecutamos lo siguiente: 10. Ahora creamos la llave del servidor asignándole un nombre, en nuestro caso el nombre será “servidorubuntu”, para ello ejecutamos lo siguiente en la terminal: Luego ingresamos los datos, nombre del archivo y le ingresamos una contraseña; en nuestro caso el nombre del archivo será “svrubuntu” y la contraseña “12345” Luego procedemos a crear una llave para nuestro usuario, esto nos servirá para autenticarnos en nuestro servidor. En nuestro caso el nombre del archivo será “usuario1” y la contraseña “123456”. Por último configuramos los certificados Diffie Hellman (./build-dh), para las conexiones en el servidor openVPN. Brindamos los permisos para la carpeta keys de la siguiente manera: 11. Copiamos los certificados y las llaves que hemos creado a la carpeta “openvpn”, ; nos ubicamos en la carpeta “keys” dentro de la carpeta “easy-rsa”, en la terminal escribimos lo siguiente: 12. Luego nos ubicamos en la carpeta “openvpn” y editamos el archivo “server.conf”: En el archivo editamos el nombre de nuestro certificado del servidor y la llave. Para nuestro caso el nombre del certificado es “servidorubuntu.crt” y el nombre de la llave es “servidorubuntu.key” Guardamos y cerramos el archivo. 13. Ya hemos creado nuestras llaves y certificados de nuestro servidor, ahora necesitamos ejecutar nuestro servidor en un usuario cliente, para nuestro caso será Windows 10. Para esto debemos copiar los siguientes archivos en el cliente: “usuario1.crt, usuario1.key, ca.crt, ca.key, client.conf, servidorubuntu.crt, servidorubuntu.key”. Para transferir estos archivos al cliente que en nuestro caso es Windows 10, instalaremos el servidor samba para poder compartir la carpeta y copiar los archivos en el cliente. Para esto ejecutamos lo siguiente: Una vez instalado, editaremos el archivo “smb.conf” ubicado en la ruta “/etc/samba/smb.conf”. Nos ubicamos al final del archivo y editamos lo siguiente: Guardamos y cerramos. Luego procedemos a crear la carpeta “compartir” en el directorio que definimos anteriormente que es: /usr/compartir. Para que surtan los cambios reiniciamos el servidor samba escribiendo lo siguiente en la terminal: Nos ubicamos en la carpeta “keys” que se encuentra en la siguiente ruta “/etc/openvpn/easy-rsa/keys/. Una vez ubicados en esta carpeta procedemos a copiar los certificados y llaves creadas (archivos mencionados anteriormente) en la carpeta “compartir” que creamos: Adicionalmente copiaremos el archivo “client.conf” que se encuentra ubicado en la carpeta “openvpn”. 14. Ahora nos dirigimos a nuestro cliente Windows 10, verificamos que tenga internet y que tenga instalado el OpenVPN GUI. Lo podemos descargar en la siguiente dirección para 64 bits: http://vpn1.reliablehosting.com/openvpn-scramble-2.3.6-I601-x86_64.exe Se instala normal, como cualquier programa en Windows. 15. Ingresamos a nuestra carpeta compartida desde el cliente, para esto en “ejecutar” digitamos la dirección ip de nuestro servidor en Ubuntu, que para nuestro caso es la \\192.168.0.70 y le damos enter. Entramos en la carpeta compartir y copiamos los archivos en el cliente en una carpeta: Luego modificaremos el archivo “client.conf” con un editor de texto, en nuestro caso usaremos Notepad++, pero se puede usar también WordPad. Modificamos el archivo en las siguientes líneas, modificando la dirección ip de nuestro servidor Ubuntu, esto sirve para conectarnos remotamente al servidor y autenticarnos. Y también modificamos las siguientes líneas con nuestro certificado de cliente y su llave; en nuestro caso es usuario1.crt y usuario1.key. Guardamos y cerramos. Ahora lo sobrescribimos como ovpn, para esto damos clic derecho sobre el archivo-cambiar nombre y lo modificamos con extensión .ovpn Copiamos todos los archivos en la carpeta “config” de nuestro cliente en la siguiente ruta: “C:\Program Files\OpenVPN\config” 16. Regresamos a nuestro servidor Ubuntu y reiniciamos el servidor opnvpn para que surtan los cambios: 17. Una vez reiniciado nuestro servidor, regresamos a nuestro cliente Windows 10 y ejecutamos el servidor: Luego se conecta: Clic derecho sobre el icono que aparece y clic en Connect Estamos conectados al servidor openvpn, nos asigna una dirección ip para la nueva conexión.