TAREAS DE SEGURID@D

viernes, 30 de mayo de 2008

IPSec en Linux utilizando Racoon

En esta entrada se implementara Racoon con ipsec que nos permitira utilizar llaves precompartidas .
primero instalaremos el respectivo paquete de racoon

#apt-get install racoon


y nos vamos a configurarlo #cd /etc/racoon

aca se definira la llave precompartida que se utilizara en la comunicacion

#pico psk.txt

y esta seria la configurcion final del archivo.

# IPv4/v6 addresses
#10.160.94.3 mekmitasdigoat
#172.16.1.133 0x12345678
#194.100.55.1 whatcertificatereally
#3ffe:501:410:ffff:200:86ff:fe05:80fa mekmitasdigoat
#3ffe:501:410:ffff:210:4bff:fea2:8baa mekmitasdigoat
# USER_FQDN
#foo@kame.net mekmitasdigoat
# FQDN
foo.kame.net hoge
# Direcciones IPv4
10.3.16.112 clave precompartida simple
10.3.19.10 "fuji-mauro-orbit";
# USER_FQDN
cristian@misena.edu.co Esta es una clave precompartida para una dirección de correo
# FQDN
www.spenneberg.net Esta es una clave precompartida


haora pasamos a configurar el archivo racoon.conf

#pico racoon.conf

y aca se configuraran los parametros de la comunicacion como los metodos de encriptacion y demas parmetros necesarios para la comunicacion.

este seria la configuracion final del archivo.

#
# NOTE: This file will not be used if you use racoon-tool(8) to manage your
# IPsec connections. racoon-tool will process racoon-tool.conf(5) and
# generate a configuration (/var/lib/racoon/racoon.conf) and use it, instead
# of this file.
#
# Simple racoon.conf
#
#
# Please look in /usr/share/doc/racoon/examples for
# examples that come with the source.
#
# Please read racoon.conf(5) for details, and alsoread setkey(8).
#
#
# Also read the Linux IPSEC Howto up at
# http://www.ipsec-howto.org/t1.html
#

path pre_shared_key "/etc/racoon/psk.txt";
#path certificate "/etc/racoon/certs";

remote 10.3.19.114 {
exchange_mode main;
proposal {
encryption_algorithm 3des;
hash_algorithm md5;
authentication_method pre_shared_key;
dh_group modp1024;
}
generate_policy off;
}

sainfo address 10.3.16.81[any] any address 10.3.19.114[any] any {
pfs_group modp768;
encryption_algorithm 3des;
authentication_algorithm hmac_md5;
compression_algorithm deflate;
}


y por ultimo pasaremos a configurar el archivo de configuracion de ipsec donde solo se tendran el cuentas las bases de datos de las politicas y el modo de comunicacion que se va a usar.

#!/usr/sbin/setkey -f

# NOTE: Do not use this file if you use racoon with racoon-tool
# utility. racoon-tool will setup SAs and SPDs automatically using
# /etc/racoon/racoon-tool.conf configuration.
#

## Flush the SAD and SPD
#
flush;
spdflush;

## Some sample SPDs for use racoon
#
# spdadd 10.10.100.1 10.10.100.2 any -P out ipsec
# esp/transport//require;
#
# spdadd 10.10.100.2 10.10.100.1 any -P in ipsec
# esp/transport//require;
#

# Políticas de seguridad
spdadd 10.3.16.81 10.3.19.114 any -P out ipsec
esp/transport//require;
# ah/transport//require;
spdadd 10.3.19.114 10.3.16.81 any -P in ipsec
esp/transport//require;
# ah/transport//require;


haora para probar que todo esta bien con los comandos #setkey -f ipsec-tools.conf y #/etc/init.d/racoon restart y si no nos sale ningun problema la comunicacion se hara correctamente.


IPSec en Linux con ESP

En esta entrada se explicara la configuracion de ipsec en modo esp (Encasulation Security Payload -Encapsulacion Segura de la carga de datos) en esta entrada se explicara la configuracion de ipsec con ESP en modo transporte. Este es el archivo de configuracion de ipsec utilizando ESP

Este seria el archivo de configuracion de ipsec

#!/usr/sbin/setkey -f


# NOTE: Do not use this file if you use racoon with racoon-tool
# utility. racoon-tool will setup SAs and SPDs automatically using
# /etc/racoon/racoon-tool.conf configuration.
#

## Flush the SAD and SPD
#
flush;
spdflush;

## Some sample SPDs for use racoon
#
# spdadd 10.10.100.1 10.10.100.2 any -P out ipsec
# esp/transport//require;
#
# spdadd 10.10.100.2 10.10.100.1 any -P in ipsec
# esp/transport//require;
#

# SAs para ESP empleando claves largas de 192 bits (168 + 24 paridad)
add 10.3.16.81 10.3.16.84 esp 0x201 -E 3des-cbc "fuji-orbit-sena2008-1234";
add 10.3.16.84 10.3.16.81 esp 0x301 -E 3des-cbc "fuji-orbit-sena2008-1234";


# Políticas de seguridad
spdadd 10.3.16.81 10.3.16.84 any -P out ipsec
esp/transport//require;
# ah/transport//require;
spdadd 10.3.16.84 10.3.16.81 any -P in ipsec
esp/transport//require;
# ah/transport//require;

Luego con el comando #setkey -f ipsec-tools.conf se cargara la configuracion del ipsec

El mismo archivo se debe configurar el la maquina con la cual se va a comunicar cambiando los parametros de direcciones ip




Y como se muestra en este pantallaso este seria el resultado del intercabio de datos

IPSec en Linux modo AH

En esta entrada se explicara como es la configuracion basica del protocolo ipsec en linux y explicaremos los direnetes modos en los ke los vamos a hacer.

Primero se debe instalar el paquete ipsec-tools

#apt-get install ipsec-tools

luego se pasa aconfigurar el archivo de configuracion de ipsec

#pico ipsec-tools.conf

IPSec en modo AH (autentication Header -Autenticacion de Cabezera)

este es el archivo de configuracion de ipsec para que funcione con AH en modo transporte

#!/usr/sbin/setkey -f

# NOTE: Do not use this file if you use racoon with racoon-tool
# utility. racoon-tool will setup SAs and SPDs automatically using
# /etc/racoon/racoon-tool.conf configuration.
#

## Flush the SAD and SPD
#
flush;
spdflush;

## Some sample SPDs for use racoon
#
# spdadd 10.10.100.1 10.10.100.2 any -P out ipsec
# esp/transport//require;
#
# spdadd 10.10.100.2 10.10.100.1 any -P in ipsec
# esp/transport//require;
#

# SAs para AH empleando claves largas de 128 bits
add 10.3.16.81 10.3.16.84 ah 0x200 -A hmac-md5 "fuji-orbit-sena2";
add 10.3.16.84 10.3.16.81 ah 0x300 -A hmac-md5 "fuji-orbit-sena2";

# Políticas de seguridad
spdadd 10.3.16.81 10.3.16.84 any -P out ipsec
ah/transport//require;
spdadd 10.3.16.84 10.3.16.81 any -P in ipsec
ah/transport//require;


luego con el comando
#setkey -f ipsec-tools.conf se cargara la configuracion del ipsec


el mismo archivo se debe configurar el la maquina con la cual se va a comunicar cambiando los parametros de direcciones ip



este es un pantallaso que se hiso con la comunicacion realizada y que funciono correctamente

miércoles, 21 de mayo de 2008

Protocolo IKE

El protocolo IKE resuelve el problema más importante del establecimiento de comunicaciones seguras: la autenticación de los participantes y el intercambio de claves simétricas. Tras ello, crea las asociaciones de seguridad y rellena la SAD. El protocolo IKE suele implementarse a través de servidores de espacio de usuario, y no suele implementarse en el sistema operativo. El protocolo IKE emplea el puerto 500 UDP para su comunicación.

El protocolo IKE funciona en dos fases. La primera fase establece un ISAKMP SA (Internet Security Association Key Management Security Association - Asociación de seguridad del protocolo de gestión de claves de asociaciones de seguridad en Internet). En la segunda fase, el ISAKMP SA se emplea para negociar y establecer las SAs de IPsec.

La autenticación de los participantes en la primera fase suele basarse en claves compartidas con anterioridad (PSK - Pre-shared keys), claves RSA y certificados X.509

La primera fase suele soportar dos modos distintos: modo principal y modo agresivo. Ambos modos autentican al participante en la comunicación y establecen un ISAKMP SA, pero el modo agresivo sólo usa la mitad de mensajes para alcanzar su objetivo. Esto, sin embargo, tiene sus desventajas, ya que el modo agresivo no soporta la protección de identidades y, por lo tanto, es susceptible a un ataque man-in-the-middle (por escucha y repetición de mensajes en un nodo intermedio) si se emplea junto a claves compartidas con anterioridad (PSK). Pero sin embargo este es el único objetivo del modo agresivo, ya que los mecanismos internos del modo principal no permiten el uso de distintas claves compartidas con anterioridad con participantes desconocidos. El modo agresivo no permite la protección de identidades y transmite la identidad del cliente en claro. Por lo tanto, los participantes de la comunicación se conocen antes de que la autenticación se lleve a cabo, y se pueden emplear distintas claves pre-compartidas con distintos comunicantes.

En la segunda fase, el protocolo IKE intercambia propuestas de asociaciones de seguridad y negocia asociaciones de seguridad basándose en la ISAKMP SA. La ISAKMP SA proporciona autenticación para protegerse de ataques man-in-the-middle. Esta segunda fase emplea el modo rápido.

Normalmente, dos participants de la comunicación sólo negocian una ISAKMP SA, que se emplea para negociar varias (al menos dos) IPsec SAs unidireccionales.

Protocolos de IPSec

AH - Cabecera de autenticación

El protocolo AH protege la integridad del datagrama IP. Para conseguirlo, el protocolo AH calcula una HMAC basada en la clave secreta, el contenido del paquete y las partes inmutables de la cabecera IP (como son las direcciones IP). Tras esto, añade la cabecera AH al paquete.

La cabecera AH proteje la integridad del paquete

La cabecera AH mide 24 bytes. El primer byte es el campo Siguiente cabecera. Este campo especifica el protocolo de la siguiente cabecera. En modo túnel se encapsula un datagrama IP completo, por lo que el valor de este campo es 4. Al encapsular un datagrama TCP en modo transporte, el valor correspondiente es 6. El siguiente byte especifica la longitud del contenido del paquete. Este campo está seguido de dos bytes reservados. Los siguientes 4 bytes especifican en Índice de Parámetro de Seguridad (SPI). El SPI especifica la asociación de seguridad (SA) a emplear para el desencapsulado del paquete. El Número de Secuencia de 32 bit protege frente a ataques por repeticón. Finalmente, los últimos 96 bit almacenan el código de resumen para la autenticación de mensaje (HMAC). Este HMAC protege la integridad de los paquetes ya que sólo los miembros de la comunicación que conozcan la clave secreta pueden crear y comprobar HMACs.

Como el protocolo AH protege la cabecera IP incluyendo las aprtes inmutables de la cabecera IP como las direcciones IP, el protocolo AH no permite NAT. NAT (Network address translation - Traducción de direcciones de red, también conocido como Enmascaramiento de direcciones) reemplaza una dirección IP de la cabecera IP (normalmente la IP de origen) por una dirección IP diferente. Tras el intercambio, la HMAC ya no es válida. La extensión a IPsec NAT-transversal implementa métodos que evitan esta restricción.


ESP - Carga de Seguridad Encapsulada

El protocolo ESP puede asegurar la integridad del paquete empleando una HMAC y la confidencialidad empleando cifrado. La cabecera ESP se genera y añade al paquete tras cifrarlo y calcular su HMAC.

La cabecera ESP

Los primeros 32 bits de la cabecera ESP especifican el Índice de Parámetros de Seguridad (SPI). Este SPI especifica qué SA emplear para desencapsular el paquete ESP. Los siguientes 32 bits almacenan el Número de Secuencia. Este número de secuencia se emplea para protegerse de ataques por repetición de mensajes. Los siguientes 32 bits especifican el Vector de Inicialización (IV - Initialization Vector) que se emplea para el proceso de cifrado. Los algoritmos de cifrado simétrico pueden ser vulnerables a ataques por análisis de frecuencias si no se emplean IVs. El IV asegura que dos cargas idénticas generan dos cargas cifradas diferentes.

IPsec emplea cifradores de bloque para el proceso de cifrado. Por ello, puede ser necesario rellenar la carga del paquete si la longitud de la carga no es un múltiplo de la longitud del paquete. En ese caso se añade la longitud del relleno (pad length). Tras la longitud del relleno se coloca el campo de 2 bytes Siguiente cabecera que especifica la siguiente cabecera. Por último, se añaden los 96 bit de HMAC para asegurar la integridad del paquete. Esta HMAC sólo tiene en cuenta la carga del paquete: la cabecera IP no se incluye dentro de su proceso de cálculo.

El uso de NAT, por lo tanto, no rompe el protocolo ESP. Sin enmbargo, en la mayoría de los casos, NAT aún no es compatible en combinación con IPsec. NAT-Transversal ofrece una solución para este problema encapsulando los paquetes ESP dentro de paquetes UDP.

Modo Tunel y Modo Transporte

Modo de túnel

En el modo de túnel, todo el paquete IP (además de los datos de las cabeceras de los mensajes) están codificados y / o autenticados. Debe ser encapsulada en un nuevo paquete IP para el encaminamiento a trabajar. Túnel se utiliza el modo de red-a-red de comunicaciones (túneles seguros entre routers, por ejemplo, para VPNs) o host-a-red y host-a-host de comunicaciones más la Internet.

Modo de transporte

En modo de transporte, sólo la carga útil (los datos que la transferencia) del paquete IP están codificados y / o autenticados.El encaminamiento está intacta, ya que la cabecera IP no es ni modificado ni cifrada, sin embargo, cuando lacebecera de autenticacion se utiliza, las direcciones IP no puede ser traducido ya que esto invalida el valor hash El tranporte y la capas están siempre garantizados por hash, por lo que no puede ser modificado de ninguna manera (por ejemplo,la traduccion de los números de puerto.)Transportes se utiliza el modo de host-a-host de comunicaciones.


Para proteger la integridad de los datagramas IP, los protocolos IPsec emplean códigos de autenticación de mensaje basados en resúmenes (HMAC

- Hash Message Authentication Codes). Para el cálculo de estos HMAC los protocolos HMAC emplean algoritmos de resumen como MD5 y SHA para calcular un resumen basado en una clave secreta y en los contenidos del datagrama IP. El HMAC se incluye en la cabecera del protocolo IPsec y el receptor del paquete puede comprobar el HMAC si tiene acceso a la clave secreta.


IPSec

IPsec ( Internet Protocol security) es un conjunto de protocolos cuya función es asegurar las comunicaciones sobre el (IP) autenticando y/o cifrando cada paquete IP en un flujo de datos. IPsec también incluye protocolos para el establecimiento de claves de cifrado.Fue desarrollado para el nuevo estándar IPv6 y después fue portado a IPv4


IPsec emplea dos protocolos diferentes - AH y ESP - para asegurarla autenticación, integridad y confidencialidad de la comunicación. Puede proteger el datagrama IP completo o sólo los protocolos de capas superiores. Estos modos se denominan, respectivamente, módo túnel y modo transporte. En modo túnel el datagrama IP se encapsula completamente dentro de un nuevo datagrama IP que emplea el protocolo IPsec. En modo transporte IPsec sólo maneja la carga del datagrama IP, insertándose la cabecera IPsec entre la cabecera IP y la cabecera del protocolo de capas suepriores.