- 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 –
Monografias.com
Conexión Segura con
OpenVPN
1. OPENVPN
2. Road
Warrior5. 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