Upload
trinhhuong
View
217
Download
0
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
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