58
UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIER ´ IA DEPARTAMENTO DE INGENIER ´ IA EN COMPUTACI ´ ON Seguridad en IPv6 con IPsec Javier Enrique Vivar Soto 2008

Seguridad en IPv6 con IPsec - Universidad de Magallanes · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIER´IA DEPARTAMENTO DE INGENIER´IA EN COMPUTACION´ Seguridad en IPv6 …

Embed Size (px)

Citation preview

UNIVERSIDAD DE MAGALLANES

FACULTAD DE INGENIERIA

DEPARTAMENTO DE INGENIERIA

EN COMPUTACION

Seguridad en IPv6

con IPsec

Javier Enrique Vivar Soto

2008

La presente Memoria de Titulacion ha sido aprobada con

la siguiente calificacion:

Javier Enrique Vivar Soto

Memoria :Examen de Tıtulo :Nota Final :

Dr. Pedro Alberti V.

Director DepartamentoDe Ingenierıa En Computacion

06 de Agosto del 2008

UNIVERSIDAD DE MAGALLANES

FACULTAD DE INGENIERIA

DEPARTAMENTO DE INGENIERIA

EN COMPUTACION

Seguridad en IPv6

con IPsec

“Trabajo de titulacion presentado enconformidad a los requisitos para obtener el

tıtulo de Ingeniero de Ejec. en Computacion e Inf.”.

Profesor Guıa: Jose Canuman Ch.

Javier Enrique Vivar Soto

2008

A mis padres, Atilio y Soledad

Resumen

Actualmente el motor de Internet es la pila de protocolos TCP/IP, el cual con el pasar

del tiempo ha sufrido variados problemas que se arreglaban agregando nuevos protocolos a

la familia.

El agotamiento de direcciones IP, debido al gran crecimiento de Internet, provoco la

aparicion de una nueva version del protocolo IP llamada IPv6. Integrado a IPv6 viene una

solucion de seguridad muy potente denominada IPsec.

El presente proyecto pretende adentrar con profundidad en el tema de IPv6 con IPsec al

lector, para ello se investigo de manera teorica y practica, relacionando ambas para explicar

de la mejor forma su funcionamiento.

Indice general

Resumen

I. Introduccion 1

1.1. Relevancia y Aportes del Proyecto de tıtulo . . . . . . . . . . . . . . . . . . 2

1.2. Organizacion del proyecto de tıtulo . . . . . . . . . . . . . . . . . . . . . . . 3

II. Marco Teorico 4

2.1. IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.1.1. Cabeceras de Extension . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.1.2. Direccionamiento en IPv6 . . . . . . . . . . . . . . . . . . . . . . . . 9

2.1.3. Compatibilidad y Actualidad . . . . . . . . . . . . . . . . . . . . . . 11

2.2. IPsec y Seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.1. Algoritmos de Hash o Resumen . . . . . . . . . . . . . . . . . . . . . 13

2.2.2. Algoritmos de Cifrado . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2.3. Asociaciones y Polıticas de Seguridad . . . . . . . . . . . . . . . . . . 14

2.2.4. El Protocolo IKE (Intercambio de claves sobre Internet) . . . . . . . 14

2.2.5. Protocolos AH y ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

III.Desarrollo 17

3.1. Cabecera de Autenticacion (AH) . . . . . . . . . . . . . . . . . . . . . . . . 17

3.2. Cifrado de Seguridad de Datos (ESP) . . . . . . . . . . . . . . . . . . . . . . 20

3.3. Aspectos practicos en el uso de IPsec . . . . . . . . . . . . . . . . . . . . . . 23

IV.Pruebas y Resultados 31

i

ii

V. Conclusiones 37

5.1. Trabajos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Bibliografıa 39

Apendice A 40

Indice de figuras

2.1. Esquema de Capas TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2. Cabecera IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3. Estructura de Cabeceras de Extension . . . . . . . . . . . . . . . . . . . . . 8

2.4. Formato Direcciones IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.5. Funcionamiento de IKE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.1. Cabecera de Autenticacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.2. Funcionamiento de AH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.3. Datagrama IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.4. Datagrama despues de aplicar AH modo transporte . . . . . . . . . . . . . . 19

3.5. Datagrama despues de aplicar AH modo tunel . . . . . . . . . . . . . . . . . 20

3.6. Cabecera de ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.7. Funcionamiento de ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.8. Datagrama IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.9. Datagrama IPv6 luego de aplicar ESP modo transporte . . . . . . . . . . . . 22

3.10. Datagrama IPv6 luego de aplicar ESP modo tunel . . . . . . . . . . . . . . . 23

3.11. Conexion en Modo Transporte . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.12. Configuracion Conexion en Modo Transporte . . . . . . . . . . . . . . . . . . 25

3.13. Conexion en Modo Tunel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.14. Configuracion Conexion en Modo Tunel . . . . . . . . . . . . . . . . . . . . 30

4.1. Configuracion de Red IPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.2. IPv6 v/s IPv4, sin IPsec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.3. Opciones de Seguridad IPsec . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.4. Comparacion entre Alternativas IPsec y el no emplear IPsec . . . . . . . . . 36

iii

Indice de cuadros

2.1. Prefijos Reservados para cada Tipo de Direccion . . . . . . . . . . . . . . . . 10

3.1. Tabla con la Configuracion de la Red . . . . . . . . . . . . . . . . . . . . . . 29

iv

Capıtulo I

Introduccion

En la actualidad, Internet es uno de los medios de comunicacion mas importantes y

extendidos en el mundo. Sin embargo, la seguridad siempre ha sido su punto debil, y con

el pasar de los anos han aparecido muchos parches y extensiones con el objetivo de reforzarla.

Una solucion integral esta por llegar, junto con un cambio sobre Internet. De la mano de la

nueva version de IP (version 6), basicamente el pilar de Internet, viene IPsec, un protocolo

dedicado a otorgar seguridad a las comunicaciones.

IPsec provee principalmente tres servicios a las comunicaciones sobre Internet: autenticacion

del origen de los datos, integridad y confidencialidad (explicados con detalle en el punto 2.2

de este trabajo). El venir de forma integrada en la nueva version de IP no significa que sea

usada por defecto, por lo cual en el presente proyecto se profundizara en el funcionamiento

de IPsec sobre IP version 6.

1

2

1.1. Relevancia y Aportes del Proyecto de tıtulo

Frente a la transicion a sufrir, en base a la actualizacion del Protocolo IP, surge la

necesidad de tener un referente acerca de las novedades y ventajas que traera consigo. Es

ası que el trabajo se centra en el estudio y analisis de la seguridad otorgada por la nueva

version, IPsec. Se debe mencionar tambien, que IPsec es soportado por la version actual de

IP, pero posee dos puntos en contra que le quitan interes, el ser soportado como extension

(no estar integrado) y el que la version actual tiene sus dıas contados debido al crecimiento

exponencial de Internet.

Objetivo General :

Este proyecto tiene como objetivo principal, estudiar la seguridad en IP version 6

empleando el protocolo IPsec. La investigacion es de caracter teorico y practico, para lo cual

se configuraran redes IPv6 con IPsec y se analizara su funcionamiento.

Los aportes mas importantes de este proyecto son:

Un analisis teorico y practico del funcionamiento del protocolo de Seguridad

IPsec, destacando puntos importantısimos y recomendaciones para la configuracion

e implementacion de redes seguras IPsec.

Especificamente un estudio practico acerca del tiempo extra requerido por la Seguridad

IPsec.

Instruye acerca de las varias herramientas disponibles para configurar una red IPv6 con

IPsec.

3

1.2. Organizacion del proyecto de tıtulo

El proyecto se divide en cuatro partes:

El capıtulo II, expone la teorıa requerida para una buena comprension del desarrollo

del proyecto, introduciendo en IPv6 y explicando conceptos importantes de IPsec.

El capıtulo III abarca la investigacion propiamente tal, explicando los pilares de IPsec

en forma teorica, ası como las configuraciones realizadas y su analisis.

El capıtulo IV comprende las pruebas realizadas y los resultados obtenidos.

El capıtulo V corresponde a las conclusiones obtenidas del desarrollo del presente

proyecto y posible trabajos futuros.

Capıtulo II

Marco Teorico

En los anos 60, solo era posible conectar computadores entre modelos de una misma

marca. La incompatibilidad entre los fabricantes era casi total e impedıa la expansion de la

Informatica. En los anos 70 ya existıa comunicacion entre distintos tipos de computadores,

esto gracias a que organismos internacionales (IEEE, ISO) regularon los mecanismos y

formas en que se debıan realizar las comunicaciones entre computadores. Fue ası como

se definio el modelo OSI, especificando un conjunto de 7 capas que permitian aislar el

computador de la red en donde se encontraba conectada.

El siguiente paso, comunicar los tipos de redes existentes para formar una gran red

de redes. De esta manera nace la pila o familia de protocolos TCP/IP, que permite la

conectividad entre redes de computadores. Se le llama ası por sus dos protocolos mas

importantes: TCP (Protocolo de Control de Transmision) y IP (Protocolo de Internet).

TCP/IP es la base de Internet y fue desarrollado por el Departamento de Defensa de

los Estados Unidos, y ejecutado primeramente en ARPANET, una red de area extensa del

departamento de defensa. La familia de protocolos TCP/IP puede ser definida como una

combinacion de cuatro capas, donde cada capa recibe los servicios de la capa situada justo

en su nivel inferior.

4

5

Figura 2.1: Esquema de Capas TCP/IP

La Capa de Enlace incluye los mecanismos que permiten al sistema operativo enviar

y recibir informacion a traves de la red a la que esta conectada.

La Capa de Red es la encargada de mover los paquetes a traves de las diferentes

redes para llegar a su destino. Dentro de esta capa IP es el protocolo mas importante,

definiendo un espacio de direccionamiento.

La Capa de Transporte es la encargada de proporcionar un flujo de datos entre dos

computadores. El flujo puede ser fiable o no fiable.

La Capa de Aplicacion es la encargada de los detalles particulares respectivos a las

diferentes aplicaciones.

En cada capa existen varios protocolos, de los cuales destacan:

IP: Es la pieza fundamental del sistema TCP/IP. Es un protocolo no fiable y no

orientado a la conexion, que se encarga del transporte de los datos por la Red. Define

la identificacion de cada nodo conectado a la red, es decir, proporciona un espacio de

direcciones, con el cual se construye toda la red de redes (Internet).

TCP: Es un protocolo fiable y orientado a la conexion. Utiliza los servicios del Protocolo

IP para mantener comunicacion con el destino y ası poder controlar la correcta recepcion

de los datos.

6

La pila TCP/IP posee un diseno muy flexible, permitiendole anadir nuevos protocolos a la

familia, en gran medida sin tener que alterar los ya existentes. De esta forma, con el pasar

del tiempo fueron apareciendo nuevos protocolos, ejemplos de ello son:

DHCP creado en base a la necesidad de automatizar la configuracion de los nodos

conectados a la red, todo esto con fines administrativos.

SSL o S-HTTP nacen de la falta de seguridad con que TCP/IP fue disenado, otorgan

cifrado e integridad para que dos aplicaciones remotas se comuniquen de manera segura.

En la decada de los 90, Internet comienza a tener un gran crecimiento, con ello se preve el

agotamiento de direcciones IP. Entonces aparecen herramientas para evitar dicha situacion,

ejemplo de ello es la extendida NAT, que permite a un grupo de computadores conectarse

a Internet usando solamente una direccion IP publica. Esta solucion a largo plazo paso a ser

un parche, por lo cual se comenzo a trabajar en lo que serıa una nueva version del protocolo

IP, la cual ademas de solucionar el problema de agotamiento de direcciones, mejorarıa en

diversos aspectos a la version 4 y llevarıa por nombre IPv6 (IP version 6).

2.1. IPv6

IPv6 ademas de satisfacer las necesidades de direccionamiento, trae consigo una serie de

mejoras sobre IPv4, basadas en los anos de experiencia con este ultimo. Se han eliminado

campos redundantes y obsoletos, ası como las opciones, creando una cabecera mucho mas

simple.

Caracterısticas importantes:

Direccionamiento de 128 bits: Espacio de direcciones suficientes para todo el

planeta. Con esto se podran minimizar las tablas de enrutamiento y permitira conectar

practicamente todos los computadores del mundo directamente a Internet, con un

simple metodo de agregacion.

Longitud Fija de Cabecera: Optimiza el procesamiento de los paquetes, ası como

su enrutamiento.

Cabeceras de Extension: Esta estructura mantiene las funcionalidades de los campos

de opciones de IPv4, como enrutamiento del paquete, fragmentacion, ademas de

entregar nuevos servicios de seguridad. Mas adelante se explica con mayor profundidad.

7

Figura 2.2: Cabecera IPv6

De la Figura 2.2:

Version: Se mantiene en la misma posicion, con fines de compatibilidad entre las

versiones 4 y 6.

Clase: Define la prioridad del datagrama. Con el fin de ayudar a tecnologias como

videoconferencia, telefonıa IP.

Tipo de flujo: Especifıca una serie de datagramas que deben recibir el mismo trato.

Tamano de los Datos: El tamano de los datos transportados, abarca los datos despues

de la cabecera IP, incluyendo las cabeceras de extension.

Siguiente Cabecera: Puede ser una cabecera de la capa de transporte como TCP o

UDP, o una cabecera de extension (mas adelante se explican).

Lımite de Saltos: Define el numero maximo de enrutadores a atravesar por un

datagrama, cada enrutador lo decrementa en uno.

8

2.1.1. Cabeceras de Extension

IPv6 introduce el concepto de Cabeceras de Extension con el fin de agregarle opciones

a los datagramas IP. Actualmente existen pocas cabeceras de extension, sin embargo, se

podrıan definir mas en el futuro. Estas cabeceras se ubican entre la cabecera IP y la cabecera

TCP (Ver Figura 2.3), enlazandose entre sı con el campo Siguiente Cabecera. A continuacion,

Figura 2.3: Estructura de Cabeceras de Extension

se nombran las cabeceras de extension existentes, con una breve descripcion de su proposito.

El orden en el que son mostradas, es el definido y recomendado en las especificaciones IPv6.

Cabecera de Opciones entre Saltos: Se usa para llevar informacion adicional procesada

por nodos intermedios.

Cabecera de Opciones de Destino: Contiene opciones procesadas por el nodo

destinatario.

Cabecera de Enrutamiento: Lista uno o mas nodos intermediarios, que debe visitar el

paquete en el camino a su destino.

Cabecera de Fragmentacion: Se usa para dividir paquetes demasiado grandes que no

pueden ser transmitidos en algunas redes. A diferencia de IPv4, la fragmentacion la

realizan solamente los nodos origen y destino, cuando un nodo intermedio recibe un

paquete que no puede retransmitir, envıa un mensaje al origen explicando que el paquete

es muy grande.

9

Cabecera de Autenticacion (AH): Proporciona integridad y autenticacion al paquete.

Mas adelante se tratara con profundidad.

Cabecera de Cifrado de Seguridad de Datos (ESP): Proporciona confidencialidad a los

paquetes. Mas adelante se tratara con profundidad.

2.1.2. Direccionamiento en IPv6

En IPv6 las direcciones son identificadores de 128 bits. Existen tres tipos de direcciones:

Unicast: Un identificador para una sola interfaz. Un paquete enviado a una direccion

unicast, se entrega a la interfaz identificada por esa direccion.

Anycast: Un identificador para un grupo de interfaces (diferentes nodos). Un paquete

enviado a una direccion anycast, se entrega a una de las interfaces identificada por esa

direccion, generalmente la mas cercana.

Multicast: Un identificador para un grupo de interfaces. Un paquete enviado a una

direccion multicast, se entrega a todas las interfaces identificadas por esa direccion.

Cabe destacar que una interfaz puede tener multiples direcciones de todos los tipos

presentados anteriormente, o sea, puede estar conectada a muchas redes. Las direcciones IPv6

se representan de la siguiente forma ’x:x:x:x:x:x:x:x’, donde x son 4 dıgitos hexadecimales,

un conjunto de 16 bits. Ejemplos:

ABCD:EF01:2345:6789:ABCD:EF01:2345:6789

2001:DB8:0:0:8:800:200C:417A

Existe una forma de comprimir las direcciones utilizando :: para representar uno o mas

grupos de 16 bits de ceros. Cabe destacar que solamente se puede utilizar una vez.

Consideremos los siguientes ejemplos de direcciones:

2001:DB8:0:0:8:800:200C:417A

FF01:0:0:0:0:0:0:101

0:0:0:0:0:0:0:1

0:0:0:0:0:0:0:0

10

Su representacion comprimida:

2001:DB8::8:800:200C:417A

FF01::101

::1

::

Las direcciones IPv6 definen la red a la que pertenecen a traves del termino prefijo. Al

referirse a una direccion IPv6 se debe especificar el largo de su prefijo, por lo cual se utiliza

la siguiente notacion:

Direccion-IPv6/Largo-Prefijo

donde:

Direccion IPv6: Una direccion valida, como las descritas anteriormente.

Largo del Prefijo: Es un numero decimal, especificando cuantos de los bits mas a la

izquierda de la direccion comprenden el prefijo.

Ejemplo de Notacion:

2001:0DB8:0:CD30:123:4567:89AB:CDEF/60

Los tipos de direcciones se identifican por los bits de mayor orden:

Tipo de Direccion Prefijo Binario Notacion IPv6No especificada 00...0 (128 bits) ::/128Loopback 00...1 (128 bits) ::1/128Multicast 11111111 FF00::/8Unicast de Enlace Local 1111111010 FE80::/10Unicast de Enlace Global Cualquier otro valor

Cuadro 2.1: Prefijos Reservados para cada Tipo de Direccion

Del Cuadro 2.1:

No especificada: Indica que una interfaz aun no tiene definida una direccion.

Loopback: Interfaz de red virtual, para trabajar con el protocolo TCP/IP sin estar

conectado a una red.

11

Multicast: Se utilizan para enviar paquetes a un grupo de nodos, y comienzan con el

prefijo FF.

Unicast de Enlace Local: Cada interfaz llevara una de estas direcciones, que comienza

con el prefijo FE80. Es utilizada para propositos de comunicarse con la red local para

compartir informacion.

Unicast de Enlace Global: Son las utilizadas para conectarse directamente a Internet.

Las direcciones unicast tienen la siguiente estructura:

Figura 2.4: Formato Direcciones IPv6

Por lo general, la parte de Identificador de interfaz, corresponde a las direcciones MAC de

los adaptadores de red.

2.1.3. Compatibilidad y Actualidad

IPv6 ya ha sido implantado en algunos paıses de Asia, donde no contaban con mas

direccionamiento IPv4. El plan de Transicion de IPv4 a IPv6 consiste en la implantacion de

redes IPv6, siendo islas en Internet, las cuales pueden comunicarse atravesando las redes

IPv4 que existan. Se pretende que dichas islas crezcan hasta abarcar toda la Internet (o una

gran parte).

Existen diversos mecanismos que permiten la convivencia de ambos protocolos de

Red. Ejemplos de esto, son el concepto de Dual Stack, definida como una implementacion

de TCP/IP que es capaz de manejar IPv4 e IPv6. Tambien los tuneles IPv4, consistentes

en encapsular un paquete IPv6, en una datagrama IPv4 y de esta forma traspasar redes IPv4.

Actualmente IPv6 no se ha extendido masivamente, en gran parte por decision de los

ISP (Proveedores de Servicios de Internet), los cuales aun cuentan con direcciones IPv4

12

para ofrecer sus servicios. Se estima el agotamiento total de IPv4 en 3 o 4 anos mas,

por lo cual diversos organismos deberan anticiparse a este evento y hacer un cambio

transparente. Como ejemplo, recientemente la Comision Europea comunico su plan de

despliegue IPv6, y llamo a una Migracion Masiva para el ano 2010 (ver en The IPv6

Portal, http://www.ipv6tf.org).

2.2. IPsec y Seguridad

En un principio el protocolo TCP/IP tenıa como objetivo comunicar institutos y

universidades repartidos en el mundo, para intercambiar informacion cientıfica, por lo cual,

su diseno no contemplo seguridad. Como Internet sufrio un gran crecimiento (mencionado

anteriormente), la cantidad de personas y empresas conectadas a Internet aumento, y con

ello comenzo a evidenciarse su inseguridad, a traves de diversos ataques sufridos por bancos,

instituciones y usuarios.

Existen dos tipos de ataques, pasivos y activos. En los ataques pasivos, el atacante

tiene acceso a la informacion en transito, pero no la altera, lo que conlleva a dificultar

su deteccion. En los ataques activos, el atacante modifica los datos o incluso crea datos

falsos, suplantando la identidad de un usuario. Producto de esto, aparecieron muchas

soluciones de seguridad, basicamente en todas las capas de la Pila TCP/IP, pero no eran

mas que extensiones o parches, entonces se decidio anadir seguridad integrada en TCP/IP, la

interrogante de entonces, ¿Cual capa era la mas adecuada para proporcionar la seguridad?,

entonces la Capa de Red IP fue la elegida, aprovechando la aparicion de IPv6.

IPsec es un estandar que proporciona servicios de seguridad al Protocolo IP y/o

Capa de Red, ası como a todos los protocolos superiores (TCP y UDP entre otros). IPsec

tiene soporte para IPv4 e IPv6, en IPv4 como extension mientras en IPv6 tiene soporte

integrado y obligatorio (segun las especificaciones de IPv6, cabecera de extension). Una

ventaja muy importante presentada por IPsec es ofrecer seguridad a todas las aplicaciones,

en contraste de otras soluciones de seguridad como SSL o S-HTTP las cuales dependian de

la aplicacion.

13

Los servicios de seguridad proporcionados por IPsec son:

Integridad: Los paquetes no han sido modificados en el camino.

Autenticidad: El emisor de un paquete, es efectivamente quien dice ser.

Confidencialidad: El contenido de los paquetes solamente es conocido por el emisor y

el receptor.

IPsec combina varios conceptos, protocolos y algoritmos para lograr su objetivo. Es necesario,

explicar los siguientes puntos para comprender su funcionamiento.

2.2.1. Algoritmos de Hash o Resumen

Son ocupados por IPsec para realizar la autentificacion y verificar la integridad. Un

algoritmo de Resumen entrega una secuencia de bits (pequena longitud), asociada a un

mensaje (paquete) y debe resultar muy difıcil de falsificar. El problema de estos algoritmos

son las colisiones, ya que el mensaje puede tener un largo infinito y nuestra salida o resumen

esta limitada a una secuencia de bits de tamano fijo. Sin embargo, generalmente los mensajes

colisionantes pierden el sentido, no tienen un aspecto valido. De entre los algoritmos de

resumen mas populares y extendidos se encuentran:

MD5: Genera un resumen de 128 bits.

SHA-1: Genera un resumen de 160 bits.

Los dos algoritmos forman parte de las especificaciones de IPsec. Hoy en dıa el mas seguro

es SHA-1.

2.2.2. Algoritmos de Cifrado

Para cifrar la informacion IPsec emplea algoritmos de cifrado simetrico, que ocupan una

clave ademas del mensaje. La clave se usa para cifrar y descifrar el mensaje, mientras mas

grande mas segura. Estos algoritmos dividen el mensaje en bloques de tamano fijo, y aplican

sobre cada uno de ellos operaciones de confusion (sustituciones) y difusion (transposiciones).

La confusion tiene como objetivo ocultar la relacion existente entre el mensaje claro, el

mensaje cifrado y la clave. La difusion intenta repartir la influencia de cada bit del mensaje

14

original lo mas posible entre el mensaje cifrado.

Ejemplos de algoritmos de cifrado son: DES, 3DES, AES, BLOWFISH, etc. Actualmente

DES es considerado inseguro, se le encontraron debilidades y se rompio su cifrado en menos

de dos dıas. 3DES una mejora de DES, aun no presenta debilidades practicas, solo teoricas.

Mientras tanto AES es el nuevo estandar de cifrado, y es uno de los mas seguros actualmente.

DES, 3DES forman parte de las especificaciones de IPsec.

2.2.3. Asociaciones y Polıticas de Seguridad

Una Asociacion de Seguridad (SA) corresponde a un grupo de parametros como

algoritmos de cifrado, hash, clave, etc, que se emplearan para establecer una comunicacion

segura. Tambien forman parte de la SA las direcciones de origen y destino, ası como los

protocolos AH o ESP, el modo de uso (tunel o transporte) y el ındice para referenciar la SA

llamado SPI. Estos parametros seran mencionados posteriormente. IPsec define una Base de

Datos donde se almacenan las Asociaciones, llamada SAD.

Una Polıtica de Seguridad define el trafico al cual aplicar IPsec, saliente o entrante.

Datos como direcciones de origen y destino, el protocolo AH o ESP, el modo de uso, se

deben especificar en este apartado. Las Polıticas de Seguridad son almacenadas en una Base

de Datos llamada SPD.

2.2.4. El Protocolo IKE (Intercambio de claves sobre Internet)

Es un protocolo de dos fases, brinda una comunicacion cifrada y autenticada a dos nodos.

La primera fase, establece los algoritmos de cifrados, claves y metodos de autenticacion a

utilizar para la propia conexion. La segunda fase, es la negociacion basada en el canal seguro

creado en la primera fase. IKE no se limita a IPsec, es un protocolo estandar de gestion de

claves.

La idea de IKE con IPsec es negociar una SA comun a ambos hosts remotos. Un

host ofrecera sus algoritmos de cifrado y resumen, con lo cual el receptor, enviara una

respuesta informando que algoritmos acepta. A partir de los algoritmos comunes se crearan

todas las SAs posibles, automatizando la creacion de claves para cada una. Luego se escoge

15

la SA para la comunicacion IPsec.

Figura 2.5: Funcionamiento de IKE

La autentificacion para negociar a traves de IKE se puede hacer con claves previamente

compartidas (de largo variable) o certificados digitales X509v3. Para establecer la SA entre

dos hosts es util cualquiera de las dos opciones, en cambio, establecer una SA para una

comunicacion multicast (muchos hosts) son necesarios los certificados.

2.2.5. Protocolos AH y ESP

Ambos protocolos son cabeceras de extension en IPv6 y son los encargados directos de

proporcionar la seguridad a la Capa de Red IP.

La Cabecera de Autenticacion (AH), garantiza la integridad y autenticacion del trafico

IP, es decir, el receptor de los paquetes IP puede autenticar el origen de los datos y verificar

que no han sido alterados en su trayecto. Sin embargo, los datos viajan en texto plano y

pueden ser vistos por terceros. Utiliza los algoritmos de resumen mencionados anteriormente.

La Cabecera de Cifrado Seguro de Datos (ESP), tiene como objetivo principal el

impedir la visualizacion de los datos, a traves de su cifrado. ESP otorga confidencialidad,

16

adicionalmente ofrece servicios de integridad y autenticacion, incorporando un mecanismo

similar al de AH. Los tres servicios pueden ser utilizados en conjunto para proporcionar una

solucion de seguridad robusta. Emplea algoritmos de cifrado y resumen.

Ambos protocolos poseen dos modos de uso, modo transporte y tunel. El modo

transporte sirve para establecer una comunicacion segura entre dos hosts, mientras que el

modo tunel, establece una comunicacion segura entre dos redes, a traves de la implementacion

de IPsec en sus enrutadores.

Capıtulo III

Desarrollo

3.1. Cabecera de Autenticacion (AH)

AH es una cabecera de extension en IPv6, encargada de entregar integridad y

autenticacion a los datos.

Figura 3.1: Cabecera de Autenticacion

Siguiente Cabecera: Indica la siguiente cabecera a procesar, puede ser otra cabecera de

extension IPv6 o una cabecera TCP o UDP.

Tamano de los Datos: Especifica la longitud de los datos.

SPI: Permite la ubicacion de la Asociacion de Seguridad (SA) en la SAD. En este caso

algoritmos de autenticacion, claves, etc.

17

18

Numero de Secuencia: Identifica cada paquete y garantiza un orden, ademas de evitar

repeticiones.

ICV: Valor para comprobar la autenticidad e integridad de los datos.

El funcionamiento de AH se basa en un algoritmo llamado HMAC (Codigo Resumido de

Autenticacion de Mensaje). HMAC consiste en aplicar una funcion de resumen (MD5 o

SHA-1), a una entrada de datos (Cabeceras IP, de extension y datos) y una clave, generando

una cadena de bits (ICV). Las claves y funciones de resumen, son definidas en la Asociacion

de Seguridad. En la Figura 3.2, vemos el procedimiento de AH sobre los datos. Si el paquete

Figura 3.2: Funcionamiento de AH

fuese modificado en su viaje, el receptor no obtendra el mismo ICV, descartandose el paquete.

En cambio, si el ICV coincide con la calculada por el receptor, se asegura el origen y que

el paquete no ha sido alterado. Uno de los problemas enfrentados por AH, corresponde a

algunos campos de las cabeceras que sufren modificaciones en el transito hasta llegar a su

destino (ejemplo, el campo Lımite de Saltos), con lo cual, cambia la entrada de datos del

19

algoritmo HMAC. AH define los campos de las cabeceras IP y de extension, como mutables e

inmutables, y autenticara solo los inmutables y los mutables los tratara como cero. Por esta

razon es rechazado en cierta manera el uso de NAT, al dejar los campos de direcciones origen

y destino expuestos.

Figura 3.3: Datagrama IPv6

En la Figura 3.3, se muestra la estructura normal de un datagrama IPv6. A continuacion se

vera como queda dicho datagrama al aplicar AH en modo transporte y modo tunel. Tambien

se observara el alcance de sus servicios.

Figura 3.4: Datagrama despues de aplicar AH modo transporte

En el modo transporte, la cabecera de autenticacion se coloca entre las cabeceras de extension

y la cabecera TCP. Los servicios son entregados solamente a los campos inmutables, por lo

cual se debe procesar cuales son los campos mutables dentro de las cabeceras IPv6 y de

extension.

En el modo tunel se crea una nueva cabecera IPv6 y una copia de las cabeceras de extension,

que se antepone a la cabecera AH. En este caso, las cabecera IPv6 y de extension originales

recibiran los servicios de AH por completo. La nueva cabecera IPv6, contendra las direcciones

de los encaminadores que implementen IPsec.

20

Figura 3.5: Datagrama despues de aplicar AH modo tunel

3.2. Cifrado de Seguridad de Datos (ESP)

ESP es una alternativa de seguridad robusta. Ofrece confidencialidad, ademas de

integridad y autenticidad de datos. El objetivo principal de ESP es encapsular las cabeceras

de la Capa de Transporte y los datos, para cifrarlos y ası limitar la visualizacion de su

contenido al emisor y el receptor.

Figura 3.6: Cabecera de ESP

SPI: Permite la ubicacion de la Asociacion de Seguridad (SA) en la SAD. En este caso

algoritmos de cifrado y autenticacion, claves, etc.

21

Numero de Secuencia: Identifica cada paquete y garantiza un orden, ademas de evitar

repeticiones.

Datos: Contiene los datos cifrados, o sea las cabeceras TCP o UDP, y los datos.

Relleno: Contiene un relleno agregado al campo de Datos, con el fin de ocultar su

longitud real.

Tamano del Relleno: La cantidad de relleno agregado. Cero significa que no hay relleno.

Siguiente Cabecera: Indica la siguiente cabecera a procesar, una cabecera TCP o UDP.

ICV: Valor para comprobar la autenticidad e integridad de los datos.

Figura 3.7: Funcionamiento de ESP

22

El funcionamiento de ESP es representado en la Figura 3.7. El emisor envıa sus datos,

que seran procesados por un algoritmo de cifrado simetrico (DES, 3DES o AES) junto a una

clave previamente compartida con el receptor, produciendo el mensaje cifrado. El receptor

toma el mensaje y junto a su clave lo descifra con el mismo algoritmo.

Los Algoritmos de cifrado, resumen y claves estan definidos en la Asociacion de Seguridad

ocupada para la comunicacion. El funcionamiento de la autenticacion e integridad ofrecida

por ESP, es similar al de AH. Las especificaciones de IPsec recomiendan el uso de ESP con

autenticidad e integridad, ya sea con el mismo ESP o con AH. Esto debido a la inseguridad

demostrada por DES, siendo posible romper su cifrado y quedar expuesto a ataques activos.

A partir del datagrama IPv6 normal, se veran los cambios al aplicar ESP en modo

transporte y modo tunel.

Figura 3.8: Datagrama IPv6

Figura 3.9: Datagrama IPv6 luego de aplicar ESP modo transporte

En comparacion con AH los servicios de integridad y autenticacion de datos no tienen

tanto alcance, ya que no cubren las cabeceras IPv6 y de extension. ESP ICV, es el unico

campo no cifrado, porque a partir de este se chequea la integridad y autenticidad de los

datos, proceso anterior al descifrado de datos.

23

Figura 3.10: Datagrama IPv6 luego de aplicar ESP modo tunel

En modo tunel tambien se crean las copias de cabeceras, y los servicios alcanzan a

las cabeceras originales solamente.

3.3. Aspectos practicos en el uso de IPsec

IPv6 e IPsec, actualmente se encuentran implementadas en los distintos Sistemas

Operativos disponibles. En las distribuciones de Linux desde el Kernel 2.4 hacia adelante.

Se decidio usar Debian 4.0 (Kernel 2.6.18) por simplicidad con la instalacion y obtencion de

los paquetes, ası como para facilitar las pruebas, generando trafico en la Red con protocolos

como HTTP, SMTP, etc, teniendo en cuenta que dispone varios servicios de este estilo por

defecto.

Algunos textos indican la recomendacion de compilar el Kernel para utilizar IPsec, para

ası evitar problemas. La idea es integrar los modulos requeridos al Kernel, y no cargarlos en

tiempo ejecucion. Al principio se siguio este procedimiento, pero mas tarde se comprobo no

existir mucha diferencia entre usar el Kernel compilado y el Kernel generico, ademas de no

generar problemas. El soporte de los algoritmos de cifrado y de resumen se encuentra en el

Kernel. La version de Debian empleada, soporta los algoritmos de resumen

MD5

SHA1

y los algoritmos de cifrado

DES y 3DES

AES

24

BLOWFISH

El primer paso serıa entonces, seleccionar las herramientas de trabajo (ver detalles en

Apendice A.1). Para establecer las Asociaciones de Seguridad (SAs) se suele utilizar el

paquete ”ipsec-tools”, que permite escribir en la SAD y en la SPD. De esta forma, se

pueden definir manualmente las SAs, a traves de claves previamente compartidas. Para

lograr una configuracion automatica de las SAs, es necesario utilizar una implementacion

del protocolo IKE, como racoon, freeswan y openswan. Por la existencia de abundante

documentacion, se selecciono racoon como alternativa.

Una vez definidas las herramientas, se armo una configuracion basica con el siguiente

esquema:

Figura 3.11: Conexion en Modo Transporte

La comunicacion entre dos hosts en modo transporte, con solo AH, solo ESP y conjuntamente

ambos. En modo transporte cada host implementa IPsec. La idea, era comprobar la aplicacion

de IPsec sobre el trafico IPv6, por lo cual, se deberıa utilizar una herramienta para monitorear

los paquetes y ver su efecto. Se empleo tcpdump, una herramienta de monitoreo y analisis

de red muy potente y ampliamente extendida.

Era necesario generar trafico, quizas la manera mas sencilla de hacerlo es con el comando

ping, en IPv6 se denomina ping6. Pero, como es interesante ver si efectivamente IPsec es

aplicado sobre todo tipo de trafico y no solo ICMP6 (ping6), se opto por montar un servidor

web y un servidor de correo. Con esto, se comprobarıa su aplicacion sobre trafico HTTP,

SMTP e ICMP.

El servidor web Apache2 viene integrado en Debian 4 y soporta IPv6 en su configuracion

por defecto.

25

El servidor de correo Postfix incluye soporte IPv6 con una pequena modificacion en su

archivo de configuracion.

inet_protocols = ipv6

La configuracion de la Red:

Figura 3.12: Configuracion Conexion en Modo Transporte

Mediante el comando setkey (ipsec-tools) se pueden definir las Asociaciones y Polıticas de

Seguridad, para lo cual se debe editar el archivo /etc/ipsec-tools.conf. Para especificar

una SA, seguir la siguiente sintaxis:

add direccion-fuente direccion-destino ah|esp spi

-m tunnel|transport

-A algoritmo clave #Para algoritmos de resumen

-E algoritmo clave #Para algoritmos de cifrado

; #Para terminar la sentencia

Para adicionar se utiliza add, seguido de la direccion origen del paquete (puede ser un

host o una red) y direccion del destinatario.

El protocolo a usar, AH o ESP.

El SPI (ındice de Parametros de Seguridad).

El modo, con el parametro -m, puede ser tunel o transporte.

-A (algoritmo de resumen) o -E (algoritmo de cifrado) seguido de los algoritmos y sus

respectivas claves. Las claves deben ser del largo requerido por el algoritmo, y pueden

estar en ASCII o hexadecimal, de la ultima forma anteponer ’0x’.

26

En el caso de ESP, primero van los algoritmos de cifrado y luego los algoritmos de resumen.

Esta es la sintaxis basica de las Asociaciones de Seguridad, y deben ser iguales en ambos

extremos de la comunicacion.

Para las Polıticas de Seguridad se realiza de manera similar.

spdadd dir-fuente[puerto] dir-destino[puerto] protocolo -P out|in ipsec|discard

ah|esp/transport|tunnel/dir_gw_fuente-dir_gw_destino/use|require

#Se pueden emplear ah y esp simultaneamente.

#direccion_gw solamente en modo tunel

;

spdadd seguido de las direcciones origen y destino (host o red), al lado de cada direccion

si se desea se puede especificar algun puerto entre corchetes (ejemplo, puerto 80 HTTP).

El protocolo de los datos a proteger (debe estar en el archivo /etc/protocols). Si se

coloca any se protegera todo el trafico.

-P y el sentido del paquete, entrante o saliente (in/out), esto depende de las direcciones

origen y destino.

ipsec o discard, ipsec significa aplicarle la seguridad que tenga definida, mientras que

discard, descartara el paquete.

El protocolo AH o ESP.

El modo de uso, transporte o tunel.

En el caso de ser modo tunel, se deben indicar las direcciones de los enrutadores que

implementan IPsec.

Finalmente use o require. use, significa que de haber seguridad asociada al trafico se

aplica, de no haber simplemente se comunican sin seguridad. Mientras tanto, require

significa que solo se comunican si hay seguridad asociada al trafico.

Para escribir en la SAD y SPD, ejecutar setkey -f /etc/ipsec-tools.conf. Los archivos

de configuracion de las SAs y SPs se pueden ver en Apendice A.1. Las Polıticas de Seguridad

son bastante flexibles y permiten aplicar filtros, pudiendo proteger solamente algunos

27

puertos o protocolos. Esto es muy util, debido a que generalmente no se necesita proteger

todo el trafico IP. Se podrıa brindar seguridad solamente al protocolo TCP por ejemplo, o

mas especificamente al puerto 21 (FTP).

La generacion del trafico se hizo con eventos como cargar una pagina HTML del

servidor web, conectarse con el comando telnet al puerto 25 (SMTP) para redactar un

correo, o un simple ping (ping6). Al analizar el trafico con tcpdump se aprecia claramente

la estructura de cabeceras encadenadas de IPv6. Comienza la cabecera IPv6 y le sigue AH

o ESP dependiendo de cual se este usando. Cuando esten presentes ambos, se ven las tres

cabeceras en el orden IPv6, AH, ESP. Ver detalles en Apendice A.2.

Para la comprobacion del correcto funcionamiento de IPsec, primeramente se monitoreo sobre

distinto trafico sin IPsec. Una vez hecho esto, se procedio a monitorear el trafico con IPsec

aplicado. Con tcpdump ejecutado de esta forma:

tcpdump -X -s 1500

se puede apreciar el contenido de los paquetes, en hexadecimal y en ASCII, ası se verifica el

cifrado correcto de datos. Ver Apendice A.3.

La configuracion manual de IPsec, debe llevarse a cabo en ambos extremos de la

comunicacion, estableciendo las mismas Asociaciones de Seguridad. Obviamente esto puede

parecer bastante engorroso, sobre todo si se quiere tener muchos canales de comunicacion

segura, por lo cual el Protocolo IKE nos otorga la automatizacion de este proceso.

Racoon es una implementacion de IKE, y nos permite de manera sencilla manejar las

Asociaciones de Seguridad. Requiere de una autentificacion para comenzar la negociacion,

se opto por el metodo de claves previamente compartidas. Esto nos brinda, una forma de

agregar canales seguros, solamente indicando la clave pre-compartida, los algoritmos de

cifrado y resumen. A partir de esta informacion, los hosts remotos crearan sus Asociaciones

de Seguridad y decidiran cual aplicar.

Como ejemplo, si un host, dispone de DES, 3DES, SHA1 y MD5, este tendra dos

SAs para usar con AH (SHA1, MD5) y cuatro SAs para ESP (DES con SHA1, 3DES con

28

SHA1, DES con MD5, 3DES con MD5) (Ver archivo de configuracion en Apendice A.1). Las

Polıticas de Seguridad deberan ser cargadas manualmente usando el comando setkey y el

archivo /etc/ipsec-tools.conf mencionado antes.

Racoon soporta autentificacion mediante certificados digitales, lo cual resulta mucho

mas escalable para comunicacion entre mas de dos hosts. Esta funcionalidad no fue probada,

ya que solamente se montaron redes pequenas. Con estas herramientas, teniendo en cuenta

la alternativa entre una configuacion manual o automatica de las SAs, se puede establecer

una conexion segura entre dos nodos.

Es costoso configurar cada equipo de una red con IPsec, por lo cual, el modo tunel

es una muy buena opcion para los administradores de grandes redes. La idea del modo tunel

es conectar dos redes remotas de forma segura, esto a traves de la implementacion de IPsec

en sus enrutadores, el esquema se muestra a continuacion.

Figura 3.13: Conexion en Modo Tunel

A todo el trafico saliente de LAN 1 en direccion a LAN 2 el enrutador 1 aplica IPsec.

Al llegar los datos al enrutador 2 este le aplica IPsec y lo envıa a su destinatario final.

Ademas de esto, los paquetes son modificados, y las direcciones IP ahora corresponderan

a la de los enrutadores (origen y destino), por consiguiente, en el caso de emplear cifrado

29

(ESP), si alguien intercepta un paquete en el trayecto entre el Enrutador 1 y 2, no prodrıa

obtener las direcciones de origen y destino, porque se encuentran cifradas junto a los datos.

Este esquema, donde se ocultan las identidades del emisor y receptor ademas de cifrar

y autenticar los datos, es conocido como VPN (Red Privada Virtual), un canal de

comunicacion seguro sobre un medio de comunicacion inseguro (Internet).

Para poner a prueba el modo tunel, se dispuso de cuatro computadores, en donde

dos cumplıan el rol de enrutadores y los otros dos eran clientes, obviamente de redes

diferentes. A continuacion se muestra la configuracion de los equipos:

Como se aprecia en la tabla se tienen tres redes, cada una definida a traves de su prefijo de

Host Direccion IPv6 Prefijo de Red Interfaz de Redpc1 2001:db8:100::1 2001:db8:100::/64 eth0pc2 2001:db8:200::1 2001:db8:200::/64 eth0gw1 2001:db8:100::100 2001:db8:100::/64 eth0gw1 2001:db8:150::1 2001:db8:150::/64 eth1gw2 2001:db8:200::100 2001:db8:200::/64 eth0gw2 2001:db8:150::2 2001:db8:150::/64 eth1

Cuadro 3.1: Tabla con la Configuracion de la Red

red. La arquitectura de red, fue Ethernet 10 Base T. En este escenario, el pc1 tambien

sera el servidor web y de correo. Con el esquema de la figura 3.14 se realizaron las pruebas

de comprobacion.

Con el comando tpcdump se comprobo el cifrado de los datos, y la modificacion de

la cabecera IP con las direcciones de los respectivos enrutadores seguros. Efectivamente se

pierde la identidad del origen y destino. Si un tercero interceptara el paquete solamente

verıa las direcciones de los enrutadores. Ver Apendice A.4.

Tambien se observo como son tratados los paquetes al llegar a los enrutadores, sacandole

las cabeceras hasta dejarlo con la cabecera IP original. Como ejemplo, si se emplea AH con

ESP, se procesara primero la cabecera AH realizando la comprobacion de la autenticacion

e integridad y se extraera. Le seguira el procesamiento de la cabecera ESP, descifrando los

datos y finalmente se llega a la cabecera IP original. Ver Apendice A.5.

Racoon tambien fue empleado en modo tunel. Para ver la configuracion Apendice A.6.

30

Figura 3.14: Configuracion Conexion en Modo Tunel

Con el comando tcpdump se puede ver el contenido del trafico en los enrutadores, o

sea es una herramienta potente que facilmente puede ser utilizada en contra del objetivo

que persigue IPsec, brindar seguridad. Si una tercera persona lograse monitorear desde

un enrutador, entonces su LAN quedarıa totalmente expuesta. Para restringir el acceso al

enrutador y a la Red se recomienda la implantacion de un Firewall. ip6tables es una

buena alternativa, solamente cambia el manejo de direcciones IPv4 por IPv6 respecto del

original (iptables) y no implementa NAT (no es necesario en IPv6).

En el transcurso del analisis de funcionamiento de IPsec, se pudo evidenciar el trabajo que

realiza sobre los datos transmitidos, cambiar cabeceras, procesar los algoritmos, analizar

a que trafico aplicar, etc. Por lo cual se asume un aumento en el tiempo de transmision,

debido al procesamiento requerido. En el modo tunel toma una importancia mayor, ya que

un enrutador debera procesar todo el trafico saliente y entrante de su LAN. En base a esta

suposicion se propuso investigar el impacto en el tiempo asociado a una red protegida con

IPsec.

Capıtulo IV

Pruebas y Resultados

El objetivo de las pruebas, es ver el impacto en el tiempo entre una red protegida con

IPsec y una red no protegida. Se transferiran archivos de tamano creciente, para ası poder

ver los efectos en el tiempo de la transmision de datos.

Se utilizara la configuracion en modo tunel montada con anterioridad, anadiendole un

servidor FTP al pc1, para poder transferir los archivos de prueba. El servidor FTP es

ProFtp, el cual trae soporte integrado de IPv6. Como es una red apartada, no habra trafico

que provoque congestion, aunque de todas maneras se comprobo monitoreando con

tcpdump. En base a esto se definio un total de 10 transferencias para cada archivo de

prueba, obteniendo finalmente un promedio.

Los tamanos de los archivos de prueba.

50 MB

95 MB

145 MB

195 MB

31

32

Las Asociaciones de Seguridad a probar fueron las siguientes:

AH con SHA-1

AH y ESP con SHA-1 - 3DES

ESP con SHA-1 - 3DES

Se descarto ESP con solo cifrado, por no ser una opcion muy segura, como se menciono antes

queda expuesto a ataques activos. Los algoritmos 3DES y SHA-1 fueron seleccionados por ser

de los mas seguros actualmente. Los archivos de configuracion se encuentran en Apendice A.7.

Para crear otro escenario de prueba, se uso el comando ping6, que permite cambiar

el tamano de los paquetes con el parametro -s. Ası se podra estudiar tiempos mucho mas

pequenos.

A partir de esta opcion, se definieron los siguientes tamanos de paquetes.

64 bytes

128 bytes

256 bytes

512 bytes

1024 bytes

33

Por ultimo se estudiara la diferencia de tiempo de transmision de datos usando

IPv6 e IPv4. En la configuracion de la red IPv4 se ocupo iptables en los enrutadores,

implementando NAT. Esto debido a que hoy en dıa las redes locales IPv4 con frecuencia lo

emplean, para conectarse a Internet. Ver Apendice A.8.

Figura 4.1: Configuracion de Red IPv4

La ejecucion de las pruebas se hizo con un script, que se puede ver en Apendice A.9.

A continuacion el grafico obtenido con las transferencias FTP y trafico ICMP6.

34

0

50

100

150

200

250

300

0 50 100 150 200

Tie

mpo

s (s

egun

dos)

Tamaño de Datos (MB)

Transferencias FTP

IPv4IPv6

0.5

1

1.5

2

2.5

3

3.5

100 200 300 400 500 600 700 800 900 1000

Tie

mpo

s (m

ilise

gund

os)

Tamaño de Datos (bytes)

Paquetes ICMP con Ping

IPv4IPv6

Figura 4.2: IPv6 v/s IPv4, sin IPsec

Ambos tienen un comportamiento lineal muy similar, la diferencia de tiempo es totalmente

mınima. Quizas sin el uso de NAT IPv4 tendrıa un mejor rendimiento, pero hoy en dıa esta tan

extendido, que no serıa muy representativo no considerarlo en el esquema.

35

A continuacion el comportamiento al aplicar de IPsec con las Asociaciones de Seguridad

definidas anteriormente.

0

50

100

150

200

250

300

0 50 100 150 200

Tie

mpo

(se

gund

os)

Tamaño de Datos (MB)

Transferencias FTP

AH−ESPESP

AH

0.5

1

1.5

2

2.5

3

3.5

100 200 300 400 500 600 700 800 900 1000

Tie

mpo

(m

ilise

gund

os)

Tamaño de Datos (bytes)

Paquetes ICMP con Ping

AH−ESPESP

AH

Figura 4.3: Opciones de Seguridad IPsec

Claramente AH al emplear solamente un algoritmo de resumen, logra mejores resultados que

las otras dos alternativas. ESP-AH y ESP mantienen un comportamiento similar, ambos

funcionando con los mismos algoritmos. En base a esto, es mejor opcion ESP con AH,

recordando que el alcance de sus servicios de autenticidad e integridad es mayor al de ESP.

36

0

50

100

150

200

250

300

0 50 100 150 200

Tie

mpo

(se

gund

os)

Tamaño de Datos (MB)

Transferencias FTP

AH−ESPAH

Sin IPsec

0.5

1

1.5

2

2.5

3

3.5

100 200 300 400 500 600 700 800 900 1000

Tie

mpo

(m

ilise

gund

os)

Tamaño de Datos (bytes)

Paquetes ICMP con Ping

AH−ESPAH

Sin IPsec

Figura 4.4: Comparacion entre Alternativas IPsec y el no emplear IPsec

A primera vista, podrıa ser poco considerable el aumento de tiempo entre una red con y

sin IPsec. Sin embargo, si se tuviera una LAN mucho mas grande los enrutadores podrıan

provocar una diferencia de tiempo mucho mayor, dependiendo del trafico concurrente que

reciban y que deban procesar.

Capıtulo V

Conclusiones

IPsec es una solucion de seguridad muy potente y flexible, ademas de ser totalmente

transparente al usuario. Dependiendo de su configuracion se puede proteger todo el trafico

de una red o solamente un tipo particular. La base de sus servicios son los algoritmos de

cifrado y resumen, al mismo tiempo en que algunos algoritmos se vayan debilitando iran

apareciendo otros mas potentes, por lo cual, se tiene una estructura escalable a traves de los

anos.

El uso de IPsec trae consigo procesamiento extra, como agregar cabeceras, modificar

cabeceras, aplicar diversos algoritmos, etc. Las pruebas realizadas para ver el efecto de dicho

procesamiento sobre el tiempo de transmision tuvieron resultados muy lineales, debido a

la uniformidad del proceso aplicado a cada paquete, generalmente dado por los algoritmos

utilizados, y que no varıa con el aumento del tamano de los datos.

Sin embargo, si se tuviera una red demasiado grande en modo tunel, el enrutador que

implementa IPsec, podrıa verse sobrecargado si no es una maquina de procesamiento

potente. En base a esto, se aconseja poner enfasis en las caracterısticas del enrutador que

implemente IPsec, para que sea capaz de procesar gran cantidad de trafico concurrente y no

aumentar el tiempo de transmision.

De las opciones de seguridad proporcionadas por IPsec, combinar ESP con AH resulta ser

la mas aconsejable aunque requiere de mayor procesamiento. El modo tunel con ambos

protocolos permite establecer una VPN (Red Privada Virtual) sobre Internet. En general,

IPsec es altamente configurable segun las necesidades de la red en cuestion.

37

38

Es altamente recomendable complementar la seguridad proporcionada por IPsec con

herramientas como un Firewall, con el fin de restringir el acceso a la maquina que

implemente IPsec, para evitar la intercepcion o visualizacion de paquetes por parte de

terceros. Es decir, en el caso particular de tener un enrutador con IPsec, no conectarlo

directamente a Internet, anteponer un Firewall.

Finalmente, al estar ligados directamente IPsec con IPv6, a medida que IPv6 se vaya

extendiendo con el pasar de los anos, IPsec se ira convirtiendo en la solucion de seguridad

estandar en Internet.

5.1. Trabajos Futuros

A continuacion se exponen algunos trabajos que podrıan complementar el tema abordado

por el presente proyecto.

Investigar en profundidad algoritmos de Resumen y Cifrado, ver como funcionan y

cuales son las mejores alternativas para usar con IPsec.

Investigar el nuevo Protocolo IPv6, para tener un referente acerca de las otras novedades

y mejoras que trae consigo, a parte del tema central de este trabajo.

Bibliografıa

[1] C. Madson & R. Glenn. The Use of HMAC-MD5-96 within ESP and AH (RFC

2403), pages 1-7, November 1998.

[2] C. Madson & R. Glenn. The Use of HMAC-SHA-1-96 within ESP and AH

(RFC 2404), pages 1-7, November 1998.

[3] S. Deering & R. Hinden. Internet Protocol, Version 6 (IPv6) Specification (RFC

2460), pages 1-39, December 1998.

[4] S. Deering & R. Hinden. IP Version 6 Addressing Architecture (RFC 4291), pages

1-22, February 2006.

[5] S. Kent & K. Seo. Security Architecture for the Internet Protocol (RFC 4301),

pages 1-99, December 2005.

[6] S. Kent. IP Authentication Header (RFC 4302), pages 1-33, December 2005.

[7] S. Kent. IP Encapsulating Security Payload (RFC 4303), pages 1-43, December

2005.

[8] Ralf Spenneberg. IPsec How To, 2003.

[9] Fco. Javier Aliaga. IPsec y Firewalls en IPv6.

[10] Manuel J. Lucena. Criptografıa y Seguridad en Computadores, Cuarta

Edicion, Version 0.7.0.

[11] Pello Xabier Altadill. IPTABLES Manual Practico.

39

Apendice A

Este apendice contiene los archivos de configuracion para las pruebas realizadas y las

capturas obtenidas con tcpdump.

A.1 Herramientas y Configuraciones Modo Transporte

Herramientas Utilizadas para las pruebas.

Apache 2.2.3.

ProFTPD 1.3.0.

Postfix 2.3.8.

Tcpdump 3.9.5.

ipsec-tools 0.6.6.

Configuracion de IPsec con AH en pc2.

# Config de 2001:db8:100::2

## Borra el contenido de SAD y SPD

flush;

spdflush;

# SAs para AH, MD5 claves de 128 bits

add 2001:db8:100::1 2001:db8:100::2 ah 0x200

-m transport

-A hmac-md5 0x7aeaca3f87d060a12f4a4487d5a5c335;

add 2001:db8:100::2 2001:db8:100::1 ah 0x300

-m transport

-A hmac-md5 0xf6ddb555acfd9d77b03ea3843f265325;

## Politicas de seguridad

spdadd 2001:db8:100::1 2001:db8:100::2 any -P in ipsec

ah/transport//require;

spdadd 2001:db8:100::2 2001:db8:100::1 any -P out ipsec

ah/transport//require;

40

41

Configuracion de IPsec con AH y ESP.

# Config de 2001:db8:100::2

## Borra el contenido de SAD y SPD

flush;

spdflush;

# SAs para AH, SHA-1 claves de 160 bits

add 2001:db8:100::1 2001:db8:100::2 ah 0x200 -m transport

-A hmac-sha1 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae6;

add 2001:db8:100::2 2001:db8:100::1 ah 0x300 -m transport

-A hmac-sha1 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5;

# SAs para ESP, 3DES con claves de 192 bits

add 2001:db8:100::1 2001:db8:100::2 esp 0x201 -m transport

-E 3des-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831;

add 2001:db8:100::2 2001:db8:100::1 esp 0x301 -m transport

-E 3des-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df;

## Politicas de seguridad con ESP y AH conjuntamente

spdadd 2001:db8:100::1 2001:db8:100::2 any -P in ipsec

esp/transport//require

ah/transport//require;

spdadd 2001:db8:100::2 2001:db8:100::1 any -P out ipsec

esp/transport//require

ah/transport//require;

Archivo de Configuracion racoon en modo transporte.

path pre_shared_key "/etc/racoon/psk.txt";

remote 2001:db8:100::2 {

exchange_mode main;

proposal {

encryption_algorithm des;

hash_algorithm sha1;

authentication_method pre_shared_key;

dh_group 2;

}

}

sainfo anonymous {

pfs_group 1;

encryption_algorithm 3des;

authentication_algorithm hmac_md5;

compression_algorithm deflate;

}

42

A.2 Capturas Modo Transporte

Captura de trafico ICMP6 sin seguridad.

reading from file trafico_icmp_sin_seguridad.cap, link-type EN10MB (Ethernet)

20:21:00.427752 IP6 2001:db8:100::2 > 2001:db8:100::1:

ICMP6, echo request, seq 1, length 64

20:21:00.427903 IP6 2001:db8:100::1 > 2001:db8:100::2:

ICMP6, echo reply, seq 1, length 64

20:21:01.426760 IP6 2001:db8:100::2 > 2001:db8:100::1:

ICMP6, echo request, seq 2, length 64

20:21:01.426908 IP6 2001:db8:100::1 > 2001:db8:100::2:

ICMP6, echo reply, seq 2, length 64

Captura de trafico ICMP6 con autenticacion e integridad (AH).

reading from file trafico_icmp_con_ah.cap, link-type EN10MB (Ethernet)

20:47:59.150557 IP6 2001:db8:100::2 > 2001:db8:100::1: AH(spi=0x00000300,seq=0x20):

ICMP6, echo request, seq 1, length 64

20:47:59.150746 IP6 2001:db8:100::1 > 2001:db8:100::2: AH(spi=0x00000200,seq=0x1b):

ICMP6, echo reply, seq 1, length 64

20:48:00.150210 IP6 2001:db8:100::2 > 2001:db8:100::1: AH(spi=0x00000300,seq=0x21):

ICMP6, echo request, seq 2, length 64

20:48:00.150395 IP6 2001:db8:100::1 > 2001:db8:100::2: AH(spi=0x00000200,seq=0x1c):

ICMP6, echo reply, seq 2, length 64

Captura de trafico ICMP6 con autenticacion, integridad (AH) y confidencialidad.

reading from file trafico_icmp_con_ah_esp.cap, link-type EN10MB (Ethernet)

19:49:52.349591 IP6 2001:db8:100::2 > 2001:db8:100::1: AH(spi=0x00000300,seq=0x81):

ESP(spi=0x00000301,seq=0x81), length 88

19:49:52.349826 IP6 2001:db8:100::1 > 2001:db8:100::2: AH(spi=0x00000200,seq=0x75):

ESP(spi=0x00000201,seq=0x75), length 88

19:49:53.348762 IP6 2001:db8:100::2 > 2001:db8:100::1: AH(spi=0x00000300,seq=0x82):

ESP(spi=0x00000301,seq=0x82), length 88

19:49:53.348978 IP6 2001:db8:100::1 > 2001:db8:100::2: AH(spi=0x00000200,seq=0x76):

ESP(spi=0x00000201,seq=0x76), length 88

Captura de trafico HTTP sin IPsec.

19:54:30.592300 IP6 2001:db8:100::2.4351 > 2001:db8:100::1.www: S 1810558380:1810558380(0)

win 5760 <mss 1440,sackOK,timestamp 392731 0,nop,wscale 3>

19:54:30.592320 IP6 2001:db8:100::1.www > 2001:db8:100::2.4351: S 385639318:385639318(0)

ack 1810558381 win 5712 <mss 1440,sackOK,timestamp 687439 392731,nop,wscale 7>

Captura de trafico HTTP con autenticacion e integridad (AH).

20:45:22.998726 IP6 2001:db8:100::2 > 2001:db8:100::1: AH(spi=0x00000300,seq=0x9):

4622 > www: [|tcp]

20:45:22.998836 IP6 2001:db8:100::1 > 2001:db8:100::2: AH(spi=0x00000200,seq=0x8):

www > 4622: [|tcp]

43

Captura de trafico HTTP con autenticacion, integridad (AH) y cifrado (ESP).

19:41:55.481737 IP6 2001:db8:100::2 > 2001:db8:100::1: AH(spi=0x00000300,seq=0x43):

ESP(spi=0x00000301,seq=0x43), length 64

19:41:55.481934 IP6 2001:db8:100::1 > 2001:db8:100::2: AH(spi=0x00000200,seq=0x3f):

ESP(spi=0x00000201,seq=0x3f), length 64

Captura de trafico SMTP sin seguridad.

20:18:05.953217 IP6 2001:db8:100::2.3887 > 2001:db8:100::1.smtp: S 3293761812:3293761812(0)

win 5760 <mss 1440,sackOK,timestamp 746569 0,nop,wscale 3>

20:18:05.953323 IP6 2001:db8:100::1.smtp > 2001:db8:100::2.3887: S 1647253497:1647253497(0)

ack 3293761813 win 5712 <mss 1440,sackOK,timestamp 1698 746569,nop,wscale 7>

Captura de trafico SMTP con autenticacion e integridad (AH).

20:46:33.120777 IP6 2001:db8:100::2 > 2001:db8:100::1: AH(spi=0x00000300,seq=0xf):

4961 > smtp: [|tcp]

20:46:33.120917 IP6 2001:db8:100::1 > 2001:db8:100::2: AH(spi=0x00000200,seq=0xd):

smtp > 4961: [|tcp]

Captura de trafico SMTP con autenticacion, integridad (AH) y cifrado (ESP).

19:47:05.318088 IP6 2001:db8:100::2 > 2001:db8:100::1: AH(spi=0x00000300,seq=0x70):

ESP(spi=0x00000301,seq=0x70), length 64

19:47:05.318298 IP6 2001:db8:100::1 > 2001:db8:100::2: AH(spi=0x00000200,seq=0x65):

ESP(spi=0x00000201,seq=0x65), length 64

A.3 Comprobacion de Cifrado ESP

Captura de trafico HTTP sin IPsec.

20:33:26.757226 IP6 2001:db8:100::2.4130 > 2001:db8:100::1.www: P 1:440(439)

ack 1 win 720 <nop,nop,timestamp 976769 231890>

0x0000: 6000 0000 01d7 0640 2001 0db8 0100 0000 ‘......@........

0x0010: 0000 0000 0000 0002 2001 0db8 0100 0000 ................

0x0020: 0000 0000 0000 0001 1022 0050 ffeb f58a .........".P....

0x0030: 9b9b 9d04 8018 02d0 1e1a 0000 0101 080a ................

0x0040: 000e e781 0003 89d2 4745 5420 2f20 4854 ........GET./.HT

0x0050: 5450 2f31 2e31 0d0a 486f 7374 3a20 5b32 TP/1.1..Host:.[2

0x0060: 3030 313a 6462 383a 3130 303a 3a31 5d0d 001:db8:100::1].

0x0070: 0a55 7365 722d 4167 656e 743a 204d 6f7a .User-Agent:.Moz

0x0080: 696c 6c61 2f35 2e30 2028 5831 313b 2055 illa/5.0.(X11;.U

0x0090: 3b20 4c69 6e75 7820 6936 3836 3b20 656e ;.Linux.i686;.en

0x00a0: 2d55 533b 2072 763a 312e 382e 302e 3134 -US;.rv:1.8.0.14

0x00b0: 656f 6c29 2047 6563 6b6f 2f32 3030 3730 eol).Gecko/20070

0x00c0: 3530 3520 2844 6562 6961 6e2d 312e 382e 505.(Debian-1.8.

0x00d0: 302e 3135 7e70 7265 3038 3033 3233 622d 0.15~pre080323b-

0x00e0: 3065 7463 6832 2920 4570 6970 6861 6e79 0etch2).Epiphany

0x00f0: 2f32 2e31 340d 0a41 6363 6570 743a 2074 /2.14..Accept:.t

0x0100: 6578 742f 786d 6c2c 6170 706c 6963 6174 ext/xml,applicat

0x0110: 696f 6e2f 786d 6c2c 6170 706c 6963 6174 ion/xml,applicat

44

0x0120: 696f 6e2f 7868 746d 6c2b 786d 6c2c 7465 ion/xhtml+xml,te

0x0130: 7874 2f68 746d 6c3b 713d 302e 392c 7465 xt/html;q=0.9,te

0x0140: 7874 2f70 6c61 696e 3b71 3d30 2e38 2c69 xt/plain;q=0.8,i

0x0150: 6d61 6765 2f70 6e67 2c2a 2f2a 3b71 3d30 mage/png,*/*;q=0

0x0160: 2e35 0d0a 4163 6365 7074 2d4c 616e 6775 .5..Accept-Langu

0x0170: 6167 653a 2065 732d 636c 2c65 733b 713d age:.es-cl,es;q=

0x0180: 302e 350d 0a41 6363 6570 742d 456e 636f 0.5..Accept-Enco

0x0190: 6469 6e67 3a20 677a 6970 2c64 6566 6c61 ding:.gzip,defla

0x01a0: 7465 0d0a 4163 6365 7074 2d43 6861 7273 te..Accept-Chars

0x01b0: 6574 3a20 4953 4f2d 3838 3539 2d31 2c75 et:.ISO-8859-1,u

0x01c0: 7466 2d38 3b71 3d30 2e37 2c2a 3b71 3d30 tf-8;q=0.7,*;q=0

0x01d0: 2e37 0d0a 4b65 6570 2d41 6c69 7665 3a20 .7..Keep-Alive:.

0x01e0: 3330 300d 0a43 6f6e 6e65 6374 696f 6e3a 300..Connection:

0x01f0: 206b 6565 702d 616c 6976 650d 0a0d 0a .keep-alive....

Captura de trafico HTTP con autenticacion, integridad y cifrado.

20:55:47.258710 IP6 2001:db8:100::2 > 2001:db8:100::1: AH(spi=0x00000300,seq=0x5):

ESP(spi=0x00000301,seq=0x5), length 496

0x0000: 6000 0000 0208 3340 2001 0db8 0100 0000 ‘.....3@........

0x0010: 0000 0000 0000 0002 2001 0db8 0100 0000 ................

0x0020: 0000 0000 0000 0001 3204 0000 0000 0300 ........2.......

0x0030: 0000 0005 ea62 8a82 4577 a01c b7ee 5057 .....b..Ew....PW

0x0040: 0000 0301 0000 0005 b92c c88c 8a4d ca9e .........,...M..

0x0050: 7b52 dcf6 a415 8a91 823c 60ce b77a c959 {R.......<‘..z.Y

0x0060: 5aaa 2b11 4d69 8185 76b0 1dbb 3383 772f Z.+.Mi..v...3.w/

0x0070: 881b b06a e569 c232 cc1f 8657 f760 283b ...j.i.2...W.‘(;

0x0080: f0b6 0c27 84ed 5213 d340 4ebb cd6a bdf2 ...’[email protected]..

0x0090: 196d 6712 a405 70d5 f278 4757 b9e9 86a0 .mg...p..xGW....

0x00a0: b16f 9ae5 2970 1d01 f715 dee3 fc50 6a93 .o..)p.......Pj.

0x00b0: b0b7 fdfc dc8d dd8d f9b1 830b 12bc 835d ...............]

0x00c0: 25b7 54c7 27c4 8586 2b72 7bb5 794d 454e %.T.’...+r{.yMEN

0x00d0: 3ccf d310 0237 c60f acda 63f7 f058 ee11 <....7....c..X..

0x00e0: f328 e37c f3d5 45c1 fba9 d9e9 e8d6 8cf2 .(.|..E.........

0x00f0: a37f b6f1 967c 6a97 5866 c615 2872 d745 .....|j.Xf..(r.E

0x0100: 4be3 5276 4c95 2258 41ac 8f65 8e19 8bb0 K.RvL."XA..e....

0x0110: a0d9 20b4 e79a 26e1 b66a b8d5 b9cf 2d6c ......&..j....-l

0x0120: 79ae e5aa 7ab1 9c9e c807 7cab 849a 09a9 y...z.....|.....

0x0130: c12c 89fe 5a72 bf83 eafe 7c82 0442 06de .,..Zr....|..B..

0x0140: 9b17 b656 ca6d b7a7 6dad 64ae 9852 7622 ...V.m..m.d..Rv"

0x0150: 8264 99ea 7cbe 6aad bbd5 30ec fe2b 28f2 .d..|.j...0..+(.

0x0160: 9ce6 680b 27d8 14bf 391f c4cb b4d7 b81f ..h.’...9.......

0x0170: 3e95 1f18 7a6b 0099 dc38 c041 ea48 389a >...zk...8.A.H8.

0x0180: ea54 9b84 7d85 4d44 cc12 7653 871d 617d .T..}.MD..vS..a}

0x0190: 2aca ee40 5195 ea8d 2f75 a9d3 b31c 3406 *..@Q.../u....4.

0x01a0: 4f5e 2899 cd58 b79a 0fd3 7850 b612 852f O^(..X....xP.../

0x01b0: 5df5 5837 8b5b f21a e773 7e3f b1c1 3185 ].X7.[...s~?..1.

0x01c0: efe1 b036 05aa f3ec 6ec0 df1c 0935 100e ...6....n....5..

0x01d0: c3f8 0ec8 c6e7 2d07 a5f0 ffeb 85f2 3915 ......-.......9.

0x01e0: fc51 e6f9 4ce1 afd7 b02a 6833 4a56 2513 .Q..L....*h3JV%.

0x01f0: 98ca 819c f300 edfb 3d17 d09c 94fc c817 ........=.......

45

0x0200: f5ef f456 635a c497 176f 4cd0 6a61 3913 ...VcZ...oL.ja9.

0x0210: e182 f5bb bff4 3af5 2a34 0d20 b540 2dee ......:.*4...@-.

0x0220: 8303 2627 a5cc c078 4e45 cb54 90d1 763a ..&’...xNE.T..v:

A.4 Intercepcion de Paquetes

Captura de trafico ICMP con autenticacion, integridad y cifrado. De ser una tercerapersona e interceptar paquetes, verıa solamente las direcciones de los enrutadores.

17:21:55.551142 IP6 2001:db8:150::2 > 2001:db8:150::1: AH(spi=0x00000300,seq=0x1): [|ip6]

17:21:56.550034 IP6 2001:db8:150::2 > 2001:db8:150::1: AH(spi=0x00000300,seq=0x2): [|ip6]

A.5 Procesamiento de Paquetes en los Enrutadores

Captura de trafico ICMP con autenticacion e integridad (AH) en el Enrutador 12001:db8:150::1.

17:21:55.551142 IP6 2001:db8:150::2 > 2001:db8:150::1: AH(spi=0x00000300,seq=0x1): [|ip6]

17:21:55.551160 IP6 2001:db8:200::1 > 2001:db8:100::1: ICMP6, echo request, seq 1, length 64

17:21:55.556218 IP6 2001:db8:150::1 > 2001:db8:150::2: AH(spi=0x00000200,seq=0x1): [|ip6]

17:21:56.550034 IP6 2001:db8:150::2 > 2001:db8:150::1: AH(spi=0x00000300,seq=0x2): [|ip6]

17:21:56.550034 IP6 2001:db8:200::1 > 2001:db8:100::1: ICMP6, echo request, seq 2, length 64

17:21:56.550260 IP6 2001:db8:150::1 > 2001:db8:150::2: AH(spi=0x00000200,seq=0x2): [|ip6]

Captura de trafico ICMP con autenticacion, integridad (AH) y confidencialidad (ESP), en elEnrutador 1 2001:db8:150::1.

16:30:16.848881 IP6 2001:db8:150::2 > 2001:db8:150::1: AH(spi=0x00000300,seq=0xb): [|ip6]

16:30:16.848898 IP6 2001:db8:150::2 > 2001:db8:150::1: ESP(spi=0x00000301,seq=0xb), length 128

16:30:16.848900 IP6 2001:db8:200::1 > 2001:db8:100::1: ICMP6, echo request, seq 1, length 64

16:30:16.849041 IP6 2001:db8:150::1 > 2001:db8:150::2: AH(spi=0x00000200,seq=0xb): [|ip6]

16:30:17.850008 IP6 2001:db8:150::2 > 2001:db8:150::1: AH(spi=0x00000300,seq=0xc): [|ip6]

16:30:17.850008 IP6 2001:db8:150::2 > 2001:db8:150::1: ESP(spi=0x00000301,seq=0xc), length 128

16:30:17.850008 IP6 2001:db8:200::1 > 2001:db8:100::1: ICMP6, echo request, seq 2, length 64

16:30:17.850268 IP6 2001:db8:150::1 > 2001:db8:150::2: AH(spi=0x00000200,seq=0xc): [|ip6]

A.6 Configuracion de Racoon Modo Tunel

Archivo de configuracion de racoon en modo tunel en Enrutador 2 2001:db8:150::2.

path pre_shared_key "/etc/racoon/psk.txt";

remote 2001:db8:150::1 {

exchange_mode main;

proposal {

encryption_algorithm des;

hash_algorithm sha1;

authentication_method pre_shared_key;

dh_group 2;

}

}

46

sainfo address 2001:db8:200::/64 any address 2001:db8:100::/64 any {

pfs_group 1;

encryption_algorithm 3des;

authentication_algorithm hmac_md5;

compression_algorithm deflate;

}

A.7 Configuracion de IPsec para Pruebas

Archivo de configuracion de IPsec para las pruebas en modo tunel. Configuracion conESP.

# Config de 2001:db8:150::1 Gateway 1

## Borra el contenido de SAD y SPD

flush;

spdflush;

# SAs para ESP 3des con claves de 192 bits para el cifrado y

# sha-1 con claves de 160 bits

add 2001:db8:150::1 2001:db8:150::2 esp 0x201

-m tunnel

-E 3des-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831

-A hmac-sha1 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae6;

add 2001:db8:150::2 2001:db8:150::1 esp 0x301

-m tunnel

-E 3des-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df

-A hmac-sha1 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5;

## Politicas de Seguridad

spdadd 2001:db8:100::/64 2001:db8:200::/64 any -P out ipsec

esp/tunnel/2001:db8:150::1-2001:db8:150::2/require;

spdadd 2001:db8:200::/64 2001:db8:100::/64 any -P in ipsec

esp/tunnel/2001:db8:150::2-2001:db8:150::1/require;

Configuracion de ESP con AH.

# Config de 2001:db8:150::1 Gateway 1

## Borra el contenido de SAD y SPD

#

flush;

spdflush;

# SAs para AH claves de 160 bits

add 2001:db8:150::1 2001:db8:150::2 ah 0x200

-m tunnel

-A hmac-sha1 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae6;

add 2001:db8:150::2 2001:db8:150::1 ah 0x300

47

-m tunnel

-A hmac-sha1 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5;

# SAs para ESP claves de 192 bits

add 2001:db8:150::1 2001:db8:150::2 esp 0x201

-m tunnel

-E 3des-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831;

add 2001:db8:150::2 2001:db8:150::1 esp 0x301

-m tunnel

-E 3des-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df;

## Politicas de seguridad

spdadd 2001:db8:100::/64 2001:db8:200::/64 any -P out ipsec

esp/tunnel/2001:db8:150::1-2001:db8:150::2/require

ah/tunnel/2001:db8:150::1-2001:db8:150::2/require;

spdadd 2001:db8:200::/64 2001:db8:100::/64 any -P in ipsec

esp/tunnel/2001:db8:150::2-2001:db8:150::1/require

ah/tunnel/2001:db8:150::2-2001:db8:150::1/require;

Configuracion IPsec con AH.

# Config de 2001:db8:150::1 Gateway 1

## Borra el contenido de SAD y SPD

flush;

spdflush;

# SAs para AH claves de 160 bits

add 2001:db8:150::1 2001:db8:150::2 ah 0x200

-m tunnel

-A hmac-sha1 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae6;

add 2001:db8:150::2 2001:db8:150::1 ah 0x300

-m tunnel

-A hmac-sha1 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5;

spdadd 2001:db8:100::/64 2001:db8:200::/64 any -P out ipsec

ah/tunnel/2001:db8:150::1-2001:db8:150::2/require;

spdadd 2001:db8:200::/64 2001:db8:100::/64 any -P in ipsec

ah/tunnel/2001:db8:150::2-2001:db8:150::1/require;

A.8 Configuracion iptables IPv4

Archivo de Configuracion iptables con NAT, en Enrutador 1 10.9.0.1.

#!/bin/sh

## SCRIPT de IPTABLES - ejemplo del manual de iptables

## Ejemplo de script para firewall entre red-local e internet

##

## Pello Xabier Altadill Izura

48

## www.pello.info - [email protected]

echo -n Aplicando Reglas de Firewall...

## FLUSH de reglas

iptables -F

iptables -X

iptables -Z

iptables -t nat -F

## Establecemos politica por defecto

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -t nat -P PREROUTING ACCEPT

iptables -t nat -P POSTROUTING ACCEPT

## Empezamos a filtrar

## Nota: eth0 es el interfaz conectado al router y eth1 a la LAN

# El localhost se deja (por ejemplo conexiones locales a mysql)

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -s 10.9.0.0/24 -j ACCEPT

# Al firewall tenemos acceso desde la red local

iptables -A INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT

# Ahora hacemos enmascaramiento de la red local

# y activamos el BIT DE FORWARDING (imprescindible!!!!!)

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE

# Con esto permitimos hacer forward de paquetes en el firewall, o sea

# que otras m~A¡quinas puedan salir a traves del firewall.

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

iptables -A INPUT -p tcp --dport 3690 -j ACCEPT

iptables -A INPUT -p udp --dport 3690 -j ACCEPT

#iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 1:1024 -j DROP

#iptables -A INPUT -s 0.0.0.0/0 -p udp --dport 1:1024 -j DROP

49

A.9 Script para las Pruebas

El script empleado para realizar las pruebas. Se ejecuto con cada configuracion deIPsec.

#!/bin/sh

echo ’50MB’

for n in 10 9 8 7 6 5 4 3 2 1; do

time php5 descarga_ftp.php 50MB.tar.bz2

sleep 2

rm 50MB.tar.bz2

echo ’Borrado 50MB satisfactorio’

done

echo ’95MB’

for n in 10 9 8 7 6 5 4 3 2 1; do

time php5 descarga_ftp.php 95MB.zip

sleep 2

rm 95MB.zip

echo ’Borrado 95MB satisfactoriamente’

done

echo ’145MB’

for n in 10 9 8 7 6 5 4 3 2 1; do

time php5 descarga_ftp.php 145MB.tar.gz

sleep 2

rm 145MB.tar.gz

echo ’Borrado 145MB satisfactoriamente’

done

echo ’195MB’

for n in 10 9 8 7 6 5 4 3 2 1; do

time php5 descarga_ftp.php 195MB.tar.gz

sleep 2

rm 195MB.tar.gz

echo ’Borrado 195MB satisfactoriamente’

done

ping6 -c 100 -s 56 -q 2001:db8:100::1

sleep 2

ping6 -c 100 -s 120 -q 2001:db8:100::1

sleep 2

ping6 -c 100 -s 248 -q 2001:db8:100::1

sleep 2

ping6 -c 100 -s 504 -q 2001:db8:100::1

sleep 2

ping6 -c 100 -s 1016 -q 2001:db8:100::1

sleep 2