Monografias | Virtual Private Networks (VPN)Virtual Private Networks (VPN)Resumen: Necesidades y surgimiento de las VPNs. Estructura de las VPNs. Protocolos utilizados en las VPNs. Configuración de protocolos. Configuración de una VPN bajo LINUX. Indice
Necesidades y surgimiento
de las VPNs Hasta no hace mucho tiempo, las diferentes
sucursales de una empresa podían tener, cada una, una red local a la sucursal
que operara aislada de las demás. Cada una de estas redes locales tenía su
propio esquema de nombres, su propio sistema de email, e inclusive usar
protocolos que difieran de los usados en otras sucursales. Es decir, en cada
lugar existía una configuración totalmente local, que no necesariamente debía
ser compatible con alguna o todas las demás configuraciones de las otras áreas
dentro de la misma empresa. A medida que la computadora fue siendo
incorporada a las empresas, surgió la necesidad de comunicar las diferentes
redes locales para compartir recursos internos de la empresa. Para cumplir este
objetivo, debía establecerse un medio físico para la comunicación. Este medio
fueron las líneas telefónicas, con la ventaja de que la disponibilidad es muy
alta y que se garantiza la privacidad. Además de la comunicación entre diferentes
sucursales, surgió la necesidad de proveer acceso a los usuarios móviles de la
empresa. Mediante Remote Access Services(RAS), este tipo de usuario puede
conectarse a la red de la empresa y usar los recursos disponibles dentro de la
misma. El gran inconveniente del uso de las líneas
telefónicas es su alto costo, ya que se suele cobrar un abono mensual más una
tarifa por el uso, en el que se tienen en cuenta la duración de las llamadas y
la distancia hacia donde se las hace. Si la empresa tiene sucursales dentro del
mismo país pero en distintas áreas telefónicas, y, además, tiene sucursales
en otros países, los costos telefónicos pueden llegar a ser prohibitivos.
Adicionalmente, si los usuarios móviles deben conectarse a la red corporativa y
no se encuentran dentro del área de la empresa, deben realizar llamadas de
larga distancia, con lo que los costos se incrementan. Las Virtual Private Networks (VPN) son una
alternativa a la conexión WAN mediante líneas telefónicas y al servicio RAS,
bajando los costos de éstos y brindando los mismos servicios, mediante el uso
de la autenticación, encriptación y el uso de túneles para las conexiones. Una Virtual Private Network (VPN) es un sistema
para simular una red privada sobre una red pública, por ejemplo, Internet. Como
se muestra en la figura siguiente, la idea es que la red pública sea
"vista" desde dentro de la red privada como un cable lógico que une
las dos o más redes que pertenecen a la red privada.
Las VPNs también permiten la
conexión de usuarios móviles a la red privada, tal como si estuvieran en una
LAN dentro de una oficina de la empresa donde se implementa la VPN. Esto resulta
muy conveniente para personal que no tiene lugar fijo de trabajo dentro de la
empresa, como podrían ser vendedores, ejecutivos que viajan, personal que
realiza trabajo desde el hogar, etc. La forma de comunicación entre
las partes de la red privada a través de la red pública se hace estableciendo
túneles virtuales entre dos puntos para los cuales se negocian esquemas de
encriptación y autentificación que aseguran la confidencialidad e integridad
de los datos transmitidos utilizando la red pública. Como se usan redes públicas,
en general Internet, es necesario prestar debida atención a las cuestiones de
seguridad, que se aborda a través de estos esquemas de encriptación y
autentificación y que se describirán luego. La tecnología de túneles
("Tunneling") es un modo de transferir datos en la que se encapsula un
tipo de paquetes de datos dentro del paquete de datos de algún protocolo, no
necesariamente diferente al del paquete original. Al llegar al destino, el
paquete original es desempaquetado volviendo así a su estado original. En el
traslado a través de Internet, los paquetes viajan encriptados. Las técnicas de autenticación
son esenciales en las VPNs, ya que aseguran a los participantes de la misma que
están intercambiando información con el usuario o dispositivo correcto. La
autenticación en VPNs es conceptualmente parecido al logeo en un sistema como
nombre de usuario y contraseña, pero con necesidades mayores de aseguramiento
de validación de identidades. La mayoría de los sistemas de autenticación
usados en VPN están basados en un sistema de claves compartidas. La autenticación es llevada a
cabo generalmente al inicio de una sesión, y luego aleatoriamente durante el
curso de la misma, para asegurar que no haya algún tercer participante que se
haya intrometido en la conversación. La autenticación también puede ser usada
para asegurar la integridad de los datos. Los datos son procesados con un
algoritmo de hashing para derivar un valor incluido en el mensaje como checksum.
Cualquier desviación en el checksum indica que los datos fueron corruptos en la
transmisión o interceptados y modificados en el camino. Ejemplos de sistemas de
autenticación son Challenge Handshake Authentication Protocol (CHAP) y RSA. Todas las VPNs tienen algún tipo
de tecnología de encriptación, que esencialmente empaqueta los datos en un
paquete seguro. La encriptación es considerada tan esencial como la autenticación,
ya que protege los datos transportados de la poder ser vistos y entendidos en el
viaje de un extremo a otro de la conexión. Existen dos tipos de técnicas de
encriptación que se usan en las VPN: encriptación de clave secreta, o privada,
y encriptación de clave pública. En la encriptación de clave
secreta, se utiliza una contraseña secreta conocida por todos los participantes
que necesitan acceso a la información encriptada. Dicha contraseña se utiliza
tanto para encriptar como para desencriptar la información. Este tipo de
encriptación posee el problema que, como la contraseña es compartida por todos
los participantes y debe mantenerse secreta, al ser revelada, debe ser cambiada
y distribuida a los participantes, con lo cual se puede crear de esta manera algún
problema de seguridad. La encriptación de clave pública
implica la utilización de dos claves, una pública y una secreta. La primera es
enviada a los demás participantes. Al encriptar, se usa la clave privada propia
y la clave pública del otro participante de la conversación. Al recibir la
información, ésta es desencriptada usando su propia clave privada y la pública
del generador de la información. La gran desventaja de este tipo de encriptación
es que resulta ser más lenta que la de clave secreta. En las VPNs, la encriptación
debe ser realizada en tiempo real. Por eso, los flujos encriptados a través de
una red son encriptados utilizando encriptación de clave secreta con claves que
son solamente buenas para sesiones de flujo. El protocolo más usado para la
encriptación dentro de las VPNs es IPSec, que consiste en un conjunto de
proposals del IETF que delinean un protocolo IP seguro para IPv4 y IPv6. IPSec
provee encriptación a nivel de IP. El método de túneles, como fue
descrita anteriormente, es una forma de crear una red privada. Permite
encapsular paquetes dentro de paquetes para acomodar protocolos incompatibles.
Dentro de los protocolos que se usan para la metodología de túneles se
encuentran Point-to-Point Tunneling Protocol (PPTP), Layer-2 Fowarding Protocol
(L2FP) y el modo túnel de IPSec. Protocolos
utilizados en las VPNs PPTP Point-to-Point Tunneling Protocol fue
desarrollados por ingenieros de Ascend Communications, U.S. Robotics, 3Com
Corporation, Microsoft, y ECI Telematics para proveer entre usuarios de acceso
remoto y servidores de red una red privada virtual. Como protocolo de túnel, PPTP encapsula
datagramas de cualquier protocolo de red en datagramas IP, que luego son
tratados como cualquier otro paquete IP. La gran ventaja de este tipo de
encapsulamiento es que cualquier protocolo puede ser ruteado a través de una
red IP, como Internet. PPTP fue diseñado para permitir a los usuarios
conectarse a un servidor RAS desde cualquier punto en Internet para tener la
misma autenticación, encriptación y los mismos accesos de LAN como si discaran
directamente al servidor. En vez de discar a un modem conectado al servidor RAS,
los usuarios se conectan a su proveedor y luego "llaman" al servidor
RAS a través de Internet utilizando PPTP. Existen dos escenarios comunes para este tipo de
VPN: Para el primero de los
escenarios, el usuario remoto estable una conexión PPP con el ISP, que luego
establece la conexión PPTP con el servidor RAS. Para el segundo escenario, el
usuario remoto se conecta al ISP mediante PPP y luego "llama" al
servidor RAS mediante PPTP. Luego de establecida la conexión PPTP, para
cualquiera de los dos casos, el usuario remoto tendrá acceso a la red
corporativa como si estuviera conectado directamente a la misma. La técnica de encapsulamiento de
PPTP se basa en el protocolo Generic Routing Encapsulation (GRE), que puede ser
usado para realizar túneles para protocolos a través de Internet. La versión
PPTP, denominada GREv2, añade extensiones para temas específicos como Call Id
y velocidad de conexión. El paquete PPTP está compuesto
por un header de envío, un header Ip, un header GREv2 y el paquete de carga. El
header de envío es el protocolo enmarcador para cualquiera de los medios a través
de los cuales el paquete viaja,
ya sea Ethernet, frame relay, PPP. El header IP contiene información relativa
al paquete IP, como ser, direcciones de origen y destino, longitud del datagrama
enviado, etc. El header GREv2 contiene información sobre el tipo de paquete
encapsulado y datos específicos de PPTP concernientes a la conexión entre el
cliente y servidor. Por último, el paquete de carga es el paquete encapsulado,
que, en el caso de PPP, el datagrama es el original de la sesión PPP que viaja
del cliente al servidor y que puede ser un paquete IP, IPX, NetBEUI, entre
otros. La siguiente figura ilustra las capas del encapsulamiento PPTP. Para la autenticación, PPTP
tiene tres opciones de uso: CHAP, MS-CHAP y aceptar cualquier tipo, inclusive
texto plano. Si se utiliza CHAP, standard en el que se intercambia un
"secreto" y se comprueba ambos extremos de la conexión coincidan en
el mismo, se utiliza la contraseña de Windows NT, en el caso de usar este
sistema operativo, como secreto. MS-CHAP es un standard propietario de Microsoft
y resulta ser una ampliación de CHAP. Para la tercer opción, el servidor RAS
aceptará CHAP, MS-CHAP o PAP (Password Autenthication Protocol), que no
encripta las contraseñas. Para la encriptación, PPTP
utiliza el sistema RC4 de RSA, con una clave de sesión de 40 bits. IPSec trata de remediar algunas falencias de IP,
tales como protección de los datos transferidos y garantía de que el emisor
del paquete sea el que dice el paquete IP. Si bien estos servicios son
distintos, IPSec da soporte a ambos de una manera uniforme. IPSec provee confidencialidad, integridad,
autenticidad y protección a repeticiones mediante dos protocolos, que son
Authentication Protocol (AH) y Encapsulated Security Payload (ESP). Por confidencialidad se entiende que los datos
transferidos sean sólo entendidos por los participantes de la sesión. Por integridad se entiende que los datos no sean
modificados en el trayecto de la comunicación. Por autenticidad se entiende por la validación
de remitente de los datos. Por protección a repeticiones se entiende que
una sesión no pueda ser grabada y repetida salvo que se tenga autorización
para hacerlo. AH provee autenticación, integridad y protección
a repeticiones pero no así confidencialidad. La diferencia más importante con
ESP es que AH protege partes del header IP, como las direcciones de origen y
destino. ESP provee autenticación, integridad, protección
a repeticiones y confidencialidad de los datos, protegiendo el paquete entero
que sigue al header. AH sigue al header IP y contiene diseminaciones
criptográficas tanto en los datos como en la información de identificación.
Las diseminaciones pueden también cubrir las partes invariantes del header IP. El header de ESP permite rescribir la carga en
una forma encriptada. Como no considera los campos del header IP, no garantiza
nada sobre el mismo, sólo la carga. Una división de la funcionalidad de IPSec es
aplicada dependiendo de dónde se realiza la encapsulación de los datos, si es
la fuente original o un gateway:
Los enlaces seguros de IPSec son
definidos en función de Security Associations (SA). Cada SA está definido para
un flujo unidireccional de datos y generalmente de un punto único a otro,
cubriendo tráfico distinguible por un selector único. Todo el tráfico que
fluye a través de un SA es tratado de la misma manera. Partes del tráfico
puede estar sujeto a varios SA, cada uno de los cuales aplica cierta
transformación. Grupos de SA son denominados SA Bundles. Paquetes entrantes
pueden ser asignados a un SA específico por los tres campos definitorios: la
dirección IP de destino, el índice del parámetro de seguridad y el protocolo
de seguridad. El SPI puede ser considerado una cookie que es repartido por el
receptor del SA cuando los parámetros de la conexión son negociados. El
protocolo de seguridad debe ser AH o ESP. Como la dirección IP de destino es
parte de la tripleta antes mencionada, se garantiza que este valor sea único. Un ejemplo de paquete AH en modo
túnel es: Un ejemplo de paquete AH en modo
transporte es: Como ESP no puede autentificar el header IP más exterior, es
muy útil combinar un header AH y ESP para obtener lo siguiente: Este tipo de paquete se denomina Transport Adjacency. La versión de entunelamiento sería: Sin embargo, no es mencionado en las RFC que definen estos
protocolos. Como en Transport Adjacency, esto autenticaría el paquete completo
salvo algunos pocos campos del header IP y también encriptaría la carga.
Cuando un header AH y ESP son directamente aplicados como en esta manera, el
orden de los header debe ser el indicado. Es posible, en el modo de túnel,
hacer una encapsulación arbitrariamente recursiva para que el orden no sea el
especificado. Layer-2 Tunneling Protocol (L2TP) facilita el entunelamiento de paquetes PPP
a través de una red de manera tal que sea lo más transparente posible a los
usuarios de ambos extremos del túnel y para las aplicaciones que éstos corran. El escenario típico L2TP, cuyo objetivo es la creación de entunelar marcos
PPP entre el sistema remoto o cliente LAC y un LNS ubicado en una LAN local, es
el que se muestra en la siguiente figura: Un L2TP Access Concentrator (LAC) es un nodo que actúa como
un extremo de un túnel L2TP y es el par de un LNS. Un LAC se sitúa entre un
LNS y un sistema remoto y manda paquetes entre ambos. Los paquetes entre el LAC
y el LNS son enviados a través del túnel L2TP y los paquetes entre el LAC y el
sistema remoto es local o es una conexión PPP. Un L2TP Network Server (LNS) actúa como el otro extremo de
la conexión L2TP y es el otro par del LAC. El LNS es la terminación lógica de
una sesión PPP que está siendo puesta en un túnel desde el sistema remoto por
el LAC. Un cliente LAC, una máquina que corre nativamente L2TP,
puede participar también en el túnel, sin usar un LAC separado. En este caso,
estará conectado directamente a Internet. El direccionamiento, la autenticación, la autorización y el
servicio de cuentas son proveídos por el Home LAN’s Management Domain. L2TP utiliza dos tipos de mensajes: de control y de datos.
Los mensajes de control son usados para el establecimiento, el mantenimiento y
el borrado de los túneles y las llamadas. Utilizan un canal de control
confiable dentro de L2TP para garantizar el envío. Los mensajes de datos
encapsulan los marcos PPP y son enviados a través del túnel. La siguiente figura muestra la relación entre los marcos PPP
y los mensajes de control a través de los canales de control y datos de L2TP. Los marcos PPP son enviados a través de un canal de datos no
confiable, encapsulado primero por un encabezado L2TP y luego por un transporte
de paquetes como UDP, Frame Relay o ATM. Los mensajes de control son enviados a
través de un canal de control L2TP confiable que transmite los paquetes sobre
el mismo transporte de paquete. Se requiere que haya números de secuencia en los paquetes de
control, que son usados para proveer el envío confiable en el canal de control.
Los mensajes de datos pueden usar los números de secuencia para reordenar
paquetes y detectar paquetes perdidos. Al correr sobre UDP/IP, L2TP utiliza el puerto 1701. El
paquete entero de L2TP, incluyendo la parte de datos y el encabezado, viaja
en un datagrama UDP. El que inicia un túnel L2TP toma un puerto UDP de origen
que esté disponible, pudiendo ser o no el 1701 y envía a la dirección de
destino sobre el puerto 1701. Este extremo toma un puerto libre, que puede ser o
no el 1701, y envía la respuesta a la dirección de origen, sobre el mismo
puerto iniciador. Luego de establecida la conexión, los puertos quedan estáticos
por el resto de la vida del túnel. En la autenticación de L2TP, tanto el LAC como el LNS
comparten un secreto único. Cada extremo usa este mismo secreto al actuar tanto
como autenticado como autenticador. Sobre la seguridad del paquete L2TP, se requiere que el
protocolo de transporte de L2TP tenga la posibilidad de brindar servicios de
encriptación, autenticación e integridad para el paquete L2TP en su totalidad.
Como tal, L2TP sólo se preocupa por la confidencialidad, autenticidad e
integridad de los paquetes L2TP entre los puntos extremos del túnel, no entre
los extremos físicos de la conexión. Configuración de una
VPN bajo Windows Para configurar una VPN bajo Windows se necesita lo
siguiente:
La secuencia de pasos es: Luego de estos pasos, se deberá instalar el adaptador
privado de la red en la máquina cliente, como se indica:
Para acceder al servidor NT, se abre el Acceso Remoto a
Redes: Al hacer doble-click en el icono de la conexión VPN,
aparecerá la siguiente pantalla, donde se debe introducir el nombre de usuario,
la contraseña y la dirección IP del servidor NT: Para configurar el servidor VPN, se deberá configurar PPTP,
activar el filtro PPTP y activar el soporte PPTP en los clientes. Para configurar PPTP en el servidor RAS y en los clientes que
vayan a utilizarlo, se deberán realizar los siguientes pasos:
Para la activación del filtro PPTP, se debe selecciona la
solapa Protocolos de Panel de Configuración / Red. Dentro de esta pantalla, se
elige Protocolo TCP/IP, luego Propiedades. En la solapa Dirección IP, se
selecciona el adaptador de red sobre el que se aplicará el filtro. Luego de
presionar el botón Avanzadas, se marca la casilla Activar filtro PPTP y, por último,
se reinicia la máquina para activar la configuración. Cuando un cliente se conecta a Internet, el procedimiento
para establecer un túnel VPN consta de dos pasos: Cuando un cliente se conecta directamente a Internet, no es
necesario establecer una conexión de acceso telefónico. Sin embargo, el
procedimiento para iniciar la conexión PPTP con el servidor RAS es idéntico.
Para establecer una conexión PPTP es necesario crear una entrada especial en la
guía telefónica. Esta entrada se distingue por dos características: La creación de una conexión PPTP implica también dos
pasos: Si el cliente está conectado directamente a Internet, sólo
es necesario el segundo paso. Configuración
de una VPN bajo LINUX En este apartado se explica la configuración del demonio de
VPN (VPND) sobre Debian, pero no debiera traer ningún problema configurarlo en
otra distribución. VPND permite crear enlaces seguros sobre TCP/IP con claves de
hasta 512 bits y algoritmo de encriptación BLOWFISH, montando una interfaz
virtual serie que proporciona la posibilidad de enrutamiento de IP entre redes.
Los pasos a seguir son: Archivo /etc/vpn/vpnd.conf para el servidor: mode server # Direccion IP y puerto del servidor server a.b.c.d 2001 # Direccion IP y puerto del cliente client w.x.y.z 2001 # Direccion IP privada del servidor local a.b.c.d # Direccion IP privada del cliente remote w.x.y.z # Opciones generales autoroute Keepalive 10 noanswer 3 keyfile /etc/vnpd/vnpd.key pidfile /var/run/vpnd.pid keyttl 120 ramdomdev /dev/urandom mtu 1600 Archivo /etc/vpn/vpnd.conf para el cliente: mode client # Direccion IP y puerto del servidor client w.x.y.z 2001 # Direccion IP y puerto del cliente server a.b.c.d 2001 # Direccion IP privada del servidor local w.x.y.z # Direccion IP privada del cliente remote a.b.c.d # Opciones generales autoroute Keepalive 10 noanswer 3 keyfile /etc/vnpd/vnpd.key pidfile /var/run/vpnd.pid keyttl 120 ramdomdev /dev/urandom mtu 1600 Una vez creados estos archivos, se podrá levantar la VPN,
iniciando los demonios con ‘/etc/init.d/vpnd start’. Para comprobar
el correcto funcionamiento, se puede hacer pings a las direcciones
privada y del otro extremo y verificar con ‘ifconfig –a’ que exista
una nueva interfaz como la siguiente: sl0 Link encap: VJ Serial Line IP Inet addr: 10.0.0.1 P-t-P: 10.0.0.2 Mask :
255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU: 1600
Metric: 1 Rx packets:0 errors: 0 dropped:0 overruns: 0
frame: 0 Compressed: 0 Tx packets:0 errors: 0 dropped:0 overruns: 0
carrier: 0 Collisions: 0 compressed: 0 txqueuelen: 10 RX bytes: 0 (0.0 b) TX bytes; 0 (0.0 b) Bibliografía Scott, Charly, Wolfe, Paul, Erwin, Mike: "Virtual
Private Networks", 2° edición, O’Reilly & Associates, Enero 1999. Universidad de Valencia: http://www.uv.es/ciuv/cas/vpn/ OpenBSD: http://www.openbsd.org/faq/faq13.html Gutiérrez González, Ma.
Nieves, Sancho Buzón, Ana Rosa, Casas Cuadrado, Amadeo: Estudio sobre las
VPN (Redes Privadas Virtuales), http://www.infor.uva.es/~jvegas/docencia/ar/seminarios/VPN.pdf Valencia, A., Townsley, W.,
Rubens, A., Pall, G., Zorn, G., Palter, B.: RFC 2661,1999. Autor: Ing. Mariano Hevia Publicación enviada por Ing. Mariano Hevia Contactar mailto:mhevia@biycsa.com.ar Código ISPN de la Publicación EpyVZEuyZyvcuQWbzR Publicado Thursday 9 de October de 2003 Ultimas Publicaciones en ilustrados.com
ilustrados.com nace con el fin difundir el conocimiento publicando trabajos de investigación, monografias, tesis, presentaciones powerpoint y afines. Publicar trabajos en ilustrados.com ha alcanzado prestigio y reconocimiento internacional siendo cada vez más el número de académicos, empresas, investigadores, científicos que consultan las publicaciones de nuestro portal. | |||||||||