PDF de programación - Túneles Cifrados con FreeS/WAN

Imágen de pdf Túneles Cifrados con FreeS/WAN

Túneles Cifrados con FreeS/WANgráfica de visualizaciones

Actualizado el 10 de Abril del 2020 (Publicado el 16 de Abril del 2017)
1.148 visualizaciones desde el 16 de Abril del 2017
91,2 KB
15 paginas
Creado hace 20a (18/12/2003)
Túneles Cifrados con FreeS/WAN

Daniel Esteban Coletti

1. Introducción

FreeS/WAN es una implementación de los protocolos IPSec (IP Security) en Linux. IPSec provee servicio de
cifrado y autenticación a nivel IP (Internet Protocol). En otras palabras, IPSec le da a ipv4 algo que no tiene,
seguridad de datos (cifrado1) y autenticación.

En este documento voy a tratar de explicar lo más claramente posible cómo utilizar esta implementación y
también voy a escribir sobre experiencias mias utilizando FreeS/WAN. Pero antes algunos comentarios:

1.1. Nomenclatura (Algunas formas que tengo de escribir):

• Cuando veas un # significa que es una linea de comando, y el # es el prompt

• Todo lo encerrado entre corchetes “[ ]” son datos opcionales

• Todo lo encerrado entre mayor y menor “< >” son datos obligatorios

• Si bien esta escrito en español, no utilizo español estricto dado que no fuerzo la traducción de palabras que son

más bien utilizadas en su forma original (inglés) al hablar. Soy argentino y no escribo de “tu”, sino de “vos”

2. Nota importante

Este artículo puede contener errores y vos deberías asumir que los contiene, lo escrito acá no implica ningún tipo
de responsabilidad de mi parte, de ninguna persona y/o empresa mencionada. Cualquier tipo de consecuencia
que surja de seguir estas indicaciones son responsabilidad tuya o de quien las siga/haga. En otras palabras, yo no
me hago cargo de nada, cualquier cosa que hagas será tu responsabilidad.

3. Sobre VPNs

Las VPNs o Virtual Private Networks (Redes Privadas Virtuales) son una forma de emular el uso de una red
privada sobre otra red (generalmente pública). Una red privada es como la red que tenemos en casa o la oficina2,
la idea de las VPNs es lograr que diferentes puntos de una red pública como internet, parezcan ser puntos de una
red propia, en otras palabras es tener la posibilidad de transmitir paquetes a números de ip privados a través de
internet.

Por ejemplo, el ADSL que tengo en casa es la puerta de enlace a las estaciones de trabajo y servidores de mi
sector de RR.HH., el modem que tiene mi amigo en su casa es el acceso al sector de soporte técnico, y
finalmente el vínculo con número de IP fija que tengo en la oficina del centro es el acceso a mis servidores de
correo, intranet y autenticación.

1

Túneles Cifrados con FreeS/WAN

Bueno, entonces mirando la figura podemos permitirnos imaginar una conexión directa entre el equipo de RRHH
(mi casa) al CVS donde están los fuentes de mi software, ahora, esto en realidad no se puede hacer a través de
internet, las direcciones 192.168.X.X no son “ruteables” (son una de las tantas direcciones para exclusivo uso de
redes internas, y ningún router de internet va a saber a dónde enviar paquetes que provengan y/o vayan a éstas
direcciones). Por otro lado, si esto pudiera hacerse, llevarlo a cabo sería una locura, navegar en mi intranet,
autenticarme contra el servidor NIS/LDAP, revisar los correos ... sería como anunciar sobre todo lo que ocurre en
mi red local a la red pública (muchos podrían ver mis datos sin problema alguno) y por último, cualquiera podría
hacerse pasar por mi (o cualquiera de los usuarios de mi red local). Por lo tanto, es sumamente importante poder
cifrar los datos que envio desde y hacia los diferentes puntos de mi red local virtual y también que los diferentes
puntos de mi red local puedan estar seguros que quien los envia es parte de la red.

En términos generales, esto es lo que hace en una VPN que cifra el tráfico que pasa a través de ella (porque
también hay VPN que no hacen el cifrado).

4. Sobre FreeS/WAN

Como dije antes, el proyecto FreeS/WAN es la implementación de IPSec en Linux. El proyecto comprende dos
grandes áreas, una es el código que se agrega al núcleo de Linux (actualmente es un parche separado ya que no
integra el núcleo) y la otra parte es el código de las herramientas que el usuario utiliza para hacer que se
establezcan los túneles (entre otras cosas).

Los fuentes de este proyecto se puede obtener de sitio oficial de FreeS/WAN (http://www.freeswan.org).

Dado que FreeS/WAN es una implementación de IPSec en Linux podriamos inferir que no es la única
implementación de IPSec en Linux, y que además IPSec esta implementado en otros sistemas operativos. Que yo
sepa no hay otra implementación de IPSec para Linux, y en cuanto a la segunda inferencia, es justamente por
esto que es bueno utilizar IPSec al realizar una VPN, existen muchos otros sistemas operativos que tienen
implementado IPSec (además de que es sumamente seguro) y esto permite que con Linux podamos establecer
túneles cifrados contra otras redes que tengan sistemas operativos diferentes. En el sitio de FreeS/WAN hay una
linda tablita de interoperabilidad, recomiendo que la revises para saber contra qué se pueden establecer túneles.

5. Cómo se hace (y qué se necesita)

Ya entendiendo que es una VPN y para qué se usa, vamos a empezar a ver cómo se usa FreeS/WAN y cómo se
hace para armar la VPN. Para esto vamos a necesitar por lo menos dos equipos con Linux3 que se puedan
conectar de algun modo a Internet (en forma directa4). Vamos a instalar FreeS/WAN en ámbos y, luego de
determinar qué tipo de túneles vamos a establecer y el tipo de autenticación que se va a utilizar, vamos a poner a
funcionar nuestra VPN.

Pero antes de hacer todo esto, aún tenemos que enteder (bastante bien) que significa esto de “determinar que tipo
de túneles vamos a establecer” y también esto de “tipo de autenticación que se va a utilizar”.

2

5.1. Tipos de túneles

Túneles Cifrados con FreeS/WAN

La autenticación es el momento inicial cuando desde un nodo de la VPN se quiere establecer un túnel hacia otro
nodo. Lo primero que tienen que hacer los nodos es asegurarse que cada uno es quien dice ser.

Para realizar esta tarea existen varios métodos. En FreeS/WAN he utilizado tres tipos diferentes, estos son:
pre-shared-keys (claves compartidas preacordadas) donde los dos nodos saben de antemano qué clave van a
utilizar, claves RSA (uso de claves asimetricas) para utilizar este método se generan claves asimetricas en cada
nodo de la red y las partes públicas de cada clave son esparcidas por toda la red, de esta forma solamente
aquellos que tengan la parte privada de la clave serán los verdaderos dueñnos de las partes públicas esparcidas, y
por último la autenticación con certificados X509, donde sólo aquellos certificados que estén firmados por una
entidad certificante en la cual nosotros confiemos, serán considerados como nodos válidos. Si bien todos los
métodos tienen sus pros y contras, mi preferencia personal es la autenticación con certificados por su simpleza
de administración y por su gran interoperabilidad con otras plataformas (es común que otras implementaciones
de IPSec utilicen esta autenticación).

6. Instalación

FreeS/WAN tiene dos partes principales, el parche de ipsec para el núcleo (KLIPS) que implementa AH
(Authentication Header -- Encabezado de Autenticación), ESP (Encapsulating Security Payload - No se como se
traduce) y el manejo de paquetes dentro del núcleo. La otra parte son las herramientas de usuario (pluto). Pluto
implementa IKE (Internet Key Exchange -- Intercambio de Llaves de Internet), es quien negocia las conexiones
contra otros equipos.

Lo primero que hay que hacer es lograr que el núcleo entienda ipsec. Esto se puede hacer de varias formas, una
es aplicando el parche a los fuentes del núcleo, compilarlo (con las opciones requeridas) y ejecutarlo, la otra
forma es utilizar algún módulo de FreeS/WAN ya compilado y así hacer que el núcleo entienda ipsec utilizando
la capacidad modular de los núcleos de Linux.

La gente de FreeS/WAN ha hecho un estupendo trabajo documentando todo el proceso de compilación, por lo
que yo no voy a describir este método en detalle, lo único que si voy a comentar (que no esta en la
documentación de FreeS/WAN) es que hay que tener cuidado si se están “probando” los métodos de instalación.
Si uno decide instalar los paquetes y utilizar el módulo, ni siquiera hay que intentar compilar el parche y las
herramientas, ya que el proceso para realizar esto sobreescribe los binarios de los paquetes sin hacer muchas
preguntas. Mi recomendación es instalar los paquetes, es más fácil, más rápido y no hay que responder tantas
preguntas.

En el sitio que produce los parches para X509 (http://www.freeswan.ca) generan paquetes RPMS (aún sino se va
a utilizar este método de autenticación, los paquetes son válidos y se pueden usar con otros métodos), también
generan los paquetes “Super Freeswan” que son paquetes que vienen con muchos parches “no oficiales” para
FreeS/WAN (muy utiles). Una vez descargados del sitio web, se instalan los paquetes de esta forma.

#rpm -Uvh freeswan-<version>-module.rpm
#rpm -Uvh freeswan-<version>.rpm

3

7. Entendiendo la configuración de FreeS/WAN

Túneles Cifrados con FreeS/WAN

La gente de FreeS/WAN ideó una forma de escribir los archivos de configuración que al principio es un poco
dificil de entender. Cuando ellos armaron esto quisieron hacer que los archivos de configuración de todos los
nodos de la red VPN fueran iguales (o extremadamente parecidos), por lo que en vez de utilizar nombres de
variables como “remoto” o “local” (dado que se deben invertir dependiendo el lugar donde uno esté) utilizaron
variables como “izquierda” o “derecha”. De esta forma, no importaba qué nodo uno estuviera configurando, el
“nodo izquierdo” siempre es el mismo en todos los puntos (lo mismo sucede con el derecho, por supuesto). Lo
cierto es que la complejidad de las cosas no siempre juega a nuestro favor, con lo cual son menos las veces donde
los archivos de configuración de los nodos son iguales, que las que lo son diferentes. Por otro lado, ellos
prefirieron utilizar este tipo de sintaxis para disminuir la confusión que puede generar el uso de palabras como
“local” o “remoto” al implementar la VPN (!?).

Por último hay muchos ejemplos en la documentación de FreeS/WAN que supone números de
  • Links de descarga
http://lwp-l.com/pdf3057

Comentarios de: Túneles Cifrados con FreeS/WAN (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad