|
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.
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
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:
Pantalla principal del PGPnet:
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:
Ahora hay que añadir un host al que conectar (usaremos el modo experto):
Quedando la ventada de estado como lo siguiente:
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.
|