IPsec en GNU/Linux con OpenSwan y LibreSwan

¿ Que no es IPsec ?

IPsec definitivamente no es una VPN , algunos lo tratan como tal, pero no lo es, no tiene el mismo comportamiento aunque en la práctica puede funcionar haciendo túneles asegurando 2 puntos remotos, aun así no es igual a una VPN

¿ Por que no es una VPN ?

No trabajan en la misma capa OSI , IPSec es parte del grupo de protocolos de en enrutamiento IP en la capa 3 su misión es encaminar la capa 4 de transporte por dónde va el TCP y el UDP por otro lado una VPN es un servicio con asignado a una ip y a un puerto normalmente UDP por lo que las VPN trabajan en la capa de transporte, IPsec trabaja en una capa anterior, de hecho IPsec puede lleva sobre si de forma natural una VPN simplemente por estar en una capa anterior.

Porque existe IPsec si hay soluciones VPN

IPsec actualmente funciona en el internet actual IPV4 por que fue portado de su protocolo nativo el IPV6, en IPV6 tiene todo el sentido del mundo y las VPN no tienen ningún sentido en IPV6, en IPV4 IPsec no tiene tanto sentido, su funcionamiento esta pensado para pares iguales, aunque puede manejar NAT transversal eso ya no es natural en un protocolo como IPSec.

Para hacerlo más simple de entender vamos a hacerlo en equivalencia de analogía de algo que en teoría todos conocen hoy.

Si conocemos la diferencia entre HTTP y HTTPS entonces TCP/IP sería equivalente a HTTP e IPsec sería equivalente a HTTPS, seguridad en la capa 3

¿ Por que usamos VPN ?

En la década de los 90’s nadie se preocupaba muy seriamente por el asunto de que las IPs se agotarían pronto , habían oficinas que tenían computadoras a Internet con IPs homologadas, no había necesidad del nateo, toda computadora estaba expuesta a Internet y los firewall eran cosas raras en ese entonces. Asi que de hecho uno podía mandar a imprimir directamente a la ip publica de una impresora, al mismo tiempo la seguridad no era algo que fuera tomado tan enserio, la forma de administrar equipos por intenet no era secure Shell ( SSH ) era simple telnet, las páginas WEB eran simples HTTP, el correo electrónico SMTP en el puerto 25 era simple, texto puro, prácticamente nada era cifrado al menos a nivel civil, dentro de las especificaciones del TCP/IP no hay nada relacionado con la seguridad relacionada a privacidad de datos. Así que se tuvieron que idear parches a esto, como el SSL y ahora el TLS pero todo esto es a nivel de aplicación, por que el cifrado realmente está en la última capa en la aplicación. Las VPN llegaron como una solución para cifrar los datos no de una aplicación si no de toda la capa 4 , creando un servicio que permitía pasar un telnet inseguro vía un medio seguro, de forma que el telnet no tuviera que ser replanteado, así la conexión de 2 o más lugares remotos se aseguraba, aun asi las VPN son otro tipo de parche por que el internet no fue pensado para tener esa seguridad.

Al mismo tiempo resolvían otro problema, conseguir un puente entre 2 redes que traspasara de forma natural el NAT, para este punto las oficinas ya no tenían las computadoras conectadas directamente a internet y no por que pensaran mucho en su seguridad si no porque los carrier de internet ya no daban suficientes IP a sus clientes, no como antes que te daban al menos una clase C por cada enlace dedicado a internet, así como lo leen, alguna vez podías tener en tus manos toda una clase C, ante la falta de IP se aplico el NAT que hacía que redes no ruteables como 192.168.0.0/16 fueran “ ruteables “ en internet gastando solo una ip homologada, esto presentaba un problema la conexión solo podía ser iniciada desde el interior de la oficina hacia internet pero ningún punto de internet podía llegar directamente a las computadoras detrás del NAT, lo mismo aplicaba si se tenían oficinas remotas, si ambas tenían NAT ninguna podía tocarse entre sí, ambas podían navegar pero ninguna podía llegar a compartir archivos directamente en las computadoras de la otra oficina, las maquinas al tener realmente una ip privada no podían ser fácilmente alcanzadas desde internet, entonces las VPN solucionaron este segundo problema, aseguraban el trafico y al mismo tiempo permitían que 2 puntos remotos pudieran conectar directamente computadoras que de otra forma serian administrativamente imposible de mantener por su complejidad.

¿ Por que ya no serian necesarias las VPN en IPV6 ?

Por que IPV6 tiene tantas IP como arena en las playas del planeta, volveremos a tener tantas ips como en los 90’s que de nuevo todas las computadoras conectadas a internet podrán usar una IP homologada, el nateo en teoría no es necesario, al no tener que unir 2 oficinas que tienen NAT la VPN pierde su propósito, sin embargo eso deja un problema, una de las cosas que hace la VPN es asegurar ambos puntos y es aquí donde entra IPsec, IPsec promete asegurar 2 puntos de conexión directa homologada desde la capa 3 incluso comportándose como un túnel que permitiría alcanzar todas las ips en la red de la oficina remota que aunque tengan IPs homologadas, aun así el trafico entre ellos seria seguro.

Una forma de describir IPsec seria TCP/IPsec en lugar de TCP/IP, IPSec viene incluido en IPV6 y se da por hecho que la conexión es segura en cuanto a su confidencialidad en los datos o al menos esa es la idea propuesta para IPV6

IPSec finalmente no está amarrado a IPV6, está en IPV6 como algo que se da por hecho y aunque en IPV4 se puede usar sin mayo problema, la forma natural es que ambos sitios que usen IPsec tengan ips homologadas aunque también se le aplico una configuración de NAT para “ parchar “ la falta de IPs en IPV4

LibreSwan y OpenSwan

Existen otras implementaciones como FreeSwan descontinuadas y otras más similares como StrongSwan. Por configurarse prácticamente igual aquí describiré una configuración básica de LibreSwan y Openswan que son Forks del proyecto descontinuado de FreeSwan. Usare llave compartida

Solo se requieren 2 configuraciones en 2 archivos

En IPsec.conf se describen 2 cosas

Cual es tu ip a la que se aplicara la seguridad, que redes se pueden encontrar de tu lado, a que IP remotada quieres llegar con seguridad y que redes esperas encontrar del lado remoto.

El segundo archivo es el de secretos ( archivo.secrets ) este archivo es el que describe la llave que se usara para cifrar la conexión entre ambas IPs

Asumiendo que ya se tiene compilado el OpensWan o LibreSwam o instalado con su paquete de distribución, como gusten instalarlo, pero asumiré que ya esta instalado.

En el siguiente video se muestra la configuración y el funcionamiento de IPSec

Los archivos de configuración

LastDragon.conf contiene

conn LastDragonServer
type=tunnel
authby=secret
auto=start
left=45.56.71.61
leftsourceip=10.10.10.1
leftsubnet=10.10.10.0/24
right=45.56.119.100
rightsourceip=10.10.20.1
rightsubnet=10.10.20.0/24
compress=yes

los valores definidos como LEFT son los que se encuentran en el host local, los valores RIGHT son los que se encuentran en el otro extremo.

Para el segundo host básicamente se trata de invertir la configuración por que ahora el LEFT es el local

conn aerysserver
type=tunnel
authby=secret
auto=start
left=45.56.119.100
leftsourceip=10.10.20.1
leftsubnet=10.10.20.0/24
right=45.56.71.61
rightsourceip=10.10.10.1
rightsubnet=10.10.10.0/24
compress=yes

Los archivos de secretos es igual para el lado 1 es
45.56.71.61 45.56.119.100 : PSK "sentineltracker"
Invertido para el otro extremo
45.56.119.100 45.56.71.61: PSK "sentineltracker"

Comentarios finales.

Para evitar preguntas de qué clase de servidor es Aerys ( www.aerys.mx ) y por que use una llave ( PSK ) simple como sentineltracker, la respuesta es que Aerys es una empresa de desarrollo y uno de sus últimos productos es SentinelTracker ( www.sentineltracker.com ) que sirve para el rastreo de personal y automotores, visita sus URL para mas información.

One Response

Add a Comment

Comment spam protected by SpamBam