- Road Warrior
- Configuración del lado Cliente en GNU/Linux
- Configuración del lado Cliente Windows 7
- Red a Red
Conexión Segura con OpenVPN
1. OPENVPN
2. Road Warrior
5. Red a Red
Uno de los métodos más seguros para conectarnos en forma remota a nuestros recursos de Red desde cualquier lugar remoto con muy pocos requerimientos.
Vamos a comenzar con una teoría de las Redes Privadas Virtuales. El concepto mas genérico de VPN, es la comunicación entre redes privadas a través de redes publicas, estableciendo un túnel virtual entre ambas partes (Cliente – Servidor), los cuales negocian esquemas de encriptación y autentificación que asegura la confidencialidad e integridad de los datos transmitidos por medio de una red publica, ej. Internet.
Llamamos Túnel Virtual al enlace lógico punto a punto o canal de comunicación usado entre el origen y el destino de la conexión, este enlace es cifrado, ya que el paquete original de red es encapsulado dentro de uno nuevo, aplicando esta política.De esta manera solo se muestra el origen y destino del paquete.
Quedando el paquete original cifrado dentro del segundo.
Fasc11_p12-15_1.tiff
La imagen pertenece a un Esquema de implementación de Infraestructura con Clientes conectados vía VPN, utilizando un Servidor Debian Squeeze con OpenVPN
Los tipos de conexiones se pueden realizar mediante dispositivos físicos como Firewalls o Routers que tengan embebido un cliente VPN o por software que va a ser nuestra situación. Vamos a realizar y repasar las múltiples opciones y conexiones que nos ofrece el Servidor de OpenVPN, aportando Scripts para realizar conexiones puentes, en caso de ser necesario. Este tipo de soluciones se utiliza para conexiones seguras a determinado lugar, ya que en muchas situaciones, en mi opinión cada vez mas, las empresas utilizan muchos recursos de red, como son sistemas, bases de datos, archivos, teléfonos internos registrándonos a nuestra Central IP, en este ultimo caso es una solución a los protocolos SIP que requieren de un rango de puertos abiertos apuntando a la central, de esta manera ya tenemos una justificada implementación de redes privadas virtuales para conservar nuestra infraestructura, ya que este tipo de solución nos brinda Autenticidad, Autorización, Integridad y por ultimo Confidencialidad, además de ser una solución estable siempre y cuando las condiciones de la infraestructura estén en optimas condiciones.
Los algoritmos utilizados son por ejemplo, MessegeDigest (MD), Secure Hash Algorithm (SHA), y dentro de los cifrados encontramos, Data Encryption Standard (DES), Triple DES (3DES) y AdvancedEncryption Standard (AES), que hacen de una VPN realmente muy seguras.
Para las implementación de VPN`s podemos tener en cuenta los distintos protocolos para llevar a cabo un proyecto, los mismo vamos a definir y realizar un breve descripción de los mismo.
IPSEC (Internet Protocol Security), Es denominado el protocolo estándar para VPN`s, donde se adapto a IPV4, ya que en sus comienzos fue pensado para el nuevo estándar de IPV6. Actualmente en GNU/Linux se encuentran 2 proyectos entre otros para dicho protocolo, los mismos son OpenSwan(www.openswan.org) y StrongsWan (www.strongswan.org)
PPTP (Point to Point TunnelingProtocol), fue desarrollado por un conjunto de empresas integrantes del PPTP Forum, las misma son Microsoft, U.S. Robotics, AscendComunications, 3Com/Primary Access y ECI Telematics. Este protocolo es muy usado, sobre todo en usuarios Windows, ya que puede ser instalado de manera muy fácil en los sistemas operativos de edición server de Microsoft, como así también los clientes son soportados por múltiples versiones de Windows. Aquí nos encontramos con que NO es uno de los protocolos más seguros, ya que se han encontrado diversas vulnerabilidades, que intentan ser corregidas de L2TP e IPSEC. Es un detalle para tener encueta a la hora de elegir un protocolo. En GNU/Linux podemos encontrar el proyecto PopTop (www.poptop.org)
SSL/TLS (Secure Sockets Layer /Transport Layer Security), es un protocolo que hincapié en la seguridad y la confiablidad del mismo. Empezando a ser soportado por distintos dispositivos de comunicación.
Esquema de Negociaciones entre Cliente y Servidor.
1- Negocian que algoritmos se van a usar para la comunicación. A continuación se detallan los usados comúnmente.
Criptografía de clave publica: RSA, Diffie-Hellman, DSA (Digital SignatureAlgorithm) o Fortalezza.
Cifrado Simetrico: RC2, RC4, IDEA (International Data EncryptionAlgorithm), DES (Data Encryption Standard), Triple DES o AES (Aadvanced Encryption Standard).
Hash: MD5 o de la familia SHA,
2- Se realiza el intercambio de claves publicas y autenticación basada en certificados digitales.
3- Se cifra el trafico basándose para esto en el cifrado simétrico.
Fasc11_p12-15_2.tiff
Esquema del formato del Paquete Encapsulado por OpenVPN, para el trafico de Red. Con la ventaja de administrar todas las conexiones por un solo puerto.
Desde el año 2001 OpenVPN es el proyecto mas usado en GNU/Linux y el que tiene mas desarrollo con este protocolo.
OPENVPN
Tal como mencionamos anteriormente, OpenVPN es un software basado en autenticación SSL/TLS, que implementa conexiones de capa 2 o capa 3 del modelo OSI, es decir el túnel realizado puede interactuar con protocolo IP, y también los que no lo son, ejemplo Broadcast (NetBios). Esto da cuenta de la gran flexibilidad del proyecto ya que no todos los protocolos lo admiten.
En entre las cualidades mas destacadas encontramos la capacidad de trabajar bajo red NAT, es decir, nuestros servidores y clientes pueden estar trabajando con IP`s privadas y funcionar perfectamente.
En cuanto a las conexiones soporta estar en redes con Proxy sin inconvenientes, además de trabajar con IP´s dinámicas asociándolas a un cliente DDNS (DynDns, No-IP, etc), por lo tanto, si tenemos conexiones de internet convencionales como ADSL o Cablemodem también este software se adapta a estas circunstancias.
Por ultimo, podemos asegurar que los clientes son MULTIPLATAFORMA, ya podemos trabajar con diversos sistemas operativos, Linux, Solaris, OpenBSD, Windows 2000/Xp/Server , y Mac OS X.
En este artículo veremos 2 tipos de conexiones que podemos realizar con OpenVPN, utilizando como distribución GNU/Linux Debian Squeeze.
Road Warrior
Es una configuración muy utilizada, ya nos permite conectarnos a nuestro servidor OpenVPN integrándonos a nuestra red LAN/Intranet, y pudiendo acceder a todos los recursos necesarios. Este tipo de soluciones son usadas para trabajadores remotos u oficinas pequeñas que necesitan acceder a recursos, de esta manera se reducen costos de infraestructura ya que lo único que necesitaremos es tener instalado de forma local un cliente OpenVPN y una conexión a Internet. De la misma manera como ya comentamos anteriormente, a este usuario se le podría habilitar un interno remoto con un cliente Softphone, como Zoiper (www.zoiper.com), y registrarlo en nuestra Central IP, junto a nuestros FileServer, Dominio, Impresoras de red, Sistemas, Bases de Datos.
En nuestro primer paso, recordemos realizar el Port Forward, hacia nuestro servidor OpenVPN, por defecto usa el UDP 1194, pero mi recomendación es usar un puertos mas altos, ej. 10194. Vamos a tomar como parámetros para que la explicación sea mas visible lo siguiente;
IP VpnServer : 10.10.10.200
Puerta de Enlace: 10.10.10.1
Dirección Publica : vpnserver.dyndns.org
1- Ahora si, desde nuestro servidor ejecutamos la instalación de los paquetes necesarios.
2- Generar llaves para el servidor. Primero Copiar la carpera "easy-rsa" al directorio de OpenVPN para luego modificar el archivo
"vars". Alli modificamos las líneas 64 a 68, con nuestro editor preferido (nano, vi, vim).
3- A continuación, seguiremos con una serie de pasos a configurar del lado Servidor. ejecutar los siguientes comandos, para la creación del Certificado de Autoridad, Servidor de llaves, llaves de Usuarios, Generar Diffie Hellamn, Generar Static Key. ~#
4- Configuración del server.conf, ubicado en /etc/openvpn/server.conf.
5- Bridge o Puente Script, para que nos introduzca en la red.
Luego, en este paso vamos a darle permisos de ejecución al Script en Bash, para luego agregarlo en el inicio del sistema
Fasc11_p12-15_3.jpg
Reiniciando el servidor con "init 0"o "reboot", ya deberíamos tener nuestro servidor andando, luego realizamos un "ifconfig" y veremos las interfaces de red que nos muestra el servidor.
Configuración del lado Cliente en GNU/Linux
1- Instalando OpenVPN en GNU/Linux Utilizando nuevamente Debian Squeeze, instalamos OpenVPN y luego el directorio key para los certificados.
2- GNU/Linux, como primera medida debemos pasaron los certificados que generamos en el servidor, tanto los de usuarios como los de autoridad, este proceso vamos a realizar mediante la herramienta SCP.
Nos paramos en el servidor y realizamos el traspaso
3- Creando el archivo de configuración cliente en el servidor en /etc/openvpn/client.conf
Con estos 3 pasos deberíamos de estar en condiciones de tener nuestro cliente conectado, solo restaría reiniciar el cliente ("init 6"), o reiniciar el servicio con ("/etc/init.d/openvpnrestart").
Consola del Cliente OpenVPN. Como vemos la interfaz física "eth0", nos brinda una ip privada de una Lan, y por otro lado la interfaz virtual "tap0", que tomo IP desde nuestro servidor en el rango configurado (10.10.10.10–10.10.10.20)
Aquí ya podríamos realizar un PING a un dispositivo de red, o conectarnos a un recurso activo, mediante los protocolos determinados.
Configuración del lado Cliente Windows 7
1- Descargamos el programa OpenVPN Cliente para Windows (www.openvpn.net), ejecutamos el instalador y procedemos con la instalación dejando todo por defecto. Durante el proceso nos instala un driver de red para la interface virtual "tap".
2- Ingresar a la carpeta del programa ubicada en "C:Archivos de ProgramaOpenVPNsimple-config" y copiar el archivo "client.ovpn" a "C:Archivos de ProgramaOpenVPNconfig".
3- Mediante el programa "WinSCP", podemos extraer los certificados del Servidor, que se ubican en "/etc/openvpn/keys", los mismos son "usuario02.crt – usuario02.key – ca.crt – ta.key" e introducirlos dentro del mismo directorio que "cliente" (C:Archivos de ProgramaOpenVPNconfig).
4- Continuamos con la edición del "client.ovpn", mediante un Bloc de Notas por ejemplo, y copiamos lo siguiente.
Fasc11_p12-15_5.tiff
Esquema de configuración de OpenVPN para cliente Windows 7. Para otros sistemas operativos Windows, el procedimiento de instalación es igual.
5- En este ultimo paso, debemos realizar un "click derecho" sobre el icono de OpenVPN y seleccionar "Connect"
Fasc11_p12-15_6.tiff
En este grafico observamos nuestro Windows 7, conectado a una VPN, entregándonos el rango de IP seleccionado y ya pudiendo acceder a nuestros recursos compartidos.
Red a Red
Red a Red es una configuración utilizada mayormente para unir sucursales de empresas, ya que funciona teniendo servidores actuando como clientes, autenticando contra uno que actúa como Servidor Master. La configuración se realiza de manera similar a Road Warrior entre servidores, pero luego para los clientes es transparente, es decir, Lan A puede compartir recursos con Lan B, y similar para mas redes involucradas.
Para realizar esta configuración, solo debemos crear una carpeta con el nombre "ccd" y agregar la configuración cliente.
Fasc11_p12-15_6.tiff
Lo que indica el grafico, es visualizar la comunicación, es decir que busque dentro de "ccd" la configuración cliente, indicándola la ruta para alcanzar la red.
Autor:
Gustavo Martin Moglie
Linktec Argentina