Seguridad en IPv6 con IPsec

Anuncio
UNIVERSIDAD DE MAGALLANES
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA
EN COMPUTACIÓN
Seguridad en IPv6
con IPsec
Javier Enrique Vivar Soto
2008
La presente Memoria de Titulación ha sido aprobada con
la siguiente calificación:
Javier Enrique Vivar Soto
Memoria
Examen de Tı́tulo
Nota Final
:
:
:
Dr. Pedro Alberti V.
Director Departamento
De Ingenierı́a En Computación
06 de Agosto del 2008
UNIVERSIDAD DE MAGALLANES
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA
EN COMPUTACIÓN
Seguridad en IPv6
con IPsec
“Trabajo de titulación presentado en
conformidad a los requisitos para obtener el
tı́tulo de Ingeniero de Ejec. en Computación e Inf.”.
Profesor Guı́a: José Canumán 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, provocó la
aparición de una nueva versión del protocolo IP llamada IPv6. Integrado a IPv6 viene una
solución 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 investigó de manera teórica y práctica, relacionando ambas para explicar
de la mejor forma su funcionamiento.
Índice general
Resumen
I. Introducción
1.1. Relevancia y Aportes del Proyecto de tı́tulo . . . . . . . . . . . . . . . . . .
1.2. Organización del proyecto de tı́tulo . . . . . . . . . . . . . . . . . . . . . . .
1
2
3
II. Marco Teórico
4
2.1. IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1. Cabeceras de Extensión . . . . . . . . . . . . . . . . . . . . . . . . .
6
8
2.1.2. Direccionamiento en IPv6 . . . . . . . . . . . . . . . . . . . . . . . .
2.1.3. Compatibilidad y Actualidad . . . . . . . . . . . . . . . . . . . . . .
2.2. IPsec y Seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
11
12
2.2.1. Algoritmos de Hash o Resumen . . . . . . . . . . . . . . . . . . . . .
2.2.2. Algoritmos de Cifrado . . . . . . . . . . . . . . . . . . . . . . . . . .
13
13
2.2.3. Asociaciones y Polı́ticas de Seguridad . . . . . . . . . . . . . . . . . .
2.2.4. El Protocolo IKE (Intercambio de claves sobre Internet) . . . . . . .
2.2.5. Protocolos AH y ESP . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
14
15
III.Desarrollo
17
3.1. Cabecera de Autenticación (AH) . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Cifrado de Seguridad de Datos (ESP) . . . . . . . . . . . . . . . . . . . . . .
3.3. Aspectos prácticos en el uso de IPsec . . . . . . . . . . . . . . . . . . . . . .
IV.Pruebas y Resultados
17
20
23
31
i
ii
V. Conclusiones
5.1. Trabajos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
38
Bibliografı́a
39
Apéndice A
40
Índice de figuras
2.1. Esquema de Capas TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.2. Cabecera IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3. Estructura de Cabeceras de Extensión . . . . . . . . . . . . . . . . . . . . .
2.4. Formato Direcciones IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
8
11
2.5. Funcionamiento de IKE . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
3.1. Cabecera de Autenticación . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
3.2. Funcionamiento de AH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3. Datagrama IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4. Datagrama después de aplicar AH modo transporte . . . . . . . . . . . . . .
18
19
19
3.5. Datagrama después de aplicar AH modo túnel . . . . . . . . . . . . . . . . .
3.6. Cabecera de ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
20
3.7. Funcionamiento de ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.8. Datagrama IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.9. Datagrama IPv6 luego de aplicar ESP modo transporte . . . . . . . . . . . .
21
22
22
3.10. Datagrama IPv6 luego de aplicar ESP modo túnel . . . . . . . . . . . . . . .
3.11. Conexión en Modo Transporte . . . . . . . . . . . . . . . . . . . . . . . . . .
23
24
3.12. Configuración Conexión en Modo Transporte . . . . . . . . . . . . . . . . . .
3.13. Conexión en Modo Túnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.14. Configuración Conexión en Modo Túnel . . . . . . . . . . . . . . . . . . . .
25
28
30
4.1. Configuración de Red IPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2. IPv6 v/s IPv4, sin IPsec . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
34
4.3. Opciones de Seguridad IPsec . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4. Comparación entre Alternativas IPsec y el no emplear IPsec . . . . . . . . .
35
36
iii
Índice de cuadros
2.1. Prefijos Reservados para cada Tipo de Dirección . . . . . . . . . . . . . . . .
10
3.1. Tabla con la Configuración de la Red . . . . . . . . . . . . . . . . . . . . . .
29
iv
Capı́tulo I
Introducción
En la actualidad, Internet es uno de los medios de comunicación más importantes y
extendidos en el mundo. Sin embargo, la seguridad siempre ha sido su punto débil, y con
el pasar de los años han aparecido muchos parches y extensiones con el objetivo de reforzarla.
Una solución integral esta por llegar, junto con un cambio sobre Internet. De la mano de la
nueva versión de IP (versión 6), básicamente 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: autenticación
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 versión de IP no significa que sea
usada por defecto, por lo cual en el presente proyecto se profundizará en el funcionamiento
de IPsec sobre IP versión 6.
1
2
1.1.
Relevancia y Aportes del Proyecto de tı́tulo
Frente a la transición a sufrir, en base a la actualización del Protocolo IP, surge la
necesidad de tener un referente acerca de las novedades y ventajas que traerá consigo. Es
ası́ que el trabajo se centra en el estudio y análisis de la seguridad otorgada por la nueva
versión, IPsec. Se debe mencionar también, que IPsec es soportado por la versión actual de
IP, pero posee dos puntos en contra que le quitan interés, el ser soportado como extensión
(no estar integrado) y el que la versión 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 versión 6
empleando el protocolo IPsec. La investigación es de caracter téorico y práctico, para lo cual
se configurarán redes IPv6 con IPsec y se analizará su funcionamiento.
Los aportes más importantes de este proyecto son:
Un análisis teórico y práctico del funcionamiento del protocolo de Seguridad
IPsec, destacando puntos importantı́simos y recomendaciones para la configuración
e implementación de redes seguras IPsec.
Especificamente un estudio práctico 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.
Organización del proyecto de tı́tulo
El proyecto se divide en cuatro partes:
El capı́tulo II, expone la teorı́a requerida para una buena comprensión del desarrollo
del proyecto, introduciendo en IPv6 y explicando conceptos importantes de IPsec.
El capı́tulo III abarca la investigación propiamente tal, explicando los pilares de IPsec
en forma teórica, ası́ como las configuraciones realizadas y su análisis.
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 Teórico
En los años 60, sólo era posible conectar computadores entre modelos de una misma
marca. La incompatibilidad entre los fabricantes era casi total e impedı́a la expansión de la
Informática. En los años 70 ya existı́a comunicación 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 definió 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 más
importantes: TCP (Protocolo de Control de Transmisión) 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 área extensa del
departamento de defensa. La familia de protocolos TCP/IP puede ser definida como una
combinación 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 información a través de la red a la que está conectada.
La Capa de Red es la encargada de mover los paquetes a través de las diferentes
redes para llegar a su destino. Dentro de esta capa IP es el protocolo más 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 Aplicación 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 conexión, que se encarga del transporte de los datos por la Red. Define
la identificación 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 conexión. Utiliza los servicios del Protocolo
IP para mantener comunicación con el destino y ası́ poder controlar la correcta recepción
de los datos.
6
La pila TCP/IP posee un diseño muy flexible, permitiendole añadir 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 configuración 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 diseñado, otorgan
cifrado e integridad para que dos aplicaciones remotas se comuniquen de manera segura.
En la década de los 90, Internet comienza a tener un gran crecimiento, con ello se prevé el
agotamiento de direcciones IP. Entonces aparecen herramientas para evitar dicha situación,
ejemplo de ello es la extendida NAT, que permite a un grupo de computadores conectarse
a Internet usando solamente una dirección IP pública. Esta solución a largo plazo paso a ser
un parche, por lo cual se comenzó a trabajar en lo que serı́a una nueva versión del protocolo
IP, la cual además de solucionar el problema de agotamiento de direcciones, mejorarı́a en
diversos aspectos a la versión 4 y llevarı́a por nombre IPv6 (IP versión 6).
2.1.
IPv6
IPv6 además de satisfacer las necesidades de direccionamiento, trae consigo una serie de
mejoras sobre IPv4, basadas en los años de experiencia con este último. Se han eliminado
campos redundantes y obsoletos, ası́ como las opciones, creando una cabecera mucho más
simple.
Caracterı́sticas importantes:
Direccionamiento de 128 bits: Espacio de direcciones suficientes para todo el
planeta. Con esto se podrán minimizar las tablas de enrutamiento y permitirá conectar
prácticamente todos los computadores del mundo directamente a Internet, con un
simple método de agregación.
Longitud Fija de Cabecera: Optimiza el procesamiento de los paquetes, ası́ como
su enrutamiento.
Cabeceras de Extensión: Esta estructura mantiene las funcionalidades de los campos
de opciones de IPv4, como enrutamiento del paquete, fragmentación, además de
entregar nuevos servicios de seguridad. Más adelante se explica con mayor profundidad.
7
Figura 2.2: Cabecera IPv6
De la Figura 2.2:
Versión: Se mantiene en la misma posición, 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.
Tamaño de los Datos: El tamaño de los datos transportados, abarca los datos después
de la cabecera IP, incluyendo las cabeceras de extensión.
Siguiente Cabecera: Puede ser una cabecera de la capa de transporte como TCP o
UDP, o una cabecera de extensión (más adelante se explican).
Lı́mite de Saltos: Define el número máximo de enrutadores a atravesar por un
datagrama, cada enrutador lo decrementa en uno.
8
2.1.1.
Cabeceras de Extensión
IPv6 introduce el concepto de Cabeceras de Extensión con el fin de agregarle opciones
a los datagramas IP. Actualmente existen pocas cabeceras de extensión, sin embargo, se
podrı́an definir más en el futuro. Estas cabeceras se ubican entre la cabecera IP y la cabecera
TCP (Ver Figura 2.3), enlazándose entre sı́ con el campo Siguiente Cabecera. A continuación,
Figura 2.3: Estructura de Cabeceras de Extensión
se nombran las cabeceras de extensión existentes, con una breve descripción de su propósito.
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 información adicional procesada
por nodos intermedios.
Cabecera de Opciones de Destino: Contiene opciones procesadas por el nodo
destinatario.
Cabecera de Enrutamiento: Lista uno o más nodos intermediarios, que debe visitar el
paquete en el camino a su destino.
Cabecera de Fragmentación: Se usa para dividir paquetes demasiado grandes que no
pueden ser transmitidos en algunas redes. A diferencia de IPv4, la fragmentación 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 Autenticación (AH): Proporciona integridad y autenticación al paquete.
Más adelante se tratará con profundidad.
Cabecera de Cifrado de Seguridad de Datos (ESP): Proporciona confidencialidad a los
paquetes. Más adelante se tratará 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 dirección
unicast, se entrega a la interfaz identificada por esa dirección.
Anycast: Un identificador para un grupo de interfaces (diferentes nodos). Un paquete
enviado a una dirección anycast, se entrega a una de las interfaces identificada por esa
dirección, generalmente la más cercana.
Multicast: Un identificador para un grupo de interfaces. Un paquete enviado a una
dirección multicast, se entrega a todas las interfaces identificadas por esa dirección.
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 más
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
0:0:0:0:0:0:0:1
FF01:0:0:0:0:0:0:101
0:0:0:0:0:0:0:0
10
Su representación comprimida:
2001:DB8::8:800:200C:417A
::1
FF01::101
::
Las direcciones IPv6 definen la red a la que pertenecen a través del termino prefijo. Al
referirse a una dirección IPv6 se debe especificar el largo de su prefijo, por lo cual se utiliza
la siguiente notación:
Dirección-IPv6/Largo-Prefijo
donde:
Dirección IPv6: Una dirección válida, como las descritas anteriormente.
Largo del Prefijo: Es un número decimal, especificando cuantos de los bits más a la
izquierda de la dirección comprenden el prefijo.
Ejemplo de Notación:
2001:0DB8:0:CD30:123:4567:89AB:CDEF/60
Los tipos de direcciones se identifican por los bits de mayor orden:
Tipo de Dirección
No especificada
Loopback
Multicast
Unicast de Enlace Local
Unicast de Enlace Global
Prefijo Binario
00...0 (128 bits)
00...1 (128 bits)
11111111
1111111010
Cualquier otro valor
Notación IPv6
::/128
::1/128
FF00::/8
FE80::/10
Cuadro 2.1: Prefijos Reservados para cada Tipo de Dirección
Del Cuadro 2.1:
No especificada: Indica que una interfaz aún no tiene definida una dirección.
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 propósitos de comunicarse con la red local para
compartir información.
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 más
direccionamiento IPv4. El plan de Transición de IPv4 a IPv6 consiste en la implantación 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 implementación
de TCP/IP que es capaz de manejar IPv4 e IPv6. También los túneles 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 decisión de los
ISP (Proveedores de Servicios de Internet), los cuales aún cuentan con direcciones IPv4
12
para ofrecer sus servicios. Se estima el agotamiento total de IPv4 en 3 o 4 años más,
por lo cual diversos organismos deberán anticiparse a este evento y hacer un cambio
transparente. Como ejemplo, recientemente la Comisión Europea comunicó su plan de
despliegue IPv6, y llamó a una Migración Masiva para el año 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 información cientı́fica, por lo cual,
su diseño no contempló seguridad. Como Internet sufrió un gran crecimiento (mencionado
anteriormente), la cantidad de personas y empresas conectadas a Internet aumentó, y con
ello comenzó a evidenciarse su inseguridad, a través 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 información en tránsito, pero no la altera, lo que conlleva a dificultar
su detección. 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, básicamente en todas las capas de la Pila TCP/IP, pero no eran
más que extensiones o parches, entonces se decidió añadir seguridad integrada en TCP/IP, la
interrogante de entonces, ¿Cuál capa era la más adecuada para proporcionar la seguridad?,
entonces la Capa de Red IP fue la elegida, aprovechando la aparición de IPv6.
IPsec es un estándar 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 extensión mientras en IPv6 tiene soporte
integrado y obligatorio (según las especificaciones de IPv6, cabecera de extensión). 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 aplicación.
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 autentificación y verificar la integridad. Un
algoritmo de Resumen entrega una secuencia de bits (pequeña 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 tamaño fijo. Sin embargo, generalmente los mensajes
colisionantes pierden el sentido, no tienen un aspecto válido. De entre los algoritmos de
resumen más 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 más seguro
es SHA-1.
2.2.2.
Algoritmos de Cifrado
Para cifrar la información IPsec emplea algoritmos de cifrado simétrico, que ocupan una
clave además del mensaje. La clave se usa para cifrar y descifrar el mensaje, mientras más
grande más segura. Estos algoritmos dividen el mensaje en bloques de tamaño fijo, y aplican
sobre cada uno de ellos operaciones de confusión (sustituciones) y difusión (transposiciones).
La confusión tiene como objetivo ocultar la relación existente entre el mensaje claro, el
mensaje cifrado y la clave. La difusión intenta repartir la influencia de cada bit del mensaje
14
original lo más 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 rompió su cifrado en menos
de dos dı́as. 3DES una mejora de DES, aún no presenta debilidades prácticas, sólo teóricas.
Mientras tanto AES es el nuevo estándar de cifrado, y es uno de los más seguros actualmente.
DES, 3DES forman parte de las especificaciones de IPsec.
2.2.3.
Asociaciones y Polı́ticas de Seguridad
Una Asociación de Seguridad (SA) corresponde a un grupo de parámetros como
algoritmos de cifrado, hash, clave, etc, que se emplearan para establecer una comunicación
segura. También forman parte de la SA las direcciones de origen y destino, ası́ como los
protocolos AH o ESP, el modo de uso (túnel o transporte) y el ı́ndice para referenciar la SA
llamado SPI. Estos parámetros serán mencionados posteriormente. IPsec define una Base de
Datos donde se almacenan las Asociaciones, llamada SAD.
Una Polı́tica de Seguridad define el tráfico 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 comunicación cifrada y autenticada a dos nodos.
La primera fase, establece los algoritmos de cifrados, claves y métodos de autenticación a
utilizar para la propia conexión. La segunda fase, es la negociación basada en el canal seguro
creado en la primera fase. IKE no se limita a IPsec, es un protocolo estándar de gestión de
claves.
La idea de IKE con IPsec es negociar una SA común a ambos hosts remotos. Un
host ofrecerá sus algoritmos de cifrado y resumen, con lo cual el receptor, enviará una
respuesta informando qué algoritmos acepta. A partir de los algoritmos comunes se crearán
todas las SAs posibles, automatizando la creación de claves para cada una. Luego se escoge
15
la SA para la comunicación IPsec.
Figura 2.5: Funcionamiento de IKE
La autentificación para negociar a través de IKE se puede hacer con claves previamente
compartidas (de largo variable) o certificados digitales X509v3. Para establecer la SA entre
dos hosts es útil cualquiera de las dos opciones, en cambio, establecer una SA para una
comunicación multicast (muchos hosts) son necesarios los certificados.
2.2.5.
Protocolos AH y ESP
Ambos protocolos son cabeceras de extensión en IPv6 y son los encargados directos de
proporcionar la seguridad a la Capa de Red IP.
La Cabecera de Autenticación (AH), garantiza la integridad y autenticación del tráfico
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 visualización de los datos, a través de su cifrado. ESP otorga confidencialidad,
16
adicionalmente ofrece servicios de integridad y autenticación, incorporando un mecanismo
similar al de AH. Los tres servicios pueden ser utilizados en conjunto para proporcionar una
solución de seguridad robusta. Emplea algoritmos de cifrado y resumen.
Ambos protocolos poseen dos modos de uso, modo transporte y túnel. El modo
transporte sirve para establecer una comunicación segura entre dos hosts, mientras que el
modo túnel, establece una comunicación segura entre dos redes, a través de la implementación
de IPsec en sus enrutadores.
Capı́tulo III
Desarrollo
3.1.
Cabecera de Autenticación (AH)
AH es una cabecera de extensión en IPv6, encargada de entregar integridad y
autenticación a los datos.
Figura 3.1: Cabecera de Autenticación
Siguiente Cabecera: Indica la siguiente cabecera a procesar, puede ser otra cabecera de
extensión IPv6 o una cabecera TCP o UDP.
Tamaño de los Datos: Especifica la longitud de los datos.
SPI: Permite la ubicación de la Asociación de Seguridad (SA) en la SAD. En este caso
algoritmos de autenticación, claves, etc.
17
18
Número de Secuencia: Identifica cada paquete y garantiza un orden, además 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 (Código Resumido de
Autenticación de Mensaje). HMAC consiste en aplicar una función de resumen (MD5 o
SHA-1), a una entrada de datos (Cabeceras IP, de extensión y datos) y una clave, generando
una cadena de bits (ICV). Las claves y funciones de resumen, son definidas en la Asociación
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 obtendrá el mismo ICV, descartándose 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 tránsito 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 extensión, como mutables e
inmutables, y autenticará sólo los inmutables y los mutables los tratará como cero. Por esta
razón 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 continuación se
verá como queda dicho datagrama al aplicar AH en modo transporte y modo túnel. También
se observará el alcance de sus servicios.
Figura 3.4: Datagrama después de aplicar AH modo transporte
En el modo transporte, la cabecera de autenticación se coloca entre las cabeceras de extensión
y la cabecera TCP. Los servicios son entregados solamente a los campos inmutables, por lo
cual se debe procesar cuáles son los campos mutables dentro de las cabeceras IPv6 y de
extensión.
En el modo túnel se crea una nueva cabecera IPv6 y una copia de las cabeceras de extensión,
que se antepone a la cabecera AH. En este caso, las cabecera IPv6 y de extensión originales
recibirán los servicios de AH por completo. La nueva cabecera IPv6, contendrá las direcciones
de los encaminadores que implementen IPsec.
20
Figura 3.5: Datagrama después de aplicar AH modo túnel
3.2.
Cifrado de Seguridad de Datos (ESP)
ESP es una alternativa de seguridad robusta. Ofrece confidencialidad, además 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 visualización de su
contenido al emisor y el receptor.
Figura 3.6: Cabecera de ESP
SPI: Permite la ubicación de la Asociación de Seguridad (SA) en la SAD. En este caso
algoritmos de cifrado y autenticación, claves, etc.
21
Número de Secuencia: Identifica cada paquete y garantiza un orden, además 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.
Tamaño 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 serán procesados por un algoritmo de cifrado simétrico (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 están definidos en la Asociación de Seguridad
ocupada para la comunicación. El funcionamiento de la autenticación 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 verán los cambios al aplicar ESP en modo
transporte y modo túnel.
Figura 3.8: Datagrama IPv6
Figura 3.9: Datagrama IPv6 luego de aplicar ESP modo transporte
En comparación con AH los servicios de integridad y autenticación de datos no tienen
tanto alcance, ya que no cubren las cabeceras IPv6 y de extensión. ESP ICV, es el único
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 túnel
En modo túnel también se crean las copias de cabeceras, y los servicios alcanzan a
las cabeceras originales solamente.
3.3.
Aspectos prácticos 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 decidió usar Debian 4.0 (Kernel 2.6.18) por simplicidad con la instalación y obtención de
los paquetes, ası́ como para facilitar las pruebas, generando tráfico 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 recomendación de compilar el Kernel para utilizar IPsec, para
ası́ evitar problemas. La idea es integrar los módulos requeridos al Kernel, y no cargarlos en
tiempo ejecución. Al principio se siguió este procedimiento, pero más tarde se comprobó no
existir mucha diferencia entre usar el Kernel compilado y el Kernel genérico, adémas de no
generar problemas. El soporte de los algoritmos de cifrado y de resumen se encuentra en el
Kernel. La versión 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
Apéndice 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 través de claves previamente compartidas. Para
lograr una configuración automática de las SAs, es necesario utilizar una implementación
del protocolo IKE, como racoon, freeswan y openswan. Por la existencia de abundante
documentación, se seleccionó racoon como alternativa.
Una vez definidas las herramientas, se armó una configuración básica con el siguiente
esquema:
Figura 3.11: Conexión en Modo Transporte
La comunicación entre dos hosts en modo transporte, con sólo AH, sólo ESP y conjuntamente
ambos. En modo transporte cada host implementa IPsec. La idea, era comprobar la aplicación
de IPsec sobre el tráfico 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 análisis
de red muy potente y ampliamente extendida.
Era necesario generar tráfico, quizás la manera más 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 tráfico y no solo ICMP6 (ping6), se optó por montar un servidor
web y un servidor de correo. Con esto, se comprobarı́a su aplicación sobre tráfico HTTP,
SMTP e ICMP.
El servidor web Apache2 viene integrado en Debian 4 y soporta IPv6 en su configuración
por defecto.
25
El servidor de correo Postfix incluye soporte IPv6 con una pequeña modificación en su
archivo de configuración.
inet_protocols = ipv6
La configuración de la Red:
Figura 3.12: Configuración Conexión 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 sintáxis:
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 dirección origen del paquete (puede ser un
host o una red) y dirección del destinatario.
El protocolo a usar, AH o ESP.
El SPI (ı́ndice de Parámetros de Seguridad).
El modo, con el parámetro -m, puede ser túnel 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 última 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 básica de las Asociaciones de Seguridad, y deben ser iguales en ambos
extremos de la comunicación.
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 dirección
si se desea se puede especificar algún 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 protegerá todo el tráfico.
-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, descartará el paquete.
El protocolo AH o ESP.
El modo de uso, transporte o túnel.
En el caso de ser modo túnel, se deben indicar las direcciones de los enrutadores que
implementan IPsec.
Finalmente use o require. use, significa que de haber seguridad asociada al tráfico se
aplica, de no haber simplemente se comunican sin seguridad. Mientras tanto, require
significa que sólo se comunican si hay seguridad asociada al tráfico.
Para escribir en la SAD y SPD, ejecutar setkey -f /etc/ipsec-tools.conf. Los archivos
de configuración de las SAs y SPs se pueden ver en Apéndice 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 útil, debido a que generalmente no se necesita proteger
todo el tráfico IP. Se podrı́a brindar seguridad solamente al protocolo TCP por ejemplo, o
más especificamente al puerto 21 (FTP).
La generación del tráfico se hizo con eventos como cargar una página 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 tráfico 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 esté usando. Cuando estén presentes ambos, se ven las tres
cabeceras en el orden IPv6, AH, ESP. Ver detalles en Apéndice A.2.
Para la comprobación del correcto funcionamiento de IPsec, primeramente se monitoreó sobre
distinto tráfico sin IPsec. Una vez hecho esto, se procedió a monitorear el tráfico 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 Apéndice A.3.
La configuración manual de IPsec, debe llevarse a cabo en ambos extremos de la
comunicación, estableciendo las mismas Asociaciones de Seguridad. Obviamente esto puede
parecer bastante engorroso, sobre todo si se quiere tener muchos canales de comunicación
segura, por lo cual el Protocolo IKE nos otorga la automatización de este proceso.
Racoon es una implementación de IKE, y nos permite de manera sencilla manejar las
Asociaciones de Seguridad. Requiere de una autentificación para comenzar la negociación,
se optó por el método 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 información, los hosts remotos crearán sus Asociaciones
de Seguridad y decidirán cual aplicar.
Como ejemplo, si un host, dispone de DES, 3DES, SHA1 y MD5, este tendrá 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 configuración en Apéndice A.1). Las
Polı́ticas de Seguridad deberán ser cargadas manualmente usando el comando setkey y el
archivo /etc/ipsec-tools.conf mencionado antes.
Racoon soporta autentificación mediante certificados digitales, lo cual resulta mucho
más escalable para comunicación entre más de dos hosts. Esta funcionalidad no fué probada,
ya que solamente se montaron redes pequeñas. Con estas herramientas, teniendo en cuenta
la alternativa entre una configuación manual o automática de las SAs, se puede establecer
una conexión segura entre dos nodos.
Es costoso configurar cada equipo de una red con IPsec, por lo cual, el modo túnel
es una muy buena opción para los administradores de grandes redes. La idea del modo túnel
es conectar dos redes remotas de forma segura, esto a través de la implementación de IPsec
en sus enrutadores, el esquema se muestra a continuación.
Figura 3.13: Conexión en Modo Túnel
A todo el tráfico saliente de LAN 1 en dirección 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.
Además de esto, los paquetes son modificados, y las direcciones IP ahora corresponderán
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 además de cifrar
y autenticar los datos, es conocido como VPN (Red Privada Virtual), un canal de
comunicación seguro sobre un medio de comunicación inseguro (Internet).
Para poner a prueba el modo túnel, 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 continuación se muestra la configuración de los equipos:
Como se aprecia en la tabla se tienen tres redes, cada una definida a través de su prefijo de
Host
pc1
pc2
gw1
gw1
gw2
gw2
Dirección IPv6
2001:db8:100::1
2001:db8:200::1
2001:db8:100::100
2001:db8:150::1
2001:db8:200::100
2001:db8:150::2
Prefijo de Red
2001:db8:100::/64
2001:db8:200::/64
2001:db8:100::/64
2001:db8:150::/64
2001:db8:200::/64
2001:db8:150::/64
Interfaz de Red
eth0
eth0
eth0
eth1
eth0
eth1
Cuadro 3.1: Tabla con la Configuración de la Red
red. La arquitectura de red, fue Ethernet 10 Base T. En este escenario, el pc1 también
será el servidor web y de correo. Con el esquema de la figura 3.14 se realizaron las pruebas
de comprobación.
Con el comando tpcdump se comprobó el cifrado de los datos, y la modificación 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 Apéndice A.4.
También se observó como son tratados los paquetes al llegar a los enrutadores, sacándole
las cabeceras hasta dejarlo con la cabecera IP original. Como ejemplo, si se emplea AH con
ESP, se procesará primero la cabecera AH realizando la comprobación de la autenticación
e integridad y se extraerá. Le seguirá el procesamiento de la cabecera ESP, descifrando los
datos y finalmente se llega a la cabecera IP original. Ver Apéndice A.5.
Racoon también fue empleado en modo túnel. Para ver la configuración Apéndice A.6.
30
Figura 3.14: Configuración Conexión en Modo Túnel
Con el comando tcpdump se puede ver el contenido del tráfico en los enrutadores, o
sea es una herramienta potente que fácilmente 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 implantación 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 análisis de funcionamiento de IPsec, se pudo evidenciar el trabajo que
realiza sobre los datos transmitidos, cambiar cabeceras, procesar los algoritmos, analizar
a qué tráfico aplicar, etc. Por lo cual se asume un aumento en el tiempo de transmisión,
debido al procesamiento requerido. En el modo túnel toma una importancia mayor, ya que
un enrutador deberá procesar todo el tráfico saliente y entrante de su LAN. En base a esta
suposición 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 transferirán archivos de tamaño creciente, para ası́ poder
ver los efectos en el tiempo de la transmisión de datos.
Se utilizará la configuración en modo túnel montada con anterioridad, añadiéndole 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 habrá tráfico
que provoque congestión, aunque de todas maneras se comprobó monitoreando con
tcpdump. En base a esto se definió un total de 10 transferencias para cada archivo de
prueba, obteniendo finalmente un promedio.
Los tamaños 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 descartó ESP con sólo cifrado, por no ser una opción muy segura, como se mencionó antes
queda expuesto a ataques activos. Los algoritmos 3DES y SHA-1 fueron seleccionados por ser
de los más seguros actualmente. Los archivos de configuración se encuentran en Apéndice A.7.
Para crear otro escenario de prueba, se usó el comando ping6, que permite cambiar
el tamaño de los paquetes con el parámetro -s. Ası́ se podrá estudiar tiempos mucho más
pequeños.
A partir de esta opción, se definieron los siguientes tamaños de paquetes.
64 bytes
128 bytes
256 bytes
512 bytes
1024 bytes
33
Por último se estudiará la diferencia de tiempo de transmisión de datos usando
IPv6 e IPv4. En la configuración de la red IPv4 se ocupó 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 Apéndice A.8.
Figura 4.1: Configuración de Red IPv4
La ejecución de las pruebas se hizo con un script, que se puede ver en Apéndice A.9.
A continuación el gráfico obtenido con las transferencias FTP y tráfico ICMP6.
34
Transferencias FTP
300
IPv4
IPv6
Tiempos (segundos)
250
200
150
100
50
0
0
50
100
Tamaño de Datos (MB)
150
200
Paquetes ICMP con Ping
3.5
IPv4
IPv6
Tiempos (milisegundos)
3
2.5
2
1.5
1
0.5
100
200
300
400
500
600
700
Tamaño de Datos (bytes)
800
900
1000
Figura 4.2: IPv6 v/s IPv4, sin IPsec
Ambos tienen un comportamiento lineal muy similar, la diferencia de tiempo es totalmente
mı́nima. Quizás sin el uso de NAT IPv4 tendrı́a un mejor rendimiento, pero hoy en dı́a está tan
extendido, que no serı́a muy representativo no considerarlo en el esquema.
35
A continuación el comportamiento al aplicar de IPsec con las Asociaciones de Seguridad
definidas anteriormente.
Transferencias FTP
300
AH−ESP
ESP
AH
Tiempo (segundos)
250
200
150
100
50
0
0
50
100
Tamaño de Datos (MB)
150
200
Paquetes ICMP con Ping
3.5
AH−ESP
ESP
AH
Tiempo (milisegundos)
3
2.5
2
1.5
1
0.5
100
200
300
400
500
600
700
Tamaño de Datos (bytes)
800
900
1000
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 opción ESP con AH,
recordando que el alcance de sus servicios de autenticidad e integridad es mayor al de ESP.
36
Transferencias FTP
300
AH−ESP
AH
Sin IPsec
Tiempo (segundos)
250
200
150
100
50
0
0
50
100
Tamaño de Datos (MB)
150
200
Paquetes ICMP con Ping
3.5
AH−ESP
AH
Sin IPsec
Tiempo (milisegundos)
3
2.5
2
1.5
1
0.5
100
200
300
400
500
600
700
Tamaño de Datos (bytes)
800
900
1000
Figura 4.4: Comparación 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 más grande los enrutadores podrı́an
provocar una diferencia de tiempo mucho mayor, dependiendo del tráfico concurrente que
reciban y que deban procesar.
Capı́tulo V
Conclusiones
IPsec es una solución de seguridad muy potente y flexible, además de ser totalmente
transparente al usuario. Dependiendo de su configuración se puede proteger todo el tráfico
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 irán
apareciendo otros más potentes, por lo cual, se tiene una estructura escalable a tráves de los
años.
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 transmisión 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 tamaño de los datos.
Sin embargo, si se tuviera una red demasiado grande en modo túnel, el enrutador que
implementa IPsec, podrı́a verse sobrecargado si no es una máquina de procesamiento
potente. En base a esto, se aconseja poner énfasis en las caracterı́sticas del enrutador que
implemente IPsec, para que sea capaz de procesar gran cantidad de tráfico concurrente y no
aumentar el tiempo de transmisión.
De las opciones de seguridad proporcionadas por IPsec, combinar ESP con AH resulta ser
la más aconsejable aunque requiere de mayor procesamiento. El modo túnel con ambos
protocolos permite establecer una VPN (Red Privada Virtual) sobre Internet. En general,
IPsec es altamente configurable según las necesidades de la red en cuestión.
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 máquina que
implemente IPsec, para evitar la intercepción o visualización 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 años, IPsec se irá convirtiendo en la solución de seguridad
estándar en Internet.
5.1.
Trabajos Futuros
A continuación 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
Edición, Versión 0.7.0.
[11]
Pello Xabier Altadill. IPTABLES Manual Práctico.
39
Apéndice A
Este apéndice contiene los archivos de configuración 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.
Configuración 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
Configuración 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 Configuración 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 tráfico 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 tráfico ICMP6 con autenticación 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 tráfico ICMP6 con autenticación, 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 tráfico HTTP sin IPsec.
19:54:30.592300 IP6
win
19:54:30.592320 IP6
ack
2001:db8:100::2.4351 > 2001:db8:100::1.www: S 1810558380:1810558380(0)
5760 <mss 1440,sackOK,timestamp 392731 0,nop,wscale 3>
2001:db8:100::1.www > 2001:db8:100::2.4351: S 385639318:385639318(0)
1810558381 win 5712 <mss 1440,sackOK,timestamp 687439 392731,nop,wscale 7>
Captura de tráfico HTTP con autenticación 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 tráfico HTTP con autenticación, 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 tráfico SMTP sin seguridad.
20:18:05.953217 IP6
win
20:18:05.953323 IP6
ack
2001:db8:100::2.3887 > 2001:db8:100::1.smtp: S 3293761812:3293761812(0)
5760 <mss 1440,sackOK,timestamp 746569 0,nop,wscale 3>
2001:db8:100::1.smtp > 2001:db8:100::2.3887: S 1647253497:1647253497(0)
3293761813 win 5712 <mss 1440,sackOK,timestamp 1698 746569,nop,wscale 7>
Captura de tráfico SMTP con autenticación 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 tráfico SMTP con autenticación, 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 Comprobación de Cifrado ESP
Captura de tráfico HTTP sin IPsec.
20:33:26.757226 IP6 2001:db8:100::2.4130 > 2001:db8:100::1.www: P
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
0x0030: 9b9b 9d04 8018 02d0 1e1a 0000 0101 080a
0x0040: 000e e781 0003 89d2 4745 5420 2f20 4854
0x0050: 5450 2f31 2e31 0d0a 486f 7374 3a20 5b32
0x0060: 3030 313a 6462 383a 3130 303a 3a31 5d0d
0x0070: 0a55 7365 722d 4167 656e 743a 204d 6f7a
0x0080: 696c 6c61 2f35 2e30 2028 5831 313b 2055
0x0090: 3b20 4c69 6e75 7820 6936 3836 3b20 656e
0x00a0: 2d55 533b 2072 763a 312e 382e 302e 3134
0x00b0: 656f 6c29 2047 6563 6b6f 2f32 3030 3730
0x00c0: 3530 3520 2844 6562 6961 6e2d 312e 382e
0x00d0: 302e 3135 7e70 7265 3038 3033 3233 622d
0x00e0: 3065 7463 6832 2920 4570 6970 6861 6e79
0x00f0: 2f32 2e31 340d 0a41 6363 6570 743a 2074
0x0100: 6578 742f 786d 6c2c 6170 706c 6963 6174
0x0110: 696f 6e2f 786d 6c2c 6170 706c 6963 6174
1:440(439)
‘......@........
................
.........".P....
................
........GET./.HT
TP/1.1..Host:.[2
001:db8:100::1].
.User-Agent:.Moz
illa/5.0.(X11;.U
;.Linux.i686;.en
-US;.rv:1.8.0.14
eol).Gecko/20070
505.(Debian-1.8.
0.15~pre080323b0etch2).Epiphany
/2.14..Accept:.t
ext/xml,applicat
ion/xml,applicat
44
0x0120:
0x0130:
0x0140:
0x0150:
0x0160:
0x0170:
0x0180:
0x0190:
0x01a0:
0x01b0:
0x01c0:
0x01d0:
0x01e0:
0x01f0:
696f
7874
7874
6d61
2e35
6167
302e
6469
7465
6574
7466
2e37
3330
206b
6e2f
2f68
2f70
6765
0d0a
653a
350d
6e67
0d0a
3a20
2d38
0d0a
300d
6565
7868
746d
6c61
2f70
4163
2065
0a41
3a20
4163
4953
3b71
4b65
0a43
702d
746d
6c3b
696e
6e67
6365
732d
6363
677a
6365
4f2d
3d30
6570
6f6e
616c
6c2b
713d
3b71
2c2a
7074
636c
6570
6970
7074
3838
2e37
2d41
6e65
6976
786d
302e
3d30
2f2a
2d4c
2c65
742d
2c64
2d43
3539
2c2a
6c69
6374
650d
6c2c
392c
2e38
3b71
616e
733b
456e
6566
6861
2d31
3b71
7665
696f
0a0d
7465
7465
2c69
3d30
6775
713d
636f
6c61
7273
2c75
3d30
3a20
6e3a
0a
ion/xhtml+xml,te
xt/html;q=0.9,te
xt/plain;q=0.8,i
mage/png,*/*;q=0
.5..Accept-Langu
age:.es-cl,es;q=
0.5..Accept-Enco
ding:.gzip,defla
te..Accept-Chars
et:.ISO-8859-1,u
tf-8;q=0.7,*;q=0
.7..Keep-Alive:.
300..Connection:
.keep-alive....
Captura de tráfico HTTP con autenticación, 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:
0x0210:
0x0220:
f5ef f456 635a c497 176f 4cd0 6a61 3913
e182 f5bb bff4 3af5 2a34 0d20 b540 2dee
8303 2627 a5cc c078 4e45 cb54 90d1 763a
...VcZ...oL.ja9.
......:.*4...@-.
..&’...xNE.T..v:
A.4 Intercepción de Paquetes
Captura de tráfico ICMP con autenticación, integridad y cifrado. De ser una tercera
persona 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 tráfico ICMP con autenticación e integridad (AH) en el Enrutador 1
2001:db8:150::1.
17:21:55.551142
17:21:55.551160
17:21:55.556218
17:21:56.550034
17:21:56.550034
17:21:56.550260
IP6
IP6
IP6
IP6
IP6
IP6
2001:db8:150::2
2001:db8:200::1
2001:db8:150::1
2001:db8:150::2
2001:db8:200::1
2001:db8:150::1
>
>
>
>
>
>
2001:db8:150::1:
2001:db8:100::1:
2001:db8:150::2:
2001:db8:150::1:
2001:db8:100::1:
2001:db8:150::2:
AH(spi=0x00000300,seq=0x1):
ICMP6, echo request, seq 1,
AH(spi=0x00000200,seq=0x1):
AH(spi=0x00000300,seq=0x2):
ICMP6, echo request, seq 2,
AH(spi=0x00000200,seq=0x2):
[|ip6]
length 64
[|ip6]
[|ip6]
length 64
[|ip6]
Captura de tráfico ICMP con autenticación, integridad (AH) y confidencialidad (ESP), en el
Enrutador 1 2001:db8:150::1.
16:30:16.848881
16:30:16.848898
16:30:16.848900
16:30:16.849041
16:30:17.850008
16:30:17.850008
16:30:17.850008
16:30:17.850268
IP6
IP6
IP6
IP6
IP6
IP6
IP6
IP6
2001:db8:150::2
2001:db8:150::2
2001:db8:200::1
2001:db8:150::1
2001:db8:150::2
2001:db8:150::2
2001:db8:200::1
2001:db8:150::1
>
>
>
>
>
>
>
>
2001:db8:150::1:
2001:db8:150::1:
2001:db8:100::1:
2001:db8:150::2:
2001:db8:150::1:
2001:db8:150::1:
2001:db8:100::1:
2001:db8:150::2:
AH(spi=0x00000300,seq=0xb): [|ip6]
ESP(spi=0x00000301,seq=0xb), length 128
ICMP6, echo request, seq 1, length 64
AH(spi=0x00000200,seq=0xb): [|ip6]
AH(spi=0x00000300,seq=0xc): [|ip6]
ESP(spi=0x00000301,seq=0xc), length 128
ICMP6, echo request, seq 2, length 64
AH(spi=0x00000200,seq=0xc): [|ip6]
A.6 Configuración de Racoon Modo Túnel
Archivo de configuración de racoon en modo túnel 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 Configuración de IPsec para Pruebas
Archivo de configuración de IPsec para las pruebas en modo túnel. Configuración con
ESP.
# 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;
Configuración 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;
Configuración 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 Configuración iptables IPv4
Archivo de Configuración 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
iptables
iptables
iptables
iptables
de reglas
-F
-X
-Z
-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 ejecutó con cada configuración de
IPsec.
#!/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
Descargar