CAPITULO 1 - DSpace de la Universidad Catolica...

148
UNIVERSIDAD CATÓLICA DE CUENCA ___________________________________________________________ ___________ CAPITULO 1 1. INTRODUCCION A LAS VPN 1.1. Definición de VPN Es el producto de la necesidad de buscar comunicaciones seguras y de bajo costo. Para pequeñas y medianas empresas. Utilizando recursos públicos como el Internet. Para poder habilitar redes privadas distribuidas. Y poder comunicar de forma segura cada uno de los nodos usando una red pública, se ve la necesidad de evitar que los datos sean interceptados. Con una Red Privada Virtual (VPN), los usuarios remotos, que pertenecen a una red privada, pueden comunicarse de forma libre y segura entre redes remotas a través de redes públicas. VPN´S SOBRE SERVIDORES LINUX - 1 -

Transcript of CAPITULO 1 - DSpace de la Universidad Catolica...

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

CAPITULO 1

1.INTRODUCCION A LAS VPN

1.1. Definición de VPN

Es el producto de la necesidad de buscar comunicaciones seguras

y de bajo costo. Para pequeñas y medianas empresas. Utilizando

recursos públicos como el Internet.

Para poder habilitar redes privadas distribuidas. Y poder comunicar

de forma segura cada uno de los nodos usando una red pública, se ve

la necesidad de evitar que los datos sean interceptados.

Con una Red Privada Virtual (VPN), los usuarios remotos, que

pertenecen a una red privada, pueden comunicarse de forma libre y

segura entre redes remotas a través de redes públicas.

Una VPN normalmente usa la red Internet como transporte para

establecer enlaces seguros, extendiendo las comunicaciones a

oficinas aisladas. Significativamente, decrece el costo de las

comunicaciones porque el acceso a Internet es generalmente local y

mucho más barato que las conexiones mediante Acceso Remoto a

Servidores.

VPN´S SOBRE SERVIDORES LINUX - 1 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

¿Por qué esta idea no ha sido tomada con anterioridad?

Posiblemente porque Internet no puede proporcionar la seguridad,

el ancho de banda, o la calidad del servicio que garantice la

asociación con redes privadas. Por ejemplo, Internet soporta sólo

TCP/IP, mientras la mayoría de las redes se acomodan a varios

protocolos, y de esta forma si se desea correr una red corporativa

bajo Internet se obtendrá un servicio inferior (pero con un menor

costo). Auque en la actualidad esto cambie drásticamente ya que el

avance de la tecnología y los constantes aumentos en los anchos de

banda lo haga más competitivas.

Las Redes Privadas Virtuales utilizan tecnología de túnel

(tunneling) para la transmisión de datos mediante un proceso de

encapsulación y en su defecto de encriptación, esto es importante a

la hora de diferenciar Redes Privadas Virtuales y Redes Privadas, ya

que esta última utiliza líneas telefónicas dedicadas para formar la red.

Más adelante explicaré con profundidad el funcionamiento del túnel.

VPN´S SOBRE SERVIDORES LINUX - 2 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Una de las principales ventajas de una VPN es la seguridad, los

paquetes viajan a través de infraestructuras públicas (Internet) en

forma encriptada y a través del túnel de manera que sea

prácticamente ilegible para quien intercepte estos paquetes. Esta

tecnología es muy útil para establecer redes que se extienden sobre

áreas geográficas extensas, por ejemplo diferentes ciudades y a

veces hasta países y continentes. Por ejemplo empresas que tienen

oficinas remotas en puntos distantes, la idea de implementar una VPN

haría reducir notablemente los costos de comunicación, dado que las

llamadas telefónicas (en caso de usar dial-up) serian locales(al

proveedor de Internet) o bien utilizar conexiones DSL, en tanto que de

otra manera habría que utilizar líneas dedicadas las cuales son muy

costosas o hacer tendidos de cables que serian mas costosos aún.

1.2. Funcionamiento

Una Red Privada Virtual (VPN) transporta de manera segura por

Internet por un túnel establecido entre dos puntos que negocian un

esquema de encriptación y autentificación para el transporte. Una

VPN permite el acceso remoto a servicios de red de forma

transparente y segura con el grado de conveniencia y seguridad que

los usuarios conectados elijan. Las VPN están implementadas con

firewalls, routers para lograr esa encriptación y autentificación.

Es una red privada que se extiende, mediante un proceso de

encapsulación y en su caso de encriptación, de los paquetes de datos

VPN´S SOBRE SERVIDORES LINUX - 3 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

a distintos puntos remotos mediante el uso de unas infraestructuras

públicas de transporte.

Los paquetes de datos de la red privada viajan por medio de un

"túnel" definido en la red pública. (ver figura siguiente)

Figura 1 Figura 2

En la figura anterior (figura 2) se muestra como viajan los datos

a través de una VPN ya que el servidor dedicado es del cual parten

los datos, llegando al firewall que hace la función de una pared para

engañar a los intrusos a la red, después los datos llegan a la nube de

Internet donde se genera un túnel dedicado únicamente para

nuestros datos para que estos con una velocidad garantizada, con un

ancho de banda también garantizado y lleguen a su vez al firewall

remoto y terminen en el servidor remoto.

Las VPN pueden enlazar las oficinas corporativas con los socios,

con usuarios móviles, con oficinas remotas mediante los protocolos

como Internet, IP, Ipsec, Frame Relay, ATM como lo muestra la figura

siguiente.

VPN´S SOBRE SERVIDORES LINUX - 4 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

1.3. Tipos de VPN

Las formas en que se pueden implementar las VPNs pueden ser

basadas en HARDWARE o a través de SOFTWARE, pero lo más

importante es el protocolo que se utilice para la implementación.

Las VPNs basadas en HARDWARE utilizan básicamente equipos

dedicados como por ejemplo los routers, son seguros y fáciles de

usar, ofreciendo gran rendimiento ya que todos los procesos están

VPN´S SOBRE SERVIDORES LINUX - 5 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

dedicados al funcionamiento de la red a diferencia de un sistema

operativo el cual utiliza muchos recursos del procesador para brindar

otros servicios, en síntesis, los equipos dedicados son de fácil

implementación y buen rendimiento, solo que las desventajas que

tienen son su alto costo y que poseen sistemas operativos propios y a

veces también protocolos que son PROPIETARIOS.

1.4. Herramientas de una VPN

VPN Gateway

Software

Firewall

Routers

Dispositivos con un software y hardware especial para proveer de

capacidad a la VPN.

Software: Esta sobre una plataforma PC o Workstation, el software

desempeña todas las funciones de la VPN.

1.5. Arquitecturas de una VPN

Hay varias posibilidades de conexiones VPN, esto será definido

según los requerimientos de la organización, por eso es aconsejable

hacer un buen estudio a fin de obtener datos como por ejemplo si lo

VPN´S SOBRE SERVIDORES LINUX - 6 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

que se desea enlazar son dos o más redes, o si solo se conectaran

usuarios remotos.

Las posibilidades son:

1.5.1. DE CLIENTE A SERVIDOR (Client to Server):

Un usuario remoto que solo necesita servicios o aplicaciones

que corren en el mismo servidor VPN.

1.5.2. DE CLIENTE A RED INTERNA(Client to LAN)

Un usuario remoto que utilizará servicios o aplicaciones que se

encuentran en uno o mas equipos dentro de la red interna.

1.5.3. DE RED INTERNA A RED INTERNA (LAN to LAN)

VPN´S SOBRE SERVIDORES LINUX - 7 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Esta forma supone la posibilidad de unir dos intranets a través de dos

enrutadores, el servidor VPN en una de las intranets y el cliente VPN

en la otra.

Aquí entran en juego el mantenimiento de tablas de ruteo y

enmascaramiento.

1.6. Requerimientos Para El Armado De Una VPN

Para el correcto armado de una VPN, es necesario cumplir con una

serie de elementos y conceptos que a continuación se detallan:

Tener una conexión a Internet: ya sea por conexión IP dedicada,

ADSL o dial-up.

Servidor VPN: básicamente es una PC conectada a Internet

esperando por conexiones de usuarios VPN y si estos cumplen con el

proceso de autenticación, el servidor aceptara la conexión y dará

acceso a los recursos de la red interna.

Cliente VPN: este puede ser un usuario remoto o un enrutador de

otra LAN, tal como se especifica en la sección (Arquitecturas

VPN’S).

VPN´S SOBRE SERVIDORES LINUX - 8 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Asegurarse que la VPN sea capaz de:

Encapsular los datos.

Autentificar usuarios.

Encriptar los datos.

Asignar direcciones IP de manera estática y/o dinámica.

1.7. Tecnologías para armar una VPN.

Existen diferentes tecnologías para armar VPNs:

DLSW: Data Link Switching(SNA over IP)

IPX for Novell Netware over IP

GRE: Generic Routing Encapsulation

ATMP: Ascend Tunnel Management Protocol

IPSEC: Internet Protocol Security Tunnel Mode

PPTP: Point to Point Tunneling Protocol

L2TP: Layer To Tunneling Protocol

Entre los más usados y con mejor rendimiento estarían Ipsec y

PPTP, aunque a este último se le conocen fallas de seguridad.

A continuación se detallan su funcionamiento:

IPSEC (Internet Protocol Secure):

VPN´S SOBRE SERVIDORES LINUX - 9 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Es un protocolo de seguridad creado para establecer

comunicaciones que proporcionen confidencialidad e integridad de los

paquetes que se transmiten a través de Internet. IPsec puede utilizar

dos métodos para brindar seguridad, ESP (Encapsulating Security

Payload) o AH (Authentication Header). La diferencia entre ESP y AH

es que el primero cifra los paquetes con algoritmos de cifrado

definidos y los autentica, en tanto que AH solo los autentica. AH firma

digitalmente los paquetes asegurándose la identidad del emisor y del

receptor.

Ipsec tiene dos tipos de funcionamiento, uno es el modo

transporte en el cual la encriptación se produce de extremo a

extremo, por lo que todas las maquinas de la red deben soportar

Ipsec, y el otro es el modo túnel, en el cual la encriptación se produce

solo entre los routers de cada red.

Esta última forma sería la mas ordenada de organizar una red

VPN basada en Ipsec. Existen diferentes productos para implementar

VPN con Ipsec en GNU/Linux, pero sin dudas el más utilizado es el

Freswan (http://www.freeswan.org).

PPTP (Point to Point Tunneling Protocol):

Este es uno de los protocolos más populares y fue originalmente

diseñado para permitir el transporte (de modo encapsulado) de

protocolos diferentes al TCP/IP a través de Internet. Fue desarrollado

por el foro PPTP, el cual esta formado por las siguientes empresas:

VPN´S SOBRE SERVIDORES LINUX - 10 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Ascend Communications, Microsoft Corporations, 3 Com, E.C.I.

Telematics y U.S. Robotics(ahora 3 Com).

Básicamente, PPTP lo que hace es encapsular los paquetes del

protocolo punto a punto PPP(Point to Point Protocol) que a su vez ya

vienen encriptados en un paso previo para poder enviarlos a través

de la red. El proceso de encriptación es gestionado por PPP y luego es

recibido por PPTP, este último utiliza una conexión TCP llamada

conexión de control para crear el túnel y una versión modificada de la

Encapsulación de Enrutamiento Genérico (GRE, Generic Routing

encapsulation) para enviar los datos en formato de datagramas IP,

que serian paquetes PPP encapsulados, desde el cliente hasta el

servidor y viceversa.

El proceso de autenticación de PPTP utiliza los mismos métodos

que usa PPP al momento de establecer una conexión, como por

ejemplo PAP (Password Authenticaction Protocol) y CHAP (Challenge-

Handshake Authentication Protocol). El método de encriptación que

usa PPTP es el Microsoft Point to Point Encryption, MPPE, y solo es

posible su utilización cuando se emplea CHAP (o MS-CHAP en los NT)

como medio de autenticación.

MPPE trabaja con claves de encriptación de 40 o 128 bits, la clave de

40 bits es la que cumple con todos los estándares, en cambio la de

128 bits esta diseñada para su uso en Norte América. Cliente y

servidor deben emplear la misma codificación, si un servidor requiere

de más seguridad de la que soporta el cliente, entonces el servidor

rechaza la conexión.

VPN´S SOBRE SERVIDORES LINUX - 11 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

NOTA:

Es posible establecer conexiones mediante túneles sin

encriptación, es decir, realizar solamente la Encapsulación, pero esto

no esta considerado que sea una VPN ya que los datos viajan de

forma insegura a través de la red.

1.8. Algoritmos de Seguridad en VPN

1.8.1. Algoritmos De Cifrado Y Autenticación

¿Qué es la criptografía?

A medida que el campo de la criptografía ha ido avanzando, las

líneas divisorias de lo que es o no criptografía se han vuelto borrosas.

Hoy en día la criptografía puede considerarse como el estudio de las

técnicas y aplicaciones que dependen de la existencia de problemas

difíciles. El criptoanálisis es el estudio de cómo comprometer

(saltarse) los mecanismos criptográficos, y la criptología (del griego,

kryptós lógos, que significa palabra oculta) es la disciplina que

combina la criptografía y el criptoanálisis. Para la mayoría de las

personas, la criptografía hace referencia a mantener las

comunicaciones privadas. El cifrado es la transformación de los datos

a una forma que sea casi imposible de leer por alguien que no tenga

el conocimiento adecuado (la clave). Su propósito es asegurar la

privacidad manteniendo la información oculta de cualquiera que no

sea el destinatario, incluso de aquellos que tengan acceso a los datos

VPN´S SOBRE SERVIDORES LINUX - 12 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

cifrados. Descifrar es la acción opuesta a cifrar, y consiste en la

transformación de los datos cifrados a una forma inteligible. El cifrado

y el descifrado generalmente requieren del uso de algún tipo de

información secreta, conocida como clave. Algunos mecanismos de

cifrado usan la misma clave tanto para cifrar como para descifrar,

mientras que otros usan diferentes claves. Hoy en día la criptografía

es más que cifrar y descifrar. La autenticación es una parte

fundamental de la privacidad.

¿Qué es la criptografía de clave secreta?

La criptografía de clave secreta es conocida a veces como

criptografía simétrica. Es la forma más tradicional de criptografía, en

la cuál una única clave se usa tanto para cifrar como para descifrar el

mensaje. La criptografía de clave secreta no sólo trata el cifrado, sino

también la autenticación. Una de esas técnicas es la llamada códigos

de autenticación de mensajes (MAC). El principal problema de los

criptosistemas de clave secreta es conseguir que el remitente y el

destinatario se pongan de acuerdo en la clave secreta que se usará

sin que nadie más la descubra. Esto requiere un método mediante el

cuál ambas partes puedan comunicarse sin miedo a ser espiados. Sin

embargo, la ventaja de la criptografía de clave secreta es que es

generalmente más rápida que la criptografía de clave pública.

¿Qué es la criptografía de clave pública?

VPN´S SOBRE SERVIDORES LINUX - 13 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Para solventar el problema de la gestión de las claves en la

criptografía de clave secreta, W. Diffie y M. Hellman crearon en 1976

el concepto de criptografía de clave pública. Los criptosistemas de

clave pública tienen dos usos principales, el cifrado y las firmas

digitales. En estos sistemas, cada persona recibe un par de claves,

una llamada clave pública y la otra llamada clave privada. La clave

pública es publicada, mientras que la privada se mantiene en secreto.

La necesidad del remitente y el destinatario de compartir información

secreta desaparece, pues todas las comunicaciones requieren

únicamente las claves públicas, y nunca se transmite o comparte la

clave privada.

Cualquiera puede mandar un mensaje simplemente usando la

información pública, pero el mensaje sólo puede descifrarse con la

clave privada, que está únicamente en posesión del destinatario. En

un criptosistema de clave pública, la clave privada está siempre

asociada matemáticamente a la clave pública. Por lo tanto, es posible

realizar un ataque al sistema de clave pública deduciendo la clave

privada de la pública. Típicamente, la defensa contra esto es

conseguir que el problema de deducir la clave privada requiera la

factorización de un número muy grande, algo computacionalmente

intratable. Esta es la idea que hay detrás del criptosistema RSA de

clave pública.

¿Qué es Diffie-Hellman?

VPN´S SOBRE SERVIDORES LINUX - 14 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

El protocolo de acuerdo de claves Diffie-Hellman (también

conocido como acuerdo de clave exponencial) fue desarrollado por

Diffie y Hellman en 1976 y publicado en el sensacional documento

"New Directions in Cryptography." El protocolo permite a dos usuarios

intercambiar una clave secreta sobre un canal inseguro sin la

necesidad de secretos previos. El protocolo tiene dos parámetros de

sistema p y g. Ambos son públicos y pueden ser usados por todos los

usuarios de un sistema. El parámetro p es un número primo y el

parámetro g (normalmente llamado generador) es un entero menor

que p con la siguiente propiedad: para cada número n entre 1 y p-1,

inclusive, hay una potencia k de g tal que n = gk mod p. Supongamos

que Alicia y José quieren acordar una clave secreta compartida

usando el protocolo de acuerdo Diffie-Hellman. Procederían de la

siguiente manera: Primero, Alicia genera un valor aleatorio privado a

y José genera un valor aleatorio privado b. Tanto a como b son

escogidos de entre los enteros. Entonces deben derivar sus valores

públicos usando los parámetros p y g y sus valores privados. El valor

público de Alicia es ga mod p y el de José es gb mod p. Ahora deben

intercambiar sus valores públicos y, finalmente, Alicia computa gab

= (gb)a mod p, y José computa gba = (ga)b mod p. Debido a que gab

= gba = k, Alicia y José ahora tienen una clave secreta compartida k.

La seguridad del protocolo depende del problema del logaritmo

discreto. Asume que el cálculo de la clave compartida k = gab mod p

es inasequible computacionalmente dados los valores públicos ga

VPN´S SOBRE SERVIDORES LINUX - 15 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

mod p y gb mod p cuando el número primo p es suficientemente

grande.

¿Qué son SHA y SHA-1?

El Secure Hash Algorithm (SHA), el algoritmo especificado en el

estándar de dispersión segura o Secure Hash Standard (SHS, FIPS

180), fue desarrollado por NIST. SHA-1 es una revisión de SHA que fue

publicada en 1994 y que corregía un error no publicado de SHA. Su

diseño es muy similar a de la familia de algoritmos de dispersión MD4

desarrollada por Rivest. SHA-1 está también explicado en el estándar

ANSI X9.30. El algoritmo toma un mensaje de menos de 264 bits de

longitud y produce un mensaje resumido de 160 bits. El algoritmo es

ligeramente más lento que MD5, pero la mayor longitud del resumen

(en inglés, digest) resultante lo hace más seguro ante ataques de

fuerza bruta. SHA es parte del proyecto Capstone.

¿Qué son MD2, MD4 y MD5?

MD2, MD4 y MD5 son algoritmos de resumen de mensajes

desarrollados por Rivest. Su propósito son las aplicaciones de firma

digital en las cuales un mensaje muy grande tiene que ser

"comprimido" de manera segura antes de asignársele una clave

privada. Estos tres algoritmos toman un mensaje de longitud

arbitraria y producen un mensaje resumido de 128 bits. Pese a que

VPN´S SOBRE SERVIDORES LINUX - 16 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

las estructuras de estos algoritmos son considerablemente parecidas,

el diseño de MD2 es bastante diferente del de MD4 y MD5. MD2 fue

optimizado para máquinas de 8 bits, mientras que MD4 y MD5 está

enfocado a máquinas de 32 bits. La descripción y el código fuente de

estos algoritmos pueden encontrarse en Internet en los RFCs 1319-

1321.

MD2 fue desarrollado por Rivest en 1989. El mensaje es primero

rellenado de modo que su longitud sea divisible por 16. Una

verificación de 16 bytes es añadida luego al mensaje y el valor de

dispersión es computado sobre el mensaje resultante. Rogier and

Chauvaud han encontrado que pueden ocurrir colisiones si se omite el

cálculo de la verificación. Este es el único resultado criptoanalítico

conocido de MD2.

MD4 fue desarrollado por Rivest en 1990. El mensaje es

rellenado primero para asegurarse que su tamaño más 64 sea

divisible por 512. Una representación binaria de 64 bits de la longitud

original del mensaje es concatenada entonces al mensaje. El mensaje

es procesado en bloques de 512 bits según la estructura iterativa de

Damgard/Merkle y cada bloque es procesado en tres ocasiones

diferentes. Ataques a MD4 basados en la omisión de la primera o la

tercera ronda fueron rápidamente desarrollados por Den Boer,

Bosselaers y otros. Dobbertin ha demostrado como pueden ocurrir

colisiones en MD4 en menos de un minuto en un PC típico. En un

VPN´S SOBRE SERVIDORES LINUX - 17 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

trabajo reciente, Dobbertin (Fast Software Encryption, 1998) ha

demostrado que una versión reducida de MD4 en la cual la tercera

ronda de compresión no se lleve a cabo pero el resto se deje igual es

reversible. Por lo tanto, claramente MD4 puede considerarse roto.

MD5 fue desarrollado por Rivest en 1991. Es básicamente un

MD4 con cinturón de seguridad y, pese a ser ligeramente más lento

que MD4, es mucho más seguro. El algoritmo consiste en cuatro

rondas de compresión diferentes, con leves variaciones de diseño

respecto de MD4. El tamaño del mensaje comprimido, así como los

requerimientos de rellenado, son los mismos. Den Boer y Bosselaers

han encontrado pseudocolisiones en MD5. Un trabajo más reciente de

Dobbertin ha extendido las técnicas usadas tan eficientemente en el

análisis de MD4 para hallar colisiones en las funciones de compresión

de MD5.

Van Oorschot y Wiener han trabajado en la búsqueda por fuerza-bruta

de colisiones en las funciones de dispersión y estiman que una

máquina diseñada específicamente para la búsqueda de colisiones

(con un coste de 10 millones de dólares en 1994) tardaría una media

de 24 días en encontrar una colisión. Las técnicas generales pueden

aplicarse también a otras funciones de dispersión.

1.8.2. Filtrado De Paquetes entornos Linux

VPN´S SOBRE SERVIDORES LINUX - 18 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Si tenemos un firewall en el servidor VPN, deberemos agregar

algunas reglas de ip tables para permitir que se establezca el túnel,

los puertos que nos interesan son el 1723 y el 47.

Reglas de entrada:

# iptables -A INPUT -p tcp --dport 1723 -j ACCEPT

# iptables -A INPUT -p 47 -j ACCEPT

Reglas de salida:

# iptables -A OUTPUT -p tcp --sport 1723 -j ACCEPT

# iptables -A OUTPUT -p 47 -j ACCEPT

Ahora solo resta por levantar el demonio pptpd del siguiente modo:

#/etc/init.d/pptpd.init start

o directamente

# pptpd

El servidor PPTPD se pondrá automáticamente en background

escuchando por el puerto TCP 1723 en espera de conexiones

entrantes.

CAPITULO 2

2.CARACTERÍSTICAS DE VPN

VPN´S SOBRE SERVIDORES LINUX - 19 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

2.1. Descripción de VPN

Una Red Privada Virtual (VPN) consiste en dos máquinas (una en

cada "extremo" de la conexión) y una ruta o "túnel" que se crea

dinámicamente en una red pública o privada. Para asegurar la

privacidad de esta conexión los datos transmitidos entre ambos

ordenadores son encriptados por el Point-to-Point Protocol, también

conocido como PPP, un protocolo de acceso remoto, y posteriormente

enrutados o encaminados sobre una conexión previa (también

remota, LAN o WAN) por un dispositivo PPTP.

Una Red Privada Virtual es una forma de compartir y transmitir

información entre un círculo cerrado de usuarios que están situados

en diferentes localizaciones geográficas. Es una red de datos de gran

seguridad que permite la transmisión de información confidencial

entre la empresa y sus sucursales, socios, proveedores,

distribuidores, empleados y clientes, utilizando Internet como medio

de transmisión. Aunque Internet es una red pública y abierta, la

transmisión de los datos se realiza a través de la creación de túneles

virtuales, asegurando la confidencialidad e integridad de los datos

transmitidos.

VPN´S SOBRE SERVIDORES LINUX - 20 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Así, las VPN constituyen una estupenda combinación entre la

seguridad y garantía que ofrecen las costosas redes privadas y el

gran alcance, lo asequible y lo escalable del acceso a través de

Internet. Esta combinación hace de las Redes Privadas Virtuales o

VPNs una infraestructura confiable y de bajo costo que satisface las

necesidades de comunicación de cualquier organización.

Las VPNs permiten:

La administración y ampliación de la red corporativa al mejor

costo-beneficio.

La facilidad y seguridad para los usuarios remotos de

conectarse a las redes corporativas.

Los requisitos indispensables para esta interconectividad

son:

VPN´S SOBRE SERVIDORES LINUX - 21 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Políticas de seguridad.

Requerimiento de aplicaciones en tiempo real.

Compartir datos, aplicaciones y recursos.

Servidor de acceso y autentificación.

Aplicación de autentificación.

2.2. Protocolos de VPN

Han sido implementados varios protocolos de red para el uso de

las VPN. Estos protocolos intentan cerrar todos los “hoyos” de

seguridad inherentes en VPN. Estos protocolos continúan compitiendo

por la aceptación, ya que ninguno de ellos ha sido más admitido que

otro.

Estos protocolos son los siguientes:

Point-to-Point Tunneling Protocol (PPTP): PPTP es una

especificación de protocolo desarrollada por varias compañías.

Normalmente, se asocia PPTP con Microsoft, ya que Windows

incluye soporte para este protocolo. Los primeros inicios de

PPTP para Windows contenían características de seguridad

demasiado débiles para usos serios. Por eso, Microsoft continúa

mejorando el soporte PPTP. La mejor característica de PPTP

radica en su habilidad para soportar protocolos no IP. Sin

embargo, el principal inconveniente de PPTP es su fallo a elegir

una única encriptación y autentificación estándar: dos

VPN´S SOBRE SERVIDORES LINUX - 22 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

productos que acceden con la especificación PPTP pueden llegar

a ser completamente incompatibles simplemente porque la

encriptación de los datos sea diferente.

Layer Two Tunneling Protocol (L2TP): El principal competidor de

PPTP en soluciones VPN fue L2F, desarrollado por Cisco. Con el

fin de mejorar L2F, se combinaron las mejores características

de PPTP y L2F para crear un nuevo estándar llamado L2TP. L2TP

existe en el nivel de enlace del modelo OSI. L2TP, al igual que

PPTP soporta clientes no IP, pero también da problemas al

definir una encriptación estándar.

Internet Protocol Security (IPsec): IPsec es en realidad una

colección de múltiples protocolos relacionados. Puede ser usado

como una solución completa de protocolo VPN o simplemente

como un esquema de encriptación para L2TP o PPTP. IPsec

existe en el nivel de red en OSI, para extender IP para el

propósito de soportar servicios más seguros basados en

Internet.

SOCKS Networks Security Protocol: El sistema SOCKS

proporciona otra alternativa a los protocolos de VPN. SOCKS se

aloja en el nivel de sesión de OSI. Como SOCKS trabaja en un

nivel OSI más alto que los protocolos anteriores, permite a los

administradores limitar el tráfico VPN.

2.3. Clientes / Servidores en VPN

VPN´S SOBRE SERVIDORES LINUX - 23 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Un Servidor VPN normalmente es un componente hardware,

aunque también lo puede ser software. Puede actuar como un

gateway en una red o en un único computador. Debe estar siempre

conectado y esperando a que clientes VPN se conecten a él. El

software para el Servidor VPN es bastante frecuente. Sistemas como

Windows 2000 Server permiten alojar un Servidor VPN. El hardware

de los Servidores VPN es bastante costoso.

Un Cliente VPN es en la mayoría de los casos un componente

software, aunque puede ser también un componente hardware. Un

cliente realiza una llamada al servidor y se conecta. Entonces la

computadora cliente podrá comunicarse con el Servidor VPN, ya que

ellos se encuentran en la misma red virtual. El software para un

cliente VPN es bastante común. Cuando se carga en la computadora

este software permite crear un túnel seguro VPN a través de Internet

para poder comunicarse con el Servidor VPN.

Un Router basado en Servidores VPN tiene una velocidad de 600Kbps

debido a sus microprocesadores.

VPN´S SOBRE SERVIDORES LINUX - 24 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

CAPITULO 3

3. CONCEPTOS Y APLICACIONES DE SEGURIDAD EN

VPN

3.1. Como Funciona La Encriptación

Las redes privadas virtuales garantizan la privacidad y la

confidencialidad de la información haciendo uso de la encripción. En

un muy breve resumen, encripción es una técnica que codifica la

información de un modo que hace difícil o imposible su lectura, y la

decodifica de modo que pueda ser leída nuevamente. A la

información codificada se la llama cipher-text y a la información sin

codificar, clear-text. Cuando en una VPN se transmite información de

un punto a otro, el Gateway de la VPN del punto de origen encripta la

información en cipher-text antes de enviarla. En el otro punto, el

VPN´S SOBRE SERVIDORES LINUX - 25 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Gateway receptor desencripta la información, es decir se vuelve

clear-text, y luego la envía a la LAN.

Un algoritmo de encripción es una técnica reproducible de

cifrado y descifrado de información que puede ser realizada por

personas o computadoras. Un ejemplo sencillo de un algoritmo de

encripción sería reemplazar cada letra en una oración por la letra que

le sigue inmediatamente a ésta en el alfabeto, obteniendo el cipher-

text. Para leer la oración original, simplementa reemplazaríamos cada

letra del cipher-text por la letra que la precede en el alfabeto. En el

pasado (y en algunas implementaciones actuales de baja calidad), la

encripción permanecía segura manteniendo el algoritmo como un

secreto. De este modo, no se podía leer un mensaje encriptado ya

que se desconocía cómo había sido creado. El principal problema es

que una vez que el algoritmo ha sido descubierto, se tiene acceso a

toda la información que haya sido encriptada con el mismo. Peor aún,

dado que la técnica de encripción es un secreto, resulta imposible

determinar cuán buena es su calidad ya que muy poca gente puede

probarla.

Actualmente, los mejores métodos de encripción son públicos de

modo tal que todo el mundo sepa cómo funcionan. De hecho, se sabe

VPN´S SOBRE SERVIDORES LINUX - 26 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

exactamente cómo es encriptada la información. Estos métodos están

disponibles para cualquiera y están muy probados.

3.2. Que es y como funciona una clave

Ahora, dado que el método no es secreto, se evita que alguien

acceda a la información mediante el uso de keys (claves). Una clave

es un código secreto utilizado por el algoritmo de encripción para

crear una versión única de cipher-text. Esta clave podría compararse

con la combinación utilizada en una caja fuerte.

De este modo, la seguridad no depende de que el algoritmo de

encripción sea un secreto. Actualmente, la mayoría de los estándares

de seguridad de Internet (como DES y 3DES) toman esta postura de

exponer su algoritmo ante cualquiera para que sea examinado y

usado, brindando seguridad a través de la generación de claves

únicas y con alta dificultad de ser conocidas. El nivel de seguridad

generalmente depende en buena parte del largo de la clave (key

lenght).

VPN´S SOBRE SERVIDORES LINUX - 27 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

3.3. Key Lenght

Utilizando algoritmos de encripción conocidos, la seguridad

depende del largo de la clave. Una clave de 8 bits implica 28

combinaciones, mientras que una clave de 16 bits implica 216 (65536)

combinaciones posibles.

Con una clave de 16 bits, alguien podría realizar 65536 intentos antes

de adivinar la clave que brinda acceso al cipher-text. Para una

persona esto sería bastante difícil, pero para una computadora no

sería un gran desafío y no tomaría demasiado tiempo recorrer todas

las posibilidades.

Key lenght(bits) Combinaciones posibles

8 25616 65.53656 72.057.594.037.927.900112 5.192.296.858.534.830.000.000.000.000.000.000

168374.144.419.156.711.000.000.000.000.000.000.000.000.000.000.000.000

DES, Triple-Pass DES y 3DES

DES (Data Encryption Standard) es un algoritmo comúnmente

usado y ampliamente probado. El sistema DES usa claves de 56 bits

para encriptar datos en bloques de 64 bits. La clave de 56 bits brinda

256 combinaciones posibles. Esto implica que una persona valiéndose

VPN´S SOBRE SERVIDORES LINUX - 28 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

de una PC para adivinar la clave, tendría que recorrer durante

alrededor de 20 años las distintas combinaciones. Por otro lado, si

imaginamos una gigantesca organización con millones de

computadoras recorriendo en paralelo las distintas posibilidades,

encontrar la clave podría reducirse a minutos. Por esto, DES puede

ser seguro frente a atacantes casuales, pero no frente a una

organización de amplios recursos realizando un ataque dirigido.

Triple-Pass DES es un sistema DES que incrementa la seguridad

encriptando la información varias veces. Los datos son encriptados

utilizando una clave de 56 bits. El cipher-text resultante es

desencriptado utilizando una segunda clave de 56 bits. Esto da como

resultado un clear-text que nada tiene que ver con lo que

originalmente fue encriptado. Finalmente, los datos son nuevamente

encriptados utilizando la primer clave:

VPN´S SOBRE SERVIDORES LINUX - 29 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

A esta técnica de encriptar, desencriptar y volver a encriptar se

la conoce como EDE. Incrementa efectivamente la clave de 56 bits a

112 bits.

3DES es un algoritmo de encripción que provee una seguridad aún

mayor que triple-pass DES. Con 3DES, los datos son encriptados,

desencriptados y vueltos a encriptar (EDE), pero con tres claves

distintas. Esto resulta en una clave de 168 bits.

Generar claves seguras es sólo una parte de la ecuación. Para

garantizar una seguridad continua, lo deseable es que las claves

cambien constantemente cada breves periodos de tiempo. Del mismo

modo en que los algoritmos que basan su seguridad en mantenerse

secretos, sucede con las claves. Si se logra adivinar una clave, se

tiene acceso a toda la información encriptada con ella. Por este

VPN´S SOBRE SERVIDORES LINUX - 30 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

motivo, en una buena implementación nuevas claves son generadas

cada vez que un túnel VPN es establecido, y las claves son

regeneradas cada cierto tiempo, generalmente cada dos horas.

3.3.1. Claves Simétricas Y Asimétricas

Cuando la misma clave es utilizada para encriptar y

desencriptar la información, esta es denominada simétrica. Esto

requiere que los puntos comunicados a través de la VPN posean la

misma clave. Otra técnica utilizada permite que la información sea

encriptada con una clave, pero desencriptada con otra. La

información encriptada con una clave no puede ser desencriptada con

la misma y viceversa. Dos claves son requeridas, una para encriptar y

otra para desencriptar, y estas no pueden ser intercambiadas. Estos

pares de claves son denominadas claves asimétricas.

Con las claves asimétricas, a una clave se la denomina clave

pública y a la otra clave privada. La clave pública en general no se

mantiene en secreto. Si A desea enviarle un mensaje a B de modo tal

VPN´S SOBRE SERVIDORES LINUX - 31 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

que nadie más pueda verlo, entonces A encripta el mensaje usando la

clave pública de B. B es el único capaz de desencriptar el mensaje,

utilizando su clave privada. En otro ejemplo, si A envía un mensaje a

B y desea que B pueda corroborar que efectivamente el mensaje

proviene de A y no está falsificado, entonces A puede encriptar el

mensaje utilizando su clave privada, y B puede desencriptar el

mensaje con la clave pública de A. Si de este modo B logra

desencriptar el mensaje correctamente, entonces el mensaje tiene

que haber provenido de A.

Las claves asimétricas suelen ser muy largas - por ej. 1024 o 2048

bits -. El procesamiento de encripción requiere bastante potencia

computacional y toma mucho tiempo. Por esto, las claves asimétricas

son utilizadas para eventos que no ocurren frecuentemente, como

establecer un túnel VPN. Las claves simétricas suelen ser mucho mas

cortas - por ej. 56, 112 o 168 bits-, por lo que el procesamiento de

encripción utilizando claves simétricas es considerablemente mas

rápido que con las asimétricas. Las claves simétricas se utilizan para

transacciones de alta frecuencia, especialmente para la encripción de

datos transmitidos sobre una VPN.

3.4. Autentificación

La tecnología de encripción garantiza la privacidad de la información

al atravesar Internet. La tecnología de autenticación garantiza:

VPN´S SOBRE SERVIDORES LINUX - 32 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

1. La identidad de los participantes de la VPN (los gateways y

clientes son quienes dicen ser)

2. La integridad de la información recibida (no ha sido alterada en

el camino)

Existen diversos modos de autenticación, siendo el mas común el uso

de usuario y contraseña. El problema con este método en particular

es que es un tanto inseguro: una de sus debilidades es que los

usuarios deben elegir contraseñas que puedan recordar fácilmente.

Esto significa que pueden ser adivinadas.

Una de las tecnologías mas utilizadas es la de certificados

digitales, lo que permite autenticar e identificar tanto a personas

como a sistemas sin el uso de usuarios y contraseñas. Un certificado

digital es un registro que incluye varios datos, como el nombre de

una persona, su dirección, su clave pública, y fechas de expiración del

certificado que indican cuando éste deja de ser válido. En una VPN,

los certificados digitales se utilizan para identificar a quien (persona o

sistema) intenta conectarse a la VPN, y como medio de distribución

de claves públicas.

VPN´S SOBRE SERVIDORES LINUX - 33 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Para evitar la falsificación, los certificados digitales se basan en

la firma digital. La firma digital garantiza que la información recibida

es auténtica y no ha sido alterada en modo alguno. La creación de

una firma digital es un procedimiento de dos pasos. Primero, el

mensaje transmitido es procesado por un algoritmo de encripción

particular: la función de hash, que transforma un mensaje de largo

arbitrario en un número único de longitud fija. Este número creado

por la función hash es llamado el digest del mensaje. Si se cambia en

cualquier forma el mensaje original, el digest de este cambia

también. Las funciones de hash son muy conocidas, como SHA

(Secure Hash Algorithm) y MD5(Message Digest 5). El segundo paso

para crear la firma digital, es encriptar el digest del mensaje

utilizando la clave privada. Esto da como resultado la firma digital.

Para garantizar la autenticidad de un mensaje, se crea una firma

digital para el mismo y se incluye en el. El recipiente comprueba la

autenticidad mediante:

VPN´S SOBRE SERVIDORES LINUX - 34 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

1. La desencripción de la firma digital utilizando la clave pública

del remitente (esto genera el digest del mensaje original)

2. Cálculo del digest del mensaje utilizando la función de hash

(esto genera un nuevo digest del mensaje basado en los datos

recibidos)

3. Comparación de resultados

Si los resultados son idénticos, entonces el mensaje es auténtico y no

ha sido alterado. Un mensaje que incluye una firma digital es un

mensaje firmado.

Entonces, un certificado digital es un tipo especial de mensaje

firmado que asocia a una persona, organización o computadora con

una clave pública. Una entidad certificadora, llamada CA (Certificate

Authority), acepta claves públicas con una prueba de identidad y crea

certificados digitales dejándolos disponibles para otras personas. La

entidad certificadora es un organismo confiable por ambas partes, el

cual declara que efectivamente una clave pública pertenece a una

persona, organización o sistema. Esta entidad puede utilizar

protocolos de directorio como X.500 o LDAP para brindar sus

servicios, o puede estar implementada haciendo uso de protocolos

propietarios.

PKI (Public Key Infrastructure: Infraestructura de claves públicas) es

una serie de servicios de seguridad para administrar claves,

certificados digitales y políticas de seguridad. Las PKIs están

diseñadas para dar soporte a grupos abiertos, a fin de manejar

interacciones entre personas y sistemas que no se conocen

VPN´S SOBRE SERVIDORES LINUX - 35 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

previamente. Por ejemplo, en un sistema de compras a través de

Internet. En particular, las PKIs posibilitan la coordinación entre

múltiples CAs, dado que distintas personas o sistemas puede poseer

certificados emitidos por distintas CAs.

3.5. Encapsulamiento

Encriptación, claves, certificados y firmas digitales son las tecnologías

de seguridad que garantizan la privacidad en una VPN. Ahora,

generalmente, el envío de información en una VPN se realiza entre

direcciones privadas. Es decir, entre direcciones no routeables vía

Internet.

Veamos este ejemplo. En la oficina A la maquina con dirección

"a" puede comunicarse con "c" al enviar paquetes con encabezados

VPN´S SOBRE SERVIDORES LINUX - 36 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

que digan dirección-origen: a, dirección-destino: b. Esto funciona

perfectamente dentro de la LAN.

El problema se presenta cuando la máquina "a" de la oficina A quiere

enviar información a la máquina "z" en la oficina B. Como ambas

direcciones son privadas, no hay modo de routear paquetes a través

de Internet, que es la red pública que une a ambas oficinas. Entonces,

para realizar esta conexión, se requiere encapsulamiento.

El gateway de la oficina A, con dirección C, sabe que las direcciones

privadas "x", "y" y "z" se encuentran en la oficina B; y también sabe

que el gateway de la oficina B tiene dirección T. Entonces, cuando "a"

envía un paquete a "z", el gateway de la oficina A lo recibe y prepara

para su envío. El paquete inicial que dice dirección-origen:a,

dirección-destino: b, es encriptado y puesto dentro de un segundo

paquete que dice dirección-origen: C, dirección-destino: T. Como

estas direcciones son routeables en Internet, este paquete es enviado

a la oficina B, en donde el gateway de esta oficina extrae el primer

paquete y lo envía a la LAN.

Este proceso de poner un paquete dentro de otro es denominado

encapsulamiento, y es la base del tunneling.

APLICACIONES

3.6. Paquete F-Secure Para Windows.

3.6.1. Características De F-Secure

VPN´S SOBRE SERVIDORES LINUX - 37 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Las características principales son las siguientes:

Fácil de instalar: Requiere muy pocos parámetros de instalación

para el Administrador.

Fácil de configurar: Posee un editor de red gráfico que permite

configurar la totalidad de la red VPN desde una simple estación

de trabajo.

Seguro: Usa una extensa variedad de algoritmos de

encriptación, tales como DES, Blowfish, RSA, etc.

Basado en una tecnología ampliamente testeada y usada: Está

basado en la tecnología SSH, la cual es utilizada incluso por la

NASA.

Disponible a nivel global, con una fuerte encriptación: Se puede

enviar el software encriptado a todo el mundo, sin ningún

compromiso.

3.6.2. Beneficios De F-Secure

Los beneficios de F-Secure son los siguientes:

Cualquier PC con ciertos requerimientos mínimos puede utilizar

el software de F-Secure VPN.

VPN´S SOBRE SERVIDORES LINUX - 38 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

La red VPN es dinámicamente ampliable de modo que nuevas

LANs se pueden añadir sin demasiada configuración.

Se pueden usar conexiones a Internet de bajo coste para formar

la VPN. Tradicionalmente, las redes privadas virtuales seguras

han estado construyéndose usando líneas alquiladas muy caras.

Automáticamente se encriptan y protegen contra alteraciones,

todas las conexiones F-Secure VPN.

F-Secure VPN se integra con cualquiera de las firewalls

existentes.

F-Secure VPN soporta conexiones Extranet seguras.

3.7. Encriptación MPPE Gnu/Linux

En todo momento asumo que trabajamos como usuario root.

Instale los fuentes del kernel para su posterior compilación, es

aconsejable bajarse la ultima versión estable del kernel en

http://www.kernel.org o bien, si su distribución es Debian puede

instalarlo mediante apt. Al momento de escribir este documento se

uso la versión 2.4.20. También hay que conseguir el source del patch

para MPPE para poder aplicárselo al kernel. Si no desea recompilar el

kernel, hay imágenes precompiladas que ya poseen el soporte para

MPPE, debe buscar la versión que mas se adecue a la arquitectura de

su equipo.

VPN´S SOBRE SERVIDORES LINUX - 39 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Obtenemos los fuentes del kernel y herramientas para la

compilación y lo preparamos para la compilación (al modo Debian) :

# apt-get install kernel-package gcc bin86 bzip2 kernel-source-

2.4.20

#cd /usr/src

#bzip2 -d kernel-source-2.4.20.tar.bz2

#tar -xvf kernel-source-2.4.20.tar.bz2

Siempre es conveniente, para evitar errores en la compilación, hacer

un enlace simbólico llamado linux al directorio que contiene los

sources.

#ln -s kernel-source-2.4.20 linux

#cd linux

#make-kpkg clean

# cp /boot/config-2.4.20 ./.config

Ahora le aplicaremos el patch para soporte MPPE:

# cd /usr/src

# wget http://quozl.netrek.org/pptp/ppp-

2.4.2_cvs_20021120.tar.gz

# tar -xfz ppp-2.4.2_cvs_20021120.tar.gz

# cd ppp-2.4.2_cvs_20021120/linux/mppe

# chmod +x mppeinstall.sh

# ./mppeinstall.sh /usr/src/kernel-source-2.4.20

Editamos el archivo /usr/src/kernel-source-2.4.20/.config y buscamos

la línea que hace referencia al PPP y la dejamos de la siguiente

VPN´S SOBRE SERVIDORES LINUX - 40 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

manera, CONFIG_PPP=m , luego buscamos otra línea que hace

referencia al MPPE y quedaría así,

CONFIG_PPP_MPPE=m.

El próximo paso es compilar el kernel e instalarlo:

# make-kpkg –append_to_version -mppe –initrd kernel-image

Este proceso puede tomar unos cuantos minutos, depende la

maquina en la que se este compilando.

# dpkg -i kernel-image-2.4.20-mppe_10.00.Custom_i386.deb

Ahora solo resta reiniciar el equipo con el nuevo kernel(recuerde

configurar su gestor de arranque). Una vez reiniciado, asegúrese que

esta corriendo el nuevo kernel:

#uname -r

Si el kernel es el correcto, entonces vamos a testear el soporte para

MPPE:

#modprobe ppp_mppe

Aparecera un mensaje pero será solo de advertencia, no impedirá que

trabaje bien.

CAPITULO 4

VPN´S SOBRE SERVIDORES LINUX - 41 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

4. VPN DINÁMICAS

4.1. Conceptos de las VPN Dinámicas

Internet no fue diseñada, originalmente, para el ámbito de los

negocios. Carece de la tecnología necesaria para la seguridad en las

transacciones y comunicaciones que se producen en los negocios.

Entonces, ¿Cómo establecer y mantener la confianza en un entorno el

cual fue diseñado desde el comienzo para permitir un acceso libre a

la información?, es decir, ¿Cómo conseguir seguridad en una intranet

sin chocar con los principios básicos de Internet sobre la flexibilidad,

interoperatibilidad y facilidad de uso?. La respuesta apropiada se

encuentra en la utilización de VPNs Dinámicas. A diferencia de una

VPN tradicional, una VPN Dinámica proporciona, además de un alto

nivel de seguridad a ambos extremos, una flexibilidad necesaria para

acoplarse dinámicamente a la información que necesitan los distintos

grupos de usuarios. Las VPNs Dinámicas pueden ofrecer esta

flexibilidad ya que están basadas en una única arquitectura. Además,

una VPN Dinámica proporciona más recursos y servicios a una

Intranet, para hacer mayor uso de los recursos de la información.

Alguna de las características que se proporciona son las siguientes:

VPN´S SOBRE SERVIDORES LINUX - 42 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Proporciona una seguridad importante para la empresa.

Se ajusta dinámicamente al colectivo dispar de usuarios.

Permite la posibilidad de intercambio de información en

diversos formatos.

El ajuste que hace para cada usuario lo consigue gracias a los

diferentes navegadores, aplicaciones, sistemas operativos,

etc...

Permite a los usuarios unirse a distintos grupos, así como a los

administradores asignar identidades en un entorno simple pero

controlado.

Mantiene la integridad total, independientemente del volumen

administrativo, cambios en la tecnología o complejidad del

sistema de información corporativo.

4.2. Funcionamiento de las VPN Dinámicas

Las VPNs Dinámicas constan de una plataforma de seguridad de

red y un conjunto de aplicaciones para usar en la plataforma de

seguridad.

VPN´S SOBRE SERVIDORES LINUX - 43 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Siguiendo los pasos ilustrados en la figura, un usuario realiza

una petición de información a un servidor, por ejemplo, pulsando con

su ratón en un hipervínculo. Los pasos seguidos se pueden describir

en los siguientes puntos:

Un usuario solicita información usando una aplicación tal como

un navegador de Internet, desde un ordenador de sobremesa:

El intercambio de información comienza cuando un usuario

envía información a otro usuario o solicita información al

servidor. En el supuesto de que un usuario haya accedido a un

hipervínculo desde dentro de algún documento Web, dicho

hipervínculo será seguro y solamente podrá ser accedido por

usuarios autorizados.

La aplicación envía y asegura el mensaje: Cuando un cliente y

un servidor detectan que se necesita seguridad para transmitir

la petición y para ver el nuevo documento, ellos se

VPN´S SOBRE SERVIDORES LINUX - 44 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

interconectan en un mutuo protocolo de autentificación. Este

paso verifica la identidad de ambas partes antes de llevar a

cabo cualquier acción. Una vez que se produce la

autentificación se asegura el mensaje encriptándolo.

Adicionalmente, se puede atribuir un certificado o firma

electrónica al usuario.

El mensaje se transmite a través de Internet: Para que la

petición alcance el servidor debe dejar la LAN y viajar a través

de Internet, lo cual le permitirá alcanzar el servidor en algún

punto de la misma. Durante este viaje, puede darse el caso de

que atraviese uno o más firewalls antes de alcanzar su objetivo.

Una vez atravesado el firewall, la petición circula a lo largo del

pasillo Internet hasta alcanzar el destino.

El mensaje recibido debe pasar controles de seguridad: El

mensaje se transfiere al servidor. El servidor conoce la

identidad del usuario cliente cuando recibe la petición.

Durante la petición, se verifican los derechos de acceso de los

usuarios: En una VPN dinámica, el sistema debe poder restringir

que usuarios pueden y no pueden acceder a la misma. El

servidor debe determinar si el usuario tiene derechos para

realizar la petición de información. Esto lo hace usando

mecanismos de control, alojados en el Servidor de Control de

Acceso. De este modo, incluso si un usuario presenta un

certificado válido, puede ser que se le deniegue el acceso

basándose en otros criterios.

VPN´S SOBRE SERVIDORES LINUX - 45 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

La petición de información es devuelta por Internet,

previamente asegurada: El servidor de información encripta la

información y opcionalmente la certifica. Las claves

establecidas durante los pasos de

autentificación mutua se usan para encriptar y desencriptar el

mensaje. De esta forma, un usuario tiene su documento

asegurado.

VPN´S SOBRE SERVIDORES LINUX - 46 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

CAPITULO 5

5.CONFIGURAR UNA VPN BAJO LINUX

Esta sección del documento pretende ayudarlo a configurar un

servidor VPN bajo GNU/Linux y a establecer una conexión desde un

cliente windows de manera simple.

Para este ejemplo de configuración me basare en el protocolo PPTP

utilizando la distribución Debian SID, es decir una estructura CLIENT

TO LAN.

Para la gestión de Redes Privadas Virtuales con PPTP bajo GNU/Linux

existen diferentes herramientas, obviamente libres, pero sin duda el

mas usado es el PPTPD (Point to Point Tunneling Protocol Daemon

http://www.poptop.org) que oficia de servidor VPN y puede ser

accesado tanto por clientes que corran windows como tambien

GNU/Linux.

En tanto que para los clientes GNU/Linux, el programa a usar es el

pptp-linux, que sirve para acceder a servidores VPN corriendo

GNU/Linux , Windows NT o 2000 Server.

Los pasos a tratar son:

VPN´S SOBRE SERVIDORES LINUX - 47 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Soporte del kernel para encriptación MPPE.

Configurar PPP para encriptación con MPPE.

Configuración del daemon PPTPD.

Administración de usuarios.

Filtrado de paquetes (básico).

Conexión de clientes.

5.1. Configuracion Del Kernel Con Soporte MPPE.

En todo momento asumo que trabajamos como usuario root.

Instale los fuentes del kernel para su posterior compilación, es

aconsejable bajarse la ultima versión estable del kernel en

http://www.kernel.org o bien, si su distribución es Debian puede

instalarlo mediante apt. Al momento de escribir este documento se

uso la versión 2.4.20. También hay que conseguir el source del patch

para MPPE para poder aplicárselo al kernel.

Si no desea recompilar el kernel, hay imágenes precompiladas que ya

poseen el soporte para MPPE, debe buscar la versión que mas se

adecue a la arquitectura de su equipo.

Obtenemos los fuentes del kernel y herramientas para la compilación

y lo preparamos para la compilación (al modo Debian) :

# apt-get install kernel-package gcc bin86 bzip2 kernel-source-2.4.20

VPN´S SOBRE SERVIDORES LINUX - 48 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________#cd /usr/src

#bzip2 -d kernel-source-2.4.20.tar.bz2

#tar -xvf kernel-source-2.4.20.tar.bz2

Siempre es conveniente, para evitar errores en la compilación, hacer

un enlace simbólico llamado linux al directorio que contiene los

sources.

#ln -s kernel-source-2.4.20 linux

#cd linux

#make-kpkg clean

# cp /boot/config-2.4.20 ./.config

Ahora le aplicaremos el patch para soporte MPPE:

# cd /usr/src

# wget http://quozl.netrek.org/pptp/ppp-2.4.2_cvs_20021120.tar.gz

# tar -xfz ppp-2.4.2_cvs_20021120.tar.gz

# cd ppp-2.4.2_cvs_20021120/linux/mppe

# chmod +x mppeinstall.sh

# ./mppeinstall.sh /usr/src/kernel-source-2.4.20

Editamos el archivo /usr/src/kernel-source-2.4.20/.config y buscamos

la línea que hace referencia al PPP y la dejamos de la siguiente

manera, CONFIG_PPP=m , luego

buscamos otra línea que hace referencia al MPPE y quedaría así,

CONFIG_PPP_MPPE=m.

VPN´S SOBRE SERVIDORES LINUX - 49 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________El próximo paso es compilar el kernel e instalarlo:

# make-kpkg –append_to_version -mppe –initrd kernel-image

Este proceso puede tomar unos cuantos minutos, depende la

maquina en la que se este compilando.

# dpkg -i kernel-image-2.4.20-mppe_10.00.Custom_i386.deb

Ahora solo resta reiniciar el equipo con el nuevo kernel(recuerde

configurar su gestor de arranque).

Una vez reiniciado, asegúrese que esta corriendo el nuevo kernel:

#uname -r

Si el kernel es el correcto, entonces vamos a testear el soporte para

MPPE:

#modprobe ppp_mppe

Aparecera un mensaje pero será solo de advertencia, no impedirá que

trabaje bien.

5.2. Configuracion De Pppd Con Soporte MPPE.

Compilamos el nuevo pppd:

# cd /usr/src/ppp-2.4.2_cvs_20021120/linux/mppe

# make

Luego salvamos el pppd actual por si hay que volver atrás, para eso

solo lo renombramos,

VPN´S SOBRE SERVIDORES LINUX - 50 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________y usamos el comando dpkg-divert el cual elimina la versión de pppd

instalada por Debian,

pero guardando los atributos en el archivo copiado.

# cp /usr/sbin/pppd /usr/sbin/pppd.debian

# dpkg-divert –divert /usr/sbin/pppd.debian /usr/sbin/pppd

# cp pppd/pppd /usr/sbin/pppd

5.3. Configurando El Servidor Vpn (PPTPD).

Descargar la ultima versión de los fuentes de PPTPD (al momento

de escribir estedocumento es pptpd-1.4-b2.tar.gz). Descompactar y

compilar del siguiente modo:

# tar -xvzf pptpd-1.4-b2.tar.gz

# cd poptop-1.1.4

# ./configure --prefix=/usr/sbin

# make

# make check

# make install

Copiar el archivo pptpd.init (ubicado en el directorio de la

compilacion) a

/etc/init.d (en Red Hat seria /etc/rc.d/init.d) y darle permisos de

ejecución:

VPN´S SOBRE SERVIDORES LINUX - 51 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________# chmod 755 pptpd.init

Luego hacer el link al runlevel adecuado:

#cd /etc/rc2.d/ (en debian el runlevel 2 es modo multiuser)

#ln -s ../init.d/pptpd.init S97vpn

Editar el archivo pptpd.init y cambiar la linea 23

"daemon /usr/sbin/pptpd" por "/usr/sbin/pptpd -d"

Editar el /etc/pptpd.conf y dejarlo de la siguiente manera

debug #Esta línea puede ser removida una vez que la vpn esta

funcionando

option /etc/ppp/options.pptp

localip 192.168.1.1

remoteip 192.168.1.10-50

localip: IP que tendrá el servidor vpn (IP del tunel), esto puede ser un

rango, por lo cual asignara(en el servidor) una IP por cada túnel que

se genere. A veces para mejor control es mejor que el server tenga la

misma IP siempre.

remoteip: rango de IPs que se asignan a los usuarios que se

conecten, en caso de proveer una sola IP, permitirá un cliente por

vez, pero todos los clientes obtendrán esa misma IP. Es importante

tener en cuenta la cantidad de conexiones que se van a permitir,

porque si se requiere asignar direcciones IP estáticas a usuarios (esto

VPN´S SOBRE SERVIDORES LINUX - 52 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________se hace en el /etc/chap-secrets) las IPs deberán estar contempladas

en el rango.

Ahora deberemos editar el archivo /etc/ppp/options.pptp que debería

tener como mínimo las siguientes opciones:

lock

debug

+chap

+chapms

+chapms-v2

mppe-40

mppe-128

mppe-stateless

proxyarp

y con esto quedaría configurado el servidos PPTPD, ahora pasemos a

dar de alta los usuarios VPN.

5.4. Configurando Usuarios VPN.

La configuración de usuarios se hace en el archivo /etc/ppp/chap-

secrets, no es necesario que el usuario que se conecte por VPN tenga

que ser usuario del sistema:

VPN´S SOBRE SERVIDORES LINUX - 53 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________La primer columna corresponde a el nombre de usuario(para

autenticar dominios de windows, poner el nombre de dominio mas

dos barras invertidas antes del usuario) En la segunda columna va el

nombre del servidor (puede ir solamente un asterico asumiendo que

es el mismo donde esta corriendo el pptp)

En la tercer columna va el password

En la cuarta columna va la IP, en caso de asignar estáticamente una a

un usuario, de lo contrario, con un asterisco (*) el servidor le dará a

ese usuario una IP arbitraria que va a estar comprendida en el rango

que especifico en /etc/pptpd.conf ).

Ejemplo de /etc/ppp/chap-secrets:

juan * bostero *

pedro * de3th58 192.168.1.22

alberto * 123456 192.168.1.23

Para autenticar una maquina windows:

Ej: dominio\\pedro * d3th58 192.168.1.22

Habrá tantos usuarios en el chap-secrets como conexiones se

permitan realizar(no se pueden loguear dos usuarios al mismo

tiempo) , recordemos también que en este archivo se encuentran los

nombres de usuario y password de NUESTRO acceso a internet ;).

5.5. Filtrado De Paquetes.

VPN´S SOBRE SERVIDORES LINUX - 54 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Si tenemos un firewall en el servidor VPN, deberemos agregar algunas

reglas de iptables para permitir que se establezca el túnel, los puertos

que nos interesan son el 1723 y el 47.

Reglas de entrada:

# iptables -A INPUT -p tcp --dport 1723 -j ACCEPT

# iptables -A INPUT -p 47 -j ACCEPT

Reglas de salida:

# iptables -A OUTPUT -p tcp --sport 1723 -j ACCEPT

# iptables -A OUTPUT -p 47 -j ACCEPT

Ahora solo resta por levantar el demonio pptpd del siguiente modo:

#/etc/init.d/pptpd.init start

o directamente

# pptpd

El servidor PPTPD se pondrá automáticamente en background

escuchando por el puerto TCP 1723 en espera de conexiones

entrantes.

5.6. Configurando Clientes Vpn.

Configuración de clientes bajo windows:

VPN´S SOBRE SERVIDORES LINUX - 55 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________1- Primero deberemos dar soporte a windows para establecer

conexiones vpn.

Desde las propiedades de red, agregar dispositivo(o adaptador) para

redes privadas virtuales.

2- Ir a Panel de Control > Configuración de Acceso Telefónico a redes.

Crear un nuevo perfil de conexión utilizando el dispositivo con soporte

para vpn, estableciendo el nombre o numero IP del servidor vpn,

nombre de usuario que hemos establecido en el /etc/chap-secrets del

equipo servidor y la misma password.

3- Luego de creada la conexión, entramos a Propiedades y le decimos

(tildando las opciones) que queremos cifrado de datos y contraseña

cifrada. Llegados a este punto, ya se puede establecer la conexión

cliente<->servidor, conectando

como si lo hiciéramos a un isp normal.

Bueno, espero que tengan suerte con esta configuración que es algo

básica, cualquier consulta pueden hacerla a

[email protected]

IPSec

IPSec es el estándar de facto para garantizar la seguridad y

autenticidad de las comunicaciones privadas a través de redes

VPN´S SOBRE SERVIDORES LINUX - 56 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________públicas basadas en IP, y se basa en estándares desarrolados por la

IETF. Si bien la incorporación de IPSec es opcional en

implementaciones de IPv4, debe estar presente en las

implementaciones de IPv6, por lo que puede asumirse que IPSec será

utilizado en forma creciente. IPSec es realmente flexible y muy

escalable, y si bien las implementaciones suelen ser bastantes

complejas, una vez superada ésta se obtiene una notable estabilidad.

IPSec provee encripción y autenticación al nivel de IP en la pila de

protocolos de red, por lo que protege todo tipo de tráfico transportado

sobre IP y puede ser utilizado en routers, firewalls, servidores de

aplicaciones e incluso desktops y laptops.

Se utilizan tres protocolos:

AH(Authentication Header)

ESP(Encapsulating Security Payload)

IKE(Internet Key Exchange)

El protocolo IKE prepara las conexiones IPSec (ESP o AH) tras negociar

ciertos parámetros (algoritmos a utilizar, claves, etc). Esto se realiza

intercambiando paquetes en el puerto 500/UDP entre ambos

gateways. IKE se encuentra definido en RFC2409.

AH brinda un servicio de autenticación a nivel de paquetes. Esta

autenticación se brinda en forma separada a la encripción agregando

un header de autenticación (AH) entre el header IP y el resto. Los

VPN´S SOBRE SERVIDORES LINUX - 57 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________detalles pueden encontrarse en RFC2402. Los datos de autenticación

del header dependen tanto de una clave simétrica como de cada byte

de los datos que son autenticados. La técnica utilizada es HMAC

(RFC2104). Los algoritmos involucrados son SHA y MD5. AH utiliza el

protocolo 51.

El protocolo ESP brinda encripción y autenticación de paquetes.

Puede usarse con o sin AH.

La autenticación se realiza en forma similar a AH. Los algoritmos de

encripción pueden variar de acuerdo a la implementación (los RFCs

requieren únicamente DES y encripción nula). FreeS/WAN, la

implementación de IPSec para Linux utiliza 3DES actualmente,

aunque existen patches para agregar soporte de otros, como AES

(Rijndael), Blowfish y CAST. Pese al requerimiento de DES, FreeS/WAN

no lo implementa, ya que como anteriormente se dijo es inseguro.

ESP utiliza el protocolo 50.

Modos De Conexiones IPSEC

Pueden realizarse conexiones IPSec de dos modos diferentes: modo

de transporte y modo de túnel.

VPN´S SOBRE SERVIDORES LINUX - 58 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________El modo de transporte es una conexión de host a host y sólo involucra

dos máquinas. Cada equipo realiza su propio procesamiento de IPSec

y routea paquetes en forma acorde (algunos via IPSec).

El modo de túnel es una conexión entre gateways, los cuales proveen

túneles para ser utilizados por máquinas clientes detrás de cada

gateway. Las máquinas clientes no realizan ningún procesamiento de

IPSec, tan sólo routean a los gateways.

5.7. Configuración Del IPSEC

IPSec puede operar de dos maneras diferentes:

1. Modo túnel (del inglés, Tunnel mode). El propósito de este modo es

establecer una comunicación segura entre dos redes remotas sobre

un canal inseguro. Por ejemplo:

IPSec en modo túnel entre las dos puertas de enlace A y B

2. Modo transporte (del inglés, Transport mode). El propósito de este

modo es establecer una comunicación segura punto a punto, entre

dos hosts y sobre un canal inseguro. Por ejemplo:

VPN´S SOBRE SERVIDORES LINUX - 59 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

IPSec en modo transporte entre un host cliente y uno servidor

Normalmente las VPNs se configuran en modo túnel.

IPsec funciona a partir de dos bases de datos:

1. SPD (Security Policy Database, en inglés Base de datos de políticas

de seguridad). Estas políticas le dicen a IPSec cuando debe o no

debe actuar sobre un paquete IP.

2. SAD (Security Association Database, en inglés Base de datos de

asociaciones de seguridad). Estas asociaciones le dicen a IPSec cómo

debe crear el canal entre las dos máquinas. Una SP o política de

seguridad (del inglés, Security Policy) está formada, básicamente, por

lo siguientes aspectos:

Rango de direcciones de origen. Si la dirección de origen del

paquete está dentro de este rango, entonces...

Rango de direcciones de destino. Si la dirección de destino del

paquete está dentro de este rango, entonces...

Protocolo de alto nivel. Si el protocolo del paquete es tcp, udp,

icmp, cualquiera, entonces...

VPN´S SOBRE SERVIDORES LINUX - 60 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Política que se aplicará. Que consta de la dirección del canal a

crear (entrada o salida) y la acción a tomar (discard, none o

ipsec).

En el caso de aplicarse la política ipsec sobre el paquete, deberán

especificarse los siguientes datos:

Protocolo IPSec a usar: ah, esp o ipcomp.

Modo IPSec que se usará (túnel o transporte). En el caso de

túnel se deberán especificar las direcciones IPs de inicio y fin

del mismo.

Nivel IPSec:

o default: nivel estándar.

o use: usar una asociación de seguridad (SA) sólo si está

disponible, o darle al paquete el tratamiento habitual en

su defecto.

o require: el uso de la asociación de seguridad es

obligatorio para que se envíe el paquete.

Nota: si no hay una asociación de seguridad disponible, el kernel

solicita una negociación de asociación de seguridad al demonio IKE

(racoon).

Una asociación de seguridad (SA) está formada principalmente por los

siguientes aspectos:

Dirección IP de origen.

VPN´S SOBRE SERVIDORES LINUX - 61 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Dirección IP de destino.

Protocolo IPSec que debe usarse: ah, esp o ipcomp.

Índice numérico (SPI, del inglés Security Parameter Index).

Modo del protocolo: tunnel, transport o any (cualquiera de los

dos).

Algoritmos:

o Autenticación y la clave

o Cifrado y la clave

o Cifrado y autenticación con las claves

o Compresión

Nota: las asociaciones de seguridad (SA) sólo pueden usarse si están

asociadas con una política, y esta asociación sólo puede establecerse

si existe una política cuyas reglas tengan los mismos parámetros que

la asociación de seguridad (SA). Aún así, puede haber una política de

seguridad (SP) funcional sin una asociación de seguridad (SA) en uno

de los dos casos siguientes:

1. Cuando la política de seguridad (SP) tiene el tipo none o discard y

no haya ninguna asociación de seguridad (SA) que usar, pues IPSec

no será aplicado.

2. Cuando la asociación de seguridad (SA) sea creada dinámicamente

por el demonio IKE (racoon).

VPN´S SOBRE SERVIDORES LINUX - 62 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

5.8. Instalación Y Configuración De La VPN

Antes de seguir deberemos asegurarnos de que tenemos un

kernel 2.6 instalado y funcionando. Si es así, los siguientes paquetes

deberían

estar ya instalados:

cramfsprogs: Tools for CramFs (Compressed ROM File System)

dash: The Debian Almquist Shell

initrd-tools: tools to create initrd image for prepackaged Linux

kernel

module-init-tools: tools for managing Linux kernel modules

A continuación se listan las opciones específicas del kernel que son

necesarias para la VPN. Estas opciones activarán sus dependencias

pero, de todos modos, se considera que el usuario ya tiene un kernel

2.6 con iptables funcionando.

Cryptographic options

MD5 digest algorithm

SHA1 digest algorithm

DES and Triple DES EDE cipher algorithms

Blowfish cipher algorithm

AES cipher algorithms (i586)

Deflate compression algorithm

VPN´S SOBRE SERVIDORES LINUX - 63 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

CRC32c CRC algorithm

Device Drivers: Networking support: Networking options

PF_KEY sockets

IP: AH transformation

IP: ESP transformation

IP: IPComp transformation

IP: tunnel transformation

IPsec user configuration interface

Device Drivers: Networking support: Networking options: Network

packet filtering (replaces ipchains): IP: Netfilter Configuration

IP tables support (required for filtering/masq/NAT)

AH/ESP match support

Packet filtering

MASQUERADE target support

En el fichero /usr/src/linux/.config serían las siguientes opciones:

# Networking options

# Networking optionsCONFIG_NET_KEY=yCONFIG_INET_AH=yCONFIG_INET_ESP=yCONFIG_INET_IPCOMP=yCONFIG_INET_TUNNEL=y# IP: Netfilter ConfigurationCONFIG_IP_NF_IPTABLESCONFIG_XFRM_USERCONFIG_IP_NF_MATCH_AH_ESPCONFIG_IP_NF_FILTERCONFIG_IP_NF_TARGET_MASQUERADE# Cryptographic options

VPN´S SOBRE SERVIDORES LINUX - 64 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________CONFIG_CRYPTO=yCONFIG_CRYPTO_HMAC=yCONFIG_CRYPTO_MD5=yCONFIG_CRYPTO_SHA1=yCONFIG_CRYPTO_DES=yCONFIG_CRYPTO_BLOWFISH=yCONFIG_CRYPTO_AES_586=yCONFIG_CRYPTO_DEFLATE=yCONFIG_CRYPTO_CRC32C=y

Si, tras finalizar de leer el artículo, estamos seguros de que sólo

vamos a usar un algoritmo de cifrado, por ejemplo Blowfish y no DES

o AES, entonces obviamente el segundo no será necesario. De todos

modos, el autor recomienda seleccionar todas las opciones para que

cuando queramos cambiar de algoritmo no tengamos que recompilar

el kernel y reiniciar la máquina.

Los paquetes necesarios para instalar y configurar una VPN con KAME

IPSec sobre kernel 2.6 son los siguientes:

ipsec-tools: IPsec tools for Linux

racoon: IPsec IKE keying daemon

iproute: Professional tools to control the networking in Linux

kernels

iptables: Linux kernel 2.4+ iptables administration tools

Nota: durante la instalación del paquete racoon elegiremos el método

de configuración directo.

Asimismo, se recomienda la instalación de los siguientes paquetes:

dnsutils: Clients provided with BIND

VPN´S SOBRE SERVIDORES LINUX - 65 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

tcpdump: A powerful tool for network monitoring and data

acquisition

ntpdate: The ntpdate client for setting system time from NTP

servers

Por lo tanto, como root, ejecutaremos:

apt-get install ipsec-tools racoon iproute iptables dnsutils tcpdump

ntpdate

Con el kernel 2.4 de Linux(7) y FreeS/WAN(8), la asociación del tráfico

cifrado y las zonas se hacía fácil gracias a la presencia de

pseudointerfaces con nombres del estilo ipsecn (p.e. ipsec0). El

tráfico cifrado saliente era enviado a través de un dispositivo ipsecn

mientras que el tráfico cifrado entrante llegaba desde un dispositivo

ipsecn. La implementación introducida en el kernel 2.6(9) prescinde

de estas pseudointerfaces. El tráfico saliente que va a ser cifrado y el

tráfico entrante que debe ser descifrado deben compararse con las

políticas en la SPD (del inglés, Security Policty Database) o de la SA

(del inglés, Security Association) apropiada.

5.8.1. Configuración de una VPN en Modo Túnel

Supongamos que nos interesa que las máquinas de la subred

local 192.168.0.0/24 sean capaces de comunicarse con los de la

subred local 192.168.1.0/24. Ambas redes locales acceden a internet

VPN´S SOBRE SERVIDORES LINUX - 66 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________mediante sendas puertas de enlace 192.168.0.1 y 192.168.1.1,

respectivamente. Las puertas de enlace tienen IPs públicas

213.96.80.51 y 80.36.214.182, respectivamente. En ambos gateways

existen dos interfaces de red, una conectada a la LAN y otra a la

WAN. La interfaz conectada a la red local es eth0 y la interfaz

conectada al router es eth1 en ambos casos. Entonces, la topología

de red es la siguiente:

Red A <-> Red B

Para conseguir esto necesitamos hacer dos cosas:

1. Abrir el cortafuegos de modo que se permita establecer un túnel

IPSec (permitir los protocolos ESP y AH y el puerto UDP 500)

2. Permitir el tráfico a través del túnel.

Para permitir el tráfico por el túnel, empezaremos configurando las

políticas de seguridad. Para gestionar dichas políticas, Debian cuenta

con un demonio llamado setkey, manejable mediante el script

/etc/init.d/setkey, el cuál ejecuta las sentencias que se encuentren en

el

fichero /etc/ipsec-tools.conf tras haber borrado las políticas que estén

cargadas actualmente. Para una conexión de este tipo necesitaremos

VPN´S SOBRE SERVIDORES LINUX - 67 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________ocho entradas en el fichero /etc/ipsec-tools.conf del gateway A

(192.168.0.1):spdadd 192.168.1.0/24 192.168.0.0/24 any -P in ipsec esp/tunnel/80.36.214.182-213.96.80.51/require;spdadd 192.168.1.0/24 213.96.80.51/32 any -P in ipsec esp/tunnel/80.36.214.182-213.96.80.51/require;spdadd 80.36.214.182/32 213.96.80.51/32 any -P in ipsec esp/tunnel/80.36.214.182-213.96.80.51/require;spdadd 80.36.214.182/32 192.168.0.0/24 any -P in ipsec esp/tunnel/80.36.214.182-213.96.80.51/require;spdadd 192.168.0.0/24 192.168.1.0/24 any -P out ipsec esp/tunnel/213.96.80.51-80.36.214.182/require;spdadd 192.168.0.0/24 80.36.214.182/32 any -P out ipsec esp/tunnel/213.96.80.51-80.36.214.182/require;spdadd 213.96.80.51/32 192.168.1.0/24 any -P out ipsec esp/tunnel/213.96.80.51-80.36.214.182/require;spdadd 213.96.80.51/32 80.36.214.182/32 any -P out ipsec esp/tunnel/213.96.80.51-80.36.214.182/require;

El formato de la instrucción spdadd es el siguiente (de man

racoon.conf):

spdadd [-46n] src_range dst_range upperspec policy

Las cuatro primeras entradas configuran la política para el túnel de

entrada, mientras que las cuatro últimas las del túnel de salida. El

comando spdadd añade políticas a la base de datos de políticas de

seguridad. Respectivamente, las cuatro primeras sentencias

establecen que:

El tráfico entrante desde la subred 192.168.1.0/24 hacia la

subred 192.168.0.0/24 será cifrado por IPSec usando el

protocolo ESP en modo túnel, usando las direcciones de inicio y

fin 80.36.214.182 y 213.96.80.51, respectivamente, y la

asociación de seguridad será obligatoria o no se mandará el

paquete.

El tráfico entrante desde la subred 192.168.1.0/24 hacia el host

213.96.80.51 será cifrado por IPSec usando el protocolo ESP en

modo túnel, usando las direcciones de inicio y fin 80.36.214.182

VPN´S SOBRE SERVIDORES LINUX - 68 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

y 213.96.80.51, respectivamente, y la asociación de seguridad

será obligatoria o no se mandará el paquete.

El tráfico entrante desde el host 80.36.214.182 hacia el host

213.96.80.51 será cifrado por IPSec usando el protocolo ESP en

modo túnel, usando las direcciones de inicio y fin 80.36.214.182

y 213.96.80.51, respectivamente, y la asociación de seguridad

será obligatoria o no se mandará el paquete.

El tráfico entrante desde el host 80.36.214.182 hacia la subred

192.168.0.0/24 será cifrado por IPSec usando el protocolo ESP

en modo túnel, usando las direcciones de inicio y fin

80.36.214.182 y 213.96.80.51, respectivamente, y la asociación

de seguridad será obligatoria o no se mandará el paquete. Y las

cuatro siguientes líneas establecen el canal de salida de

manera análoga:

El tráfico saliente desde la subred 192.168.0.0/24 hacia la

subred 192.168.1.0/24 será cifrado por IPSec usando el

protocolo ESP en modo túnel, usando las direcciones de inicio y

fin 80.36.214.182 y 213.96.80.51, respectivamente, y la

asociación de seguridad será obligatoria o no se mandará el

paquete.

El tráfico saliente desde la subred 192.168.0.0/24 hacia el host

80.36.214.182 será cifrado por IPSec usando el protocolo ESP

VPN´S SOBRE SERVIDORES LINUX - 69 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

en modo túnel, usando las direcciones de inicio y fin

80.36.214.182 y 213.96.80.51, respectivamente, y la asociación

de seguridad será obligatoria o no se mandará el paquete.

El tráfico saliente desde el host 213.96.80.51 hacia la subred

192.168.1.0/24 será cifrado por IPSec usando el protocolo ESP

en modo túnel, usando las direcciones de inicio y fin

80.36.214.182 y 213.96.80.51, respectivamente, y la asociación

de seguridad será obligatoria o no se mandará el paquete.

El tráfico saliente desde el host 213.96.80.51 hacia el host

80.36.214.182 será cifrado por IPSec usando el protocolo ESP

en modo túnel, usando las direcciones de inicio y fin

80.36.214.182 y 213.96.80.51, respectivamente, y la asociación

de seguridad será obligatoria o no se mandará el paquete.

En el gateway B, 192.168.1.1, configuraremos el mismo fichero

/etc/ipsec-tools.conf pero intercambiando las entradas y las salidas

(en las cuatro primeras entradas sustituiremos in por out y en las

cuatro siguientes viceversa). El fichero resultante será el siguiente:spdadd 192.168.1.0/24 192.168.0.0/24 any -P out ipsec esp/tunnel/80.36.214.182-213.96.80.51/require;spdadd 192.168.1.0/24 213.96.80.51/32 any -P out ipsec esp/tunnel/80.36.214.182-213.96.80.51/require;spdadd 80.36.214.182/32 213.96.80.51/32 any -P out ipsec esp/tunnel/80.36.214.182-213.96.80.51/require;spdadd 80.36.214.182/32 192.168.0.0/24 any -P out ipsec esp/tunnel/80.36.214.182-213.96.80.51/require;spdadd 192.168.0.0/24 192.168.1.0/24 any -P in ipsec esp/tunnel/213.96.80.51-80.36.214.182/require;spdadd 192.168.0.0/24 80.36.214.182/32 any -P in ipsec esp/tunnel/213.96.80.51-80.36.214.182/require;spdadd 213.96.80.51/32 192.168.1.0/24 any -P in ipsec esp/tunnel/213.96.80.51-80.36.214.182/require;spdadd 213.96.80.51/32 80.36.214.182/32 any -P in ipsec esp/tunnel/213.96.80.51-80.36.214.182/require;

El siguiente paso es configurar el demonio IKE Racoon. Empezaremos

por configurar la clave compartida entre hosts, editando el fichero

VPN´S SOBRE SERVIDORES LINUX - 70 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________/etc/racoon/psk.txt en ambos gateways, de modo que quede como el

siguiente:

213.96.80.51 shared_key

80.36.214.182 shared_key

Donde shared_key es una cadena de veinte caracteres ASCII

aleatorios que podemos generar con el siguiente comando:

$ dd if=/dev/random count=20 bs=1 | xxd -ps

Nota: el comando xxd es parte del paquete vim.

Nota: shared_key debe tener el mismo valor en ambas líneas.

El siguiente paso es configurar el fichero de configuración del

demonio ISAKMP Racoon con las direcciones de ambos extremos del

túnel y las asociaciones de seguridad. Racoon negocia las

asociaciones de seguridad por si mismo (SA de ISAKMP o SA de fase

1) y para el IPSec del kernel (SA de IPSec o SA de fase 2). El fichero

está formado por una secuencia de directivas y sentencias. Cada

directiva se compone de una etiqueta y las sentencias están

enmarcadas entre llaves '{' y '}'. Las líneas que empiezan con '#' son

comentarios. En la puerta de enlace A, 192.168.0.1, el fichero

/etc/racoon/racoon.conf quedaría tal que éste:

VPN´S SOBRE SERVIDORES LINUX - 71 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________path pre_shared_key "/etc/racoon/psk.txt"; log notify;listen{isakmp 213.96.80.51;strict_address;}remote 80.36.214.182{exchange_mode main;send_cr off;send_cert off;proposal {encryption_algorithm blowfish;hash_algorithm sha1;authentication_method pre_shared_key;dh_group 2;}}sainfo address 192.168.0.0/24 any address 192.168.1.0/24 any{pfs_group 2;encryption_algorithm blowfish;authentication_algorithm hmac_sha1, hmac_md5;compression_algorithm deflate;}sainfo address 213.96.80.51/32 any address 192.168.1.0/24 any{pfs_group 2;encryption_algorithm blowfish;authentication_algorithm hmac_sha1, hmac_md5;compression_algorithm deflate;}sainfo address 213.96.80.51/32 any address 80.36.214.182/32 any{pfs_group 2;encryption_algorithm blowfish;authentication_algorithm hmac_sha1, hmac_md5;compression_algorithm deflate;}sainfo address 192.168.0.0/24 any address 80.36.214.182/32 any{pfs_group 2;encryption_algorithm blowfish;

VPN´S SOBRE SERVIDORES LINUX - 72 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________authentication_algorithm hmac_sha1, hmac_md5;compression_algorithm deflate;}A continuación se explica el propósito de las directivas y sentencias

más relevantes de las usadas en el fichero de configuración anterior.

De ámbito general destacan estas dos directivas:

path pre_shared_key: especifica el fichero que contiene las

claves pre-compartidas para los diversos identificadores.

log: define el nivel de log, que puede ser notify, debug o

debug2. Por defecto se usa notify. Es importante tener en

cuenta que, si se usa un nivel de logging demasiado elevado en

una máquina lenta, pueden producirse timeouts durante la

negociación.

De la directiva listen destacan las siguientes sentencias:

listen: si no se especifica esta directiva, racoon escuchará en

todas las direcciones disponibles.

isakmp: el formato es isakmp address [[port]]. Si se especifica

esta sentencia dentro de la directiva listen, racoon escuchará

únicamente en la dirección especificada. El puerto por defecto

es el 500, definido por la IANA(10). Pueden establecerse varias

sentencias isakmp.

strict_address: esta sentencia hace necesario que todas las

direcciones para ISAKMP estén asociadadas con alguna interfaz

de red.

VPN´S SOBRE SERVIDORES LINUX - 73 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

De la directiva remote destacan las siguientes sentencias:

remote: la directiva remote va seguida de una dirección o la palabra

clave anonymous, según el formato remote (address | anonymous)

[[port]], y especifica los parámetros para la fase 1 de IKE para cada

nodo remoto. El puerto por defecto es el 500. Si se especifica

anonymous, las sentencias se aplicarán a todos los nodos a los que

no se les apliquen otras sentencias remote específicas.

exchange_mode: esta sentencia puede tener tres valores diferentes,

main, aggressive y base, y define el modo de intercambio para la fase

1 cuando racoon es quien la inicia. También indica el modo de

intercambio aceptado cuando racoon responde. Puede especificarse

más de un modo, separados por comas. Todos los modos serán

aceptados, pero el primero es el que se usará cuando racoon sea el

iniciador de la negociación.

send_cr y send_cert: si no se desea mandar una petición de

certificado, debe ponerse a off, pues el valor por defecto es on. Lo

cambiamos a off debido a que usamos una clave compartida y no

certificados para establecer el túnel.

VPN´S SOBRE SERVIDORES LINUX - 74 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________encryption_algorithm: especifica los algoritmos de cifrado que se

usarán en la fase 1. Esta sentencia es de obligatoria especificación.

Los algoritmos pueden ser des, 3des, blowfish o cast128.

hash_algorithm: define el algoritmo de dispersión (del inglés, hash)

que se usará durante la negociación de la fase 1. La definición de esta

sentencia es obligatoria. El algoritmo puede ser md5 o sha1.

authentication_method: define el método de autenticación usado

en la negociación de la fase 1 y es una sentencia que debe definirse

obligatoriamente. Pueden darse los valores pre_shared_key, rsasig,

gssapi_krb, hybrid_rsa_server o hybrid_rsa_client.

dh_group: define el grupo que se usará para las exponenciaciones

Diffie-Hellman. La definición de esta sentencia es obligatoria y puede

coger uno de los valores modp768, modp1024, modp1536,

modp2048, modp3072, modp4096, modp6144 o modp8192.

Alternativamente, pueden definirse los grupos DH como 1, 2, 5, 14,

15, 16, 17 o 18. Si se quiere usar el modo aggressive debe

especificarse el mismo grupo DH en todas las propuestas.

De la directiva sainfo se usan las siguientes sentencias:

sainfo: sigue el formato sainfo (source_id destination_id |

anonymous) [from idtype [string]] y define los parámetros para la

fase 2 de IKE (establecimiento de las asociaciones de seguridad de

IPSec). source_id y destination_id se construyen según el formato.

VPN´S SOBRE SERVIDORES LINUX - 75 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________address address [/ prefix] [[port]] ul_proto.

pfs_group: define el grupo que se usará para las exponenciaciones

Diffie-Hellman. La definición de esta sentencia es obligatoria y puede

coger uno de los valores modp768, modp1024, modp1536,

modp2048, modp3072, modp4096, modp6144 o modp8192.

Alternativamente, pueden definirse los grupos DH como 1, 2, 5, 14,

15, 16, 17 o 18.

encryption_algorithm: especifica los algoritmos de cifrado que se

usarán en la fase 2. Puede tomar los valores des, 3des, des_iv64,

des_iv32, rc5, rc4, idea, 3idea, cast128, blowfish, null_enc, twofish o

rijndael (usado con ESP).

authentication_algorithm: define el algoritmo de autenticación

usado en la negociación de la fase 2 y puede tomar los valores des,

3des, des_iv64, des_iv32, hmac_md5, hmac_sha1, non_auth (usado

con autenticación ESP y AH).

compression_algorithm: define el algoritmo de compresión usado y

puede puede tomar únicamente el valor deflate (usado con IPComp).

Por lo tanto, mediante las cuatro directivas sainfo que se configuran

en este fichero /etc/racoon/racoon.conf del gateway A, definimos

VPN´S SOBRE SERVIDORES LINUX - 76 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________cuatro asociaciones de seguridad para las conexiones salientes que

se establecerán desde este host. Respectivamente:

Las conexiones de la subred 192.168.0.0/24 a la subred

192.168.1.0/24.

Las conexiones del host 213.96.80.51 (gateway A) a la subred

192.168.1.0/24.

Las conexiones del host 213.96.80.51 (gateway A) al host

80.36.214.182 (gateway B).

Las conexiones de la subred 192.168.0.0/24 al host

80.36.214.182 (gateway B).

El fichero /etc/racoon/racoon.conf del gateway B

(192.168.1.1/80.36.214.182) será muy parecido al anterior. Tan sólo

debemos intercambiar las direcciones IP de las directivas remote y

listen y modificar apropiadamente las directivas sainfo para que las

direcciones IP sean las de origen de la subred 192.168.1.0/24 y el

host 80.36.214.182 y las de destino las de la subred 192.168.0.0/24 y

la del host 213.96.80.51. El fichero resultante sería el siguiente:

path pre_shared_key "/etc/racoon/psk.txt";log notify;listen{isakmp 80.36.214.182;strict_address;}remote 213.96.80.51

VPN´S SOBRE SERVIDORES LINUX - 77 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________{exchange_mode main;send_cr off;send_cert off;proposal {encryption_algorithm blowfish;hash_algorithm sha1;authentication_method pre_shared_key;dh_group 2;}}sainfo address 192.168.1.0/24 any address 192.168.0.0/24 any{pfs_group 2;encryption_algorithm blowfish;authentication_algorithm hmac_sha1, hmac_md5;compression_algorithm deflate;}sainfo address 80.36.214.182/32 any address 192.168.0.0/24 any{pfs_group 2;encryption_algorithm blowfish;authentication_algorithm hmac_sha1, hmac_md5;compression_algorithm deflate;}sainfo address 80.36.214.182/32 any address 213.96.80.51/32 any{pfs_group 2;encryption_algorithm blowfish;authentication_algorithm hmac_sha1, hmac_md5;compression_algorithm deflate;}sainfo address 192.168.1.0/24 any address 213.96.80.51/32 any{pfs_group 2;encryption_algorithm blowfish;authentication_algorithm hmac_sha1, hmac_md5;compression_algorithm deflate;}Antes de activar la VPN añadiremos opciones a la llamada al demonio

racoon para que el log se haga en un fichero aparte y no en el syslog.

VPN´S SOBRE SERVIDORES LINUX - 78 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________Para ello modificaremos el script /etc/init.d/racoon en ambos

gateways y modificaremos el valor de la variable RACOON_ARGS

en la línea 27, tal que:

RACOON_ARGS="-l /var/log/racoon.log"

De este modo podremos consultar el log en un fichero específico,

/var/log/racoon.log y no se nos mezclará con el log del sistema. Tras

la configuración de estos ficheros reinciaremos los demonios en

ambos gateways:

/etc/init.d/setkey restart

/etc/init.d/racoon restart

En los logs deberían verse unas líneas tal que las siguientes:

$ tail -f /var/log/racoon.log | colorize

2005-05-27 16:34:15: INFO: @(#)ipsec-tools 0.5.2 (http://ipsec-tools.sourceforge.net)2005-05-27 16:34:15: INFO: @(#)This product linked OpenSSL 0.9.7e 25 Oct 2004 (http://www.openssl.org/)2005-05-27 16:34:15: INFO: 80.36.214.182[500] used as isakmp port (fd=6)2005-05-27 16:34:15: INFO: 80.36.214.182[500] used for NAT-T

Nota: la dirección IP 80.36.214.182 será 213.96.80.51 dependiendo

de en cuál de los dos gateways miremos el log.

VPN´S SOBRE SERVIDORES LINUX - 79 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________Nota: colorize es un programa que colorea las líneas, especialmente

pensado para facilitar la lectura de logs de la manera que se está

haciendo en el caso arriba expuesto. Forma parte del paquete

colorize en Debian. Una vez hecho esto, la VPN propiamente dicha

aún no sé ha establecido, sino que lo hará (se negociarán las fases 1

y 2) cuando se efectúe la primera comunicación, por ejemplo un ping

entre hosts. Una vez hecho esto podremos ver las líneas en el log

donde se confirma que se ha establecido el túnel:

$ ping 192.168.1.1

PING 192.168.1.1 (192.168.1.1): 56 data bytes

64 bytes from 192.168.1.1: icmp_seq=0 ttl=64 time=108.7 ms

$ tail -f /var/log/racoon.log | colorize

2005-05-27 16:35:30: INFO: respond new phase 1 negotiation: 80.36.214.182[500]<=>213.96.80.51[500]2005-05-27 16:35:30: INFO: begin Identity Protection mode.2005-05-27 16:35:30: INFO: received Vendor ID: DPD2005-05-27 16:35:31: INFO: ISAKMP-SA established 80.36.214.182[500]-213.96.80.51[500] spi:cd02576d8b543669:71462f0526dab6212005-05-27 16:35:32: INFO: respond new phase 2 negotiation: 80.36.214.182[0]<=>213.96.80.51[0]2005-05-27 16:35:32: INFO: IPsec-SA established: ESP/Tunnel 213.96.80.51->80.36.214.182 spi=54491525(0x33f7985)2005-05-27 16:35:32: INFO: IPsec-SA established: ESP/Tunnel 80.36.214.182->213.96.80.51 spi=212724624(0xcadeb90)

VPN´S SOBRE SERVIDORES LINUX - 80 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________Nota: la respuesta inicial al ping tardará unos segundos pues el túnel

de la VPN debe establecerse primero.

Finalmente, nos interesará establecer unas reglas en los cortafuegos

de ambos gateways, de modo que el túnel ser permita únicamente

entre esos dos hosts. Para ello podemos usar las siguientes reglas,

que podemos incluir en las que ya tengamos:

IPTABLES=/sbin/iptablesINT_IFACE=eth0EXT_IFACE=eth1LOCAL_SUBNET=192.168.0.0/24REMOTE_SUBNET=192.168.1.0/24VPN_SRC=213.96.80.51VPN_DST=80.36.214.182

# Enable packet forwarding

echo 1 > /proc/sys/net/ipv4/conf/all/accept_redirectsecho 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcastsecho 1 > /proc/sys/net/ipv4/ip_forwardecho 0 > /proc/sys/net/ipv4/ip_dynaddrecho 0 > /proc/sys/net/ipv4/conf/all/rp_filterecho 0 > /proc/sys/net/ipv4/conf/all/accept_source_routeecho 0 > /proc/sys/net/ipv4/conf/all/log_martiansecho 0 > /proc/sys/net/ipv4/icmp_echo_ignore_allecho 0 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

VPN´S SOBRE SERVIDORES LINUX - 81 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________${IPTABLES} --table nat --append POSTROUTING --source ${LOCAL_SUBNET} \--destination ! ${REMOTE_SUBNET} --out-interface ${EXT_IFACE} \--jump MASQUERADE${IPTABLES} --append INPUT --in-interface ${EXT_IFACE} --proto udp \--sport isakmp --dport isakmp --source ${VPN_DST} \--destination ${VPN_SRC} --jump ACCEPT${IPTABLES} --append INPUT --in-interface ${EXT_IFACE} --proto tcp \--sport isakmp --dport isakmp --source ${VPN_DST} \--destination ${VPN_SRC} --jump ACCEPT${IPTABLES} --append INPUT --in-interface ${EXT_IFACE} --proto ah \--source ${VPN_DST} --destination ${VPN_SRC} --jump ACCEPT${IPTABLES} --append INPUT --in-interface ${EXT_IFACE} --proto esp \--source ${VPN_DST} --destination ${VPN_SRC} --jump ACCEPT${IPTABLES} --append OUTPUT --out-interface ${EXT_IFACE} --proto udp \--sport isakmp --dport isakmp --source ${VPN_SRC} \--destination ${VPN_DST} --jump ACCEPT${IPTABLES} --append OUTPUT --out-interface ${EXT_IFACE} --proto tcp \--sport isakmp --dport isakmp --source ${VPN_SRC} \--destination ${VPN_DST} --jump ACCEPT${IPTABLES} --append OUTPUT --out-interface ${EXT_IFACE} --proto ah \--source ${VPN_SRC} --destination ${VPN_DST} --jump ACCEPT${IPTABLES} --append OUTPUT --out-interface ${EXT_IFACE} --proto esp \--source ${VPN_SRC} --destination ${VPN_DST} --jump ACCEPT

Nota: el parámetro del kernel /proc/sys/net/ipv4/conf/all/rp_filter

bloquea el spoofing o engaño de direcciones IP y, debido a que ahora

está deshabilitado, la comprobación deberán hacerla las propias

reglas de iptables. Asimismo, estas reglas deberán aparecer debajo

de las arriba escritas.

VPN´S SOBRE SERVIDORES LINUX - 82 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Nota: la cabecera IP de un paquete ESP no puede ser modificada por

NAT (del inglés, Network Address Translation), por lo que no es

posible combinar NAT con un canal IPSec (al menos directamente,

pero existe NATT para ese propósito). Es decir, no debe haber NAT

entre los dos gateways.

5.9. Diferentes soluciones

Hay muchos productos que aplican IPsec, entre los que se

encuentran PGPnet y Windows 2000. La mayoría de los firewalls

comerciales cuentan con módulos para VPN, Linux nos ofrece

diversas soluciones para aplicar VPN e intercomunicar dispositivos en

la red que manejan IPsec. Algunos de estos productos pueden ser:

Freeswan

CIPE

VPND

...

VPN´S SOBRE SERVIDORES LINUX - 83 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

De las distintas herramientas que podemos emplear vemos el caso

de vpnd. En el siguiente apartado se muestra brevemente como crear

una Red Privada Virtual usando GNU/Linux y vpnd.

5.10. GNU/Linux y VPN

Vpnd es muy fácil de instalar y configurar. En este caso ha sido

montado con Debian GNU/Linux aunque en principio no debería

suponer ningún problema hacerlo funcionar con otra distribución.

Vpnd permite crear enlaces seguros sobre TCP/IP, con claves de hasta

512 bits con algoritmo de encriptación BLOWFLISH, montando una

interface serie virtual que proporciona la posibilidad de enrutar tráfico

IP entre dos subredes. Los pasos que se deberán realizar son:

Para empezar, se deberá tener soporte SLIP en el núcleo.

Después de configurar el núcleo, hay que compilarlo y probar

que funciona correctamente, podemos pasar a instalar el

paquete vpnd con ‘apt-get install vpnd’.

Una vez instalado es necesario crear una clave de sesión con

‘vpnd –m /etc/vpnd/vpnd.key’. Esta clave debe ser la misma en

los dos extremos de la VPN, por lo que se tendrá que pasar la

VPN´S SOBRE SERVIDORES LINUX - 84 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

clave por un medio seguro al otro equipo. Después de esto sólo

queda configurar los dos extremos de la VPN y cómo se

comunicarán a través de TCP siguiendo la estructura

Cliente/Servidor (uno actuará de cliente y el otro de servidor de

la VPN).

A continuación, mostramos el contenido de los ficheros

vpnd.conf de configuración para el servidor y para el cliente:

1 Fichero /etc/vpn/vpnd.conf de configuración en el Servidor: 2 mode server 3 # Dirección IP y puerto del servidor 4 server a.b.c.d 2001 5 # Dirección IP y puerto del cliente 6 client w.x.y.z 2001 7 # Dirección IP privada del servidor 8 local a.b.c.d 9 # Dirección IP privada del cliente 10 remote w.x.y.z 11 # Opciones generales 12 autoroute 13 Keepalive 10 14 noanswer 3 15 keyfile /etc/vpnd/vpnd.key 16 pidfile /var/run/vpnd.pid 17 keyttl 120 18 randomdev /dev/urandom 19 mtu 1600 20 Fichero /etc/vpn/vpnd.conf de configuración en el cliente: 21 mode client

VPN´S SOBRE SERVIDORES LINUX - 85 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________22 # Dirección IP y puerto del cliente 23 client w.x.y.z 2001 24 # Dirección IP y puerto del servidor 25 server a.b.c.d 2001 26 # Dirección IP privada del cliente 27 local w.x.y.z 28 # Dirección IP privada del servidor 29 remote a.b.c.d 30 # Opciones generales 31 autoroute 32 Keepalive 10 33 noanswer 3 34 keyfile /etc/vpnd/vpnd.key 35 pidfile /var/run/vpnd.pid 36 keyttl 120 37 randomdev /dev/urandom

mtu 1600

Una vez hechas estas modificaciones ya podemos levantar la

VPN iniciando los demonios con ‘/etc/init.d/vpnd start’. Para

comprobar que todo ha funcionado de forma correcta podemos

hacer pings a nuestra IP privada y a la IP del otro extremo y ver

con ‘ifconfig –a’ que tenemos una interfaz nueva 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.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1600

Metric:1

VPN´S SOBRE SERVIDORES LINUX - 86 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

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)

5.11. Similitudes y diferencias en Windows y

Linux.

Dentro de las diferencias mas notorias que puede haber entre

estos dos sistemas operativos, es sin duda alguna la interoperatividad

con el usuario. Windows es un sistema operativo muy amigable de

fácil manejo, en donde para instalar un programa basta con dar un

clik en el icono de setup y listo, cosa que no sucede con Linux.

Hoy en día Linux nos presenta una gran variedad de sistemas

operativos libres como: Fedora Mandriva, Devian RedHat, Ubuntu,

etc, etc, coda uno con sus propias versiones, estos sistemas

operativos alternativos gratuitos son en sus nuevas versiones muy

buenos, confiables, pero aun no son muy fàciles de manipular e

instalar programas, y configurarlos, ya que es necesario tener

conocimientos profundos, en ciertas áreas como programación,

comandos Linux etc. Yo diría que mas bien son sistemas orientados a

los profesionales en el área de sistemas ya que al ser complejos y

robustos a la ves, para implementar servidores seas de Datos, Web,

VPN´S SOBRE SERVIDORES LINUX - 87 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________Correo, hace de esta una herramienta muy útil para el ingeniero de

sistemas, el mismo hecho de ser gratis. Lo convierte en un alternativa

para las empresas pequeñas, que no puedan pagarse una licencia de

SO y de aplicaciones como Office.

En cuanto a las aplicaciones para una VPN Linux nos presenta

grandes alternativas como FreesWAN usando IPSEC o OpenVPN

usando PPTP, lo difícil pero no imposible es la configuración hay que

tener paciencia, buenas ganas y pensar que nos va ha resultar bien.

En Windows la cosa es muy fácil para cliente VPN hemos

instalado The GreenBow VPN Client usando IPSEC o lo que es lo

mismo IP seguro. Bueno la instalación es como en todas las

aplicaciones doble click y listo un poco de dificultad hay en el

momento de configurar los parámetros pero todo es cuestión de

seleccionar y listo, sin tener que entrar en archivos especiales

compilar y ejecutar ciertas líneas, o desde el root ejecutar ciertos

comandos, no aquí es sencillo.

Similitudes:

Entorno grafico de millones de colores.

GUI amigable con el usuario.

Diferencias:

Windows es de fácil manejo, Linux tiene sus complicaciones.

VPN´S SOBRE SERVIDORES LINUX - 88 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Instalar un programa en Windows es mucho mas fácil que en

Linux.

Windows presenta gran variedad de aplicaciones, es por eso

que es mas difundido en el mundo, el medico, el arquitecto, el

ingeniero civil, el profesor de escuela, siempre van a optar por

un sistema operativo que sea fácil y amigable.

Linux es mas robusto estable y seguro que Windows, levantar

Servidores de Correo, Web. Es mucho mejor en esta plataforma

que en Windows.

Se podría decir que Linux es un SO orientado a profesionales en

el área de Sistemas pero que poco a poco va ganando mas

adeptos inexpertos en el mundo.

Linux tiene sus propias aplicaciones incluidas en el paquete de

instalación razón por la que es muy grande hablamos de un

DVD o de 5 CD-ROM (en el caso de Fedora Core 5).

Y lo mas importante es que Linux es un SO gratuito.

VPN´S SOBRE SERVIDORES LINUX - 89 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

CAPITULO 6

6. CONFIGURAR UNA VPN BAJO WINDOWS

6.1. Necesidades

Se necesita lo siguiente para instalar una VPN:

VPN´S SOBRE SERVIDORES LINUX - 90 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Una conexión a Internet rápida para el servidor local de NT y

para los PC remotos.

Una IP ADDRESS estática para el servidor NT.

Un proxy que se ejecuta en el servidor NT, para evitar que la

gente desautorizada tenga acceso al sistema.

Una IP ADDRESS para cada recurso que será compartido:

Recursos, como una impresora, a los que deseamos poder tener

acceso a través de Internet necesitan tener su propia IP.

Adaptador virtual de la red instalado en el PC remoto o cliente.

6.2. Pasos de la configuración del Cliente

VPN

Deberemos seguir los siguientes pasos:

1 Hacer una lista de todas las IP internas que contendrán recursos

que serán accedidos a través de Internet.

2 Instalar y ejecutar el proxy.

3 En el servidor del NT, configurar los ficheros del usuario de NT

para permitir que cada usuario pueda llamar y conectar al Servidor de

VPN´S SOBRE SERVIDORES LINUX - 91 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________NT. Hay que garantizar a cada usuario que tendrá acceso al sistema

con su permiso de VPN de marca en el servidor NT.

Después de esto, habrá que instalar el adaptador privado de la red en

el PC cliente. Indicamos a continuación los pasos a realiza

1º) INSTALAR EL ADAPTADOR PRIVADO VIRTUAL DE LA RED EN

EL PC CLIENTE:

1 En el Escritorio del PC hacer click en el icono del Entorno de

Red:

Pulsar con el botón derecho y seleccionar las Propiedades:

Entonces, se abrirá el Diálogo de Red:

VPN´S SOBRE SERVIDORES LINUX - 92 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Verificar que el adaptador de redes privadas virtuales está instalado. Si no, hacer click en Agregar. El diálogo Seleccionar Nuevo Componente de la Red se abrirá:

Seleccionar el adaptador de la lista y hacer click en Agregar:

VPN´S SOBRE SERVIDORES LINUX - 93 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Cuando el Diálogo Seleccionar el Adaptador se abre seleccionar Microsoft de la lista de los fabricantes, ya que la explicación es sobre un adaptador fabricado por Microsoft:

Seleccionar el adaptador de redes privadas de la lista de los adaptadores de la red, y hacer click en OK:

VPN´S SOBRE SERVIDORES LINUX - 94 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

2º) INSTALAR LA CONEXIÓN A LA LAN:

Acceder al Acceso Remoto a Redes:

VPN´S SOBRE SERVIDORES LINUX - 95 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Pulsar doble click en el icono de Nueva Conexión. Después, en el selector de lista de dispositivos, haga click en la flecha y seleccione el adaptador de VPN:

Se abre el nuevo Diálogo de la Conexión y espera a que introducir la dirección IP del Servidor VPN al que se conectará:

VPN´S SOBRE SERVIDORES LINUX - 96 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

De esta forma, se crea la nueva conexión:

3º) CONECTAR CON EL SERVIDOR DEL NT: Acceder al Acceso Remoto a Redes:

VPN´S SOBRE SERVIDORES LINUX - 97 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Pulsar doble click en el icono para la conexión de VPN:

VPN´S SOBRE SERVIDORES LINUX - 98 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Por último, simplemente deberá introducir el login y el password y ya quedará conectado con el servidor.

6.3. Pasos de la configuración del Servidor

VPN

Deberemos seguir los siguientes pasos:

1º) Configuración de PPTP.

PPTP debe activarse en el Servidor RAS (Remote Access Server) y en los Clientes que vayan a utilizarlo. Para ello, seguimos los siguientes pasos:

Utilice la herramienta Red del Panel de control, sitúese en la ficha Protocolos y pulse Agregar:

VPN´S SOBRE SERVIDORES LINUX - 99 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Escoja Point to Point Tunneling Protocol. Una vez copiados

los archivos, aparece el cuadro de diálogo Configuración de

PPTP. El campo Número de redes privadas virtuales indica el

número de conexiones PPTP admitidas. En el ejemplo se

establecen dos VPN:

A continuación se inicia la herramienta de configuración RAS. Debe añadir los puertos virtuales que darán servicio a las

VPN´S SOBRE SERVIDORES LINUX - 100 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

redes privadas virtuales que desee establecer. Pulse Agregar para acceder al diálogo Agregar dispositivo RAS:

El ejemplo muestra dos puertos virtuales que corresponden al valor especificado en el paso 2. Seleccione una entrada (por ejemplo VPN1 RASPPTPM) y pulse Aceptar.

Seleccione cada entrada del diálogo Instalación de Acceso remoto y pulse configurar para acceder al diálogo Configurar uso del puerto. Seleccione una de las opciones disponibles: Sólo para hacer llamadas, Sólo para recibir llamadas o hacer y recibir llamadas.

Repita los pasos anteriores para cada dispositivo virtual que desee añadir.

Pulse Continuar después de añadir todos los dispositivos virtuales. Pulse Cerrar cuando vuelva a la ficha Protocolos. Reinicie la computadora.

2º) ACTIVAR EL FILTRO PPTP:

VPN´S SOBRE SERVIDORES LINUX - 101 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

Seleccione la ficha Protocolos de la herramienta Red.

Seleccione Protocolo TCP/IP y pulse el botón Propiedades. Sitúese en la ficha Dirección IP. Seleccione el adaptador de red sobre el que desee aplicar el

filtro. Pulse el botón Avanzadas. Marque la casilla Activar filtro PPTP. Repita los pasos anteriores para cada interfaz que deba utilizar

el filtro PPTP. Reinicie la computadora para activar los cambios.

3º) SUPERVISIÓN DEL SOPORTE DE SERVIDOR PPTP:

Es posible supervisar los puertos PPTP utilizando la herramienta Administrador de Acceso remoto. Seleccione la orden Puertos de comunicaciones del menú Servidor. Sólo aparecen los puertos configurados para recibir llamadas.

4º) ACTIVAR EL SOPORTE PPTP EN LOS CLIENTES:

VPN´S SOBRE SERVIDORES LINUX - 102 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________Cuando un cliente llama a Internet, el procedimiento para establecer un túnel PPTP consta de dos pasos:

El cliente establece una conexión de acceso telefónico a Internet a través de un proveedor de acceso.

El cliente establece una conexión PPTP con el servidor RAS.

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:

El campo Marcar utilizando contiene uno de los dispositivos virtuales VPN añadidos a la configuración RAS al instalar PPTP. Esta lista sólo muestra los VPN configurados para hacer llamadas.

El campo Presentación preliminar de número de teléfono contiene el nombre DNS o la dirección IP del servidor PPTP.

VPN´S SOBRE SERVIDORES LINUX - 103 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

La creación de una conexión a PPTP conlleva dos pasos: Abra la aplicación Acceso telefónico a redes y utilice la entrada

de la guía telefónica que le permite acceder a su proveedor de acceso a Internet a través de un número de teléfono y un módem.

Una vez establecida la conexión, utilice la entrada de la guía telefónica que le conecta al túnel PPTP mediante un nombre DNS o una dirección IP.

Si el cliente está conectado directamente a Internet, sólo es necesario utilizar la entrada del túnel PPTP.

VPN´S SOBRE SERVIDORES LINUX - 104 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

CAPITULO 7

7.ANEXOS MONOGRAFICOS

7.1. Bibliografía

Adam Sherman Online: Linux 2.6 IPsec VPNs(11)

How to easily build a VPN with KAME IPSec (Kernel 2.6)(12)

Debian IPsec Micro-Howto(13)

IPSEC using Linux Kernel 2.6(14)

RSA Laboratories Crypto FAQ(15)

http://www.kame.net/

http://www.kernel.org/

http://ipsec-tools.sourceforge.net/

http://www.kame.net/racoon/

http://www.debian.org/

http://www.netfilter.org/

http://www.kernel.org/pub/linux/kernel/v2.4/

VPN´S SOBRE SERVIDORES LINUX - 105 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

http://www.freeswan.org/

http://www.kernel.org/pub/linux/kernel/v2.6/

http://www.iana.org/

http://www.sherman.ca/archives/2004/11/21/linux-26-ipsec-

vpns/

http://users.cjb.net/ipsec/index.en_us.html

http://www.fukt.bth.se/~teddy/debian-ipsec

http://shorewall.net/IPSEC-2.6.html

http://www.rsasecurity.com/rsalabs/node.asp?id=2153

VPN´S SOBRE SERVIDORES LINUX - 106 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

7.2. Conclusiones

El alto coste que significa la implementación de una red o la

infraestructura para la creación de una red WAN de largo alcance. Ha

obligado a las pequeñas y medianas empresas a optar por soluciones

informáticas reales como son las redes virtuales privadas (VPN’S) que

en esta oportunidad se han levantado o ejecutado desde plataformas

linux, FEDORA CORE 5 específicamente. Dando así una solución real

de bajo costo de gran confiabilidad. Ya no es necesario alquilar una

línea dedicada de alto coste o comprar euipos como routers antenas o

tender cable, para poder enlazarme de una sucursal a otra. Sea en la

misma ciudad o fuera de ella. Lo único que necesitaría sería una línea

telefónica, tener acceso a Internet si es banda ancha, usando MODEM

ADSL mucho mejor, y tener conocimientos profundos de plataformas

como Linux que cada día va tomando mas fuerza e imponiéndose ya

en instituciones educativas como entornos alternativos.

Es nuestro futuro en realidad, ya que somos nosotros como

profesionales quienes estamos obligados a difundir y proponer este

VPN´S SOBRE SERVIDORES LINUX - 107 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________tipo de soluciones informáticas en nuetro medio, sea inastituciones

educativas o nuestros lugares de trabajo. Claro que esto conlleva

grandes responsabilidades y grandes conocimientos.

VPN´S SOBRE SERVIDORES LINUX - 108 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

7.3. Recomendaciones

Entornos alternativos como Linux y sus aplicaciones que casi en su

totalidad son gratuitas o libres. Son el futuro del desarrollo en nuestro

medio, en el área de sistemas. Ya que hoy en día la piratería esta en

sus niveles más altos, y cada vez es más alarmante la falta de apoyo

en el sentido jurídico hacia la propiedad intelectual. Pero gracias a

los sistemas operativos Linux, que necesitan de gente especializada

para ciertos tipos de configuraciones, que son complejas y que no

todos pueden hacer. Es aquí donde entramos nosotros como

profesionales del área a brindar ese servicio profesional de calidad, es

por eso que cada día debemos aprender un poco mas de estos

sistemas, es una obligación, si queremos progresar como

profesionales en nuestra área.

En Brasil hace unos años recientemente, en el gobierno de Ignacio

Lula Da Silva las instituciones del estado, adoptaron como sistema

operativo a Linux, ahorrándose millones de dólares en licencia. Estos

son los ejemplos, que desde el estado deben ser tomados, para hacer

país. Y también la creación de centros de desarrollo de software libre

VPN´S SOBRE SERVIDORES LINUX - 109 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________creados y financiados por el estado, en cada una de las facultades de

Sistemas de todas las universidades del país desarrollando software

dirigido hacia las instituciones educativas estatales como escuelas y

colegios. Empresas estatales como PETROECUADOR, instituciones

estatales como INEC, minas transportes, etc. ect. Hay capacidad lo

que no hay es apoyo gubernamental.

En definitiva, optar por Linux como entorno operativo para montar

una VPN es la mejor solución, debido la gran cantidad de entornos

Linux que existe en el mercado nos ha sido imposible escoger la

mejor para este tipo particular de aplicación. Nosotros hemos optado

por Fedora Core 5, quizá no sea la mejor opción, pero para nuestro

estudio nos ha resultado excelente.

Ahora en cuanto a las aplicaciones, tanto de cliente como la de

servidor VPN usamos y recomendamos dos:

Si se va a levantar con IPSEC, hacerlo con FreesWAN o si se va a

levantar con PPTP hacerlo con OpenVPN.

En cuanto a Windows se recomienda una aplicación que soporte

IPSEC en nuestro caso usamos The GreenBow VPN Client. Facil de

instalar y configurar.

VPN´S SOBRE SERVIDORES LINUX - 110 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

7.4. Glosario de Términos

Túnel.- tecnología utilizada en las VPN sinónimo de encapsulado para

proteger los datos en la red pública

Servidor VPN: Es una pc conectada a Internet esperando por

conexiones de usuarios VPN y si estos cumplen con el proceso de

autenticación, el servidor aceptara la conexión y dará acceso a los

recursos de la red interna.

Cliente VPN: este puede ser un usuario remoto o un enrutador de

otra LAN.

DLSW: Data Link Switching(SNA over IP)

IPX: for Novell Netware over IP

GRE: Generic Routing Encapsulation

ATMP: Ascend Tunnel Management Protocol

VPN´S SOBRE SERVIDORES LINUX - 111 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________IPSEC: Internet Protocol Security Tunnel Mode

PPTP: Point to Point Tunneling Protocol

L2TP: Layer To Tunneling Protocol

ESP: Encapsulating Security Payload

AH .- Authentication Header.

GRE.- Generic Routing encapsulation.

PAP.- Password Authenticaction Protocol.

CHAP.-Challenge-Handshake Authentication Protocol.

MPPE .- Microsoft Point to Point Encryption.

VPN´S SOBRE SERVIDORES LINUX - 112 -

UNIVERSIDAD CATÓLICA DE CUENCA ______________________________________________________________________

7.5. Índice

Introduccion a las VPN´s…………………………………………………………………….10

VPN´S SOBRE SERVIDORES LINUX - 113 -