Interconectividad IPsec


Autor:   kING_z <king>

Fecha:  29-Oct-01

Rev:  01102901


Este documento pretende mostrar la compatibilidad que posee el sistema FreeBSD con otros sistemas como por ejemplo plataformas Windows Ò, en esta ocasión interconectividad a nivel de protocolo cifrado de comunicaciones IPsec entre FreeBSD y PGPnet de Networks Associates en su versión para uso personal.


Que es IPsec?

El mecanismo IPsec provee de una transmisión segura para las comunicaciones de la capa IP y la capa Socket, puede asegurar el tráfico tanto IPv4 como IPv6.

IPsec puede ser usado para construir tuneles entre subredes (modo tunel) o asegurar las comunicaciones entre dos maquinas directamente (modo transporte) con la garantia de que los paquetes estan cifrados, autentificados y protegidos con anti-replay.

Por diseño, las comunicaciones mediante IPsec estan cifradas mediante algoritmos simetricos (Blowfish, DES,3DES). Esto es conocido como ESP (contenido seguro encapsulado), en el que el contenido del paquete es encriptado.


Website templates are pre-designed websites all you need to do is add your own personal content and you're ready to jump start your own website. Website templates by Vooweb 4ujdenci

Las cabeceras del paquete permanecen intactas. Si no quieres encriptar el trafico, puedes usar IPsec en un modo llamado AH (Cabecera Autentificada). En este modo el contenido del paquete no esta encriptado, pero los campos de las cabeceras son hasheados usando un algoritmo seguro, y se añade al paquete una cabecera adicional que permite que la información del paquete sea autentificada. En este documento se tratara el modo transporte para la comunicacion entre dos máquinas.


Implementación del soporte IPsec en kernel



Añadir las siguientes lineas en el fichero de configuración del kernel


options  IPSEC            #IP security

options  IPSEC_ESP       #IP security (crypto; define w/ IPSEC)

options  IPSEC_DEBUG      #debug for IP security


Para instrucciones de como crear un nuevo kernel, dirigirse a la seccion “Configurando el Kernel en FreeBSD” del handbook.


Implementación del entorno seguro


Partimos de la idea de que nuestra red consta de dos maquinas


FreeBSD: 

Windows: 




Para poder proveer de un sistema automático para el intercambio de llaves entre las dos máquinas. se necesita el paquete racoon que se puede encontrar en los ports (/usr/ports/security/racoon), para nuestro propósito no es necesario modificar el fichero de configuracion (/usr/local/etc/racoon/racoon.conf) basta con añadir la contraseña compartida en (/usr/local/etc/racoon/psk.txt) y arrancar el daemon (/usr/local/sbin/racoon).


Ejemplo del fichero psk.txt


   # /usr/local/etc/racoon/psk.txt

# IPv4/v6 addresses

#

eldemonio



El fichero de claves debe estar protegido con permisos 0600 de no tener los permisos adecuados racoon no arrancará:


# chown root.wheel /usr/local/etc/racoon/psk.txt

# chmod 0600 /usr/local/etc/racoon/psk.txt



Para que el daemon arranque cuando el sistema se inicie, se puede usar un script como el siguiente en el fichero (/etc/rc.local).


#!/bin/sh

#

# /etc/rc.local

#

# racoon key exchange server

if [ -x /usr/local/sbin/racoon ]; then

    echo -n “racoon "

    /usr/local/sbin/racoon -f /usr/local/etc/racoon/racoon.conf

fi



Ahora son necesarios los pasos en los que se requiere conexion autentificada y encriptada desde y hacia las ips de las maquinas anteriormente definidas, para hacer eso hay que añadir las siguientes lineas al fichero (/etc/ipsec.conf), y hacerlas activas mediante

setkey -f /etc/ipsec.conf


Fichero de ejemplo:


/etc/ipsec.conf


spdadd any -P out ipsec esp/transport//require ;

spdadd any -P in ipsec esp/transport//require ;


Desde este momento la maquina FreeBSD no aceptara ninguna conexion que no haya sido autentificada y encriptada mediante la clave anteriormente descrita.

Para que la configuracion del ipsec queda activa desde el arranque es necesario añadir en el /etc/rc.conf las siguientes líneas:


ipsec_enable="YES”  # Set to YES to run setkey on ipsec_file
ipsec_file="/etc/ipsec.conf” # Name of config file for setkey


Configuracion del cliente


Como ya se ha comentado antes el cliente que utilizaremos sera PGPnet que forma parte del paquete PGP freeware 7.03 que se puede descargar gratuitamente de http://www.pgpi.com.



Pantalla About:


AbiWord Image0.png




Pantalla principal del PGPnet:



AbiWord Image1.png














Para la correcta comunicacion con el sistema de intercambio de llaves y el soporte IPsec de la maquina FreeBSD la configuracion de los algoritmos de encriptacion del PGPnet deben quedar como lo siguiente:



AbiWord Image2.png




Ahora hay que añadir un host al que conectar (usaremos el modo experto):

AbiWord Image3.png

Quedando la ventada de estado como lo siguiente:


AbiWord Image4.png




Muy importante: para este tipo de pruebas se recomienda se hagan contra una ip virtual del servidor FreeBSD, porque de lo contrario ante un error puede queda incomunicado totalmente.


Ahora cualquier conexion hacia la ip (Maquina FreeBSD) lanzará la peticion de autentificacion y se establecera una conexion segura.






eldemonio.org El site BSD en Castellano Articles catalogue

Website templates are pre-designed websites all you need to do is add your own personal content and you're ready to jump start your own website. Website templates by Vooweb

eldemonio.org v 4_2