IPSEC EN LINUX intercambio manual de claves
IPSEC
Es una extensión al protocolo IP de seguridad que asegura los 4
principios básicos de la seguridad, Confidencialidad, Integridad,
Disponibilidad y no repudio,
*Se basa en el RFC 2401
*Un conjunto de protocolos
*Una serie de mecanismos de autenticación y encriptación
Cuenta con servicios como:
*Autenticación mutua:
IPSec permite el intercambio y la comprobación de identidades sin
exponer la información a la interpretación de un atacante estableciendo
confianza entre sistemas que se comunican.
*Anti-replay:
Asegura que el mensaje transmitido no se pueda replicar porque dicho
mensaje tiene un número en secuencia, el cual no se puede repetir
*Confidencialidad: Es la propiedad de un mensaje en la que únicamente esta autorizado para ser leído o entendido por algunas personas o entidades.
*Integridad: Asegura que los datos transmitidos no sean modificados por terceros
*Control de Acceso: Se pueden aplicar reglas de seguridad que definen el nivel de seguridad deseado para acceder a alguna información
FUNCIONA EN DOS MODOS
Modo Transporte:
para comunicaciones de un PC a otro, ambos deben implementar IPSec,
utiliza el payload o caga IP o los datos de la información es decir sólo
la carga útil (los datos que se transfieren) del paquete IP es cifrada
y/o autenticada. El enrutamiento permanece intacto, ya que no se
modifica ni se cifra la cabecera IP.
Modo Tunel:
comunicación entre redes, es decir los paquetes viajan por dispositivos
que los enrutan, por esta razón la implementación de IPSec en modo t
unel
debe implementarse en los intermediarios como enrutadores, encripta la
nueva cabecera IP que el Router adiciona al paquete, además de encriptar
el payload.
FAMILIA DE PROTOCOLOS QUE CONFORMAN IPSEC
Authtentication Header, AH: permite
que en el intercambio de datos, los paquetes sean firmados, es decir,
asegura que no se modifiquen y que no sean generados desde otras
fuentes, pero no asegura que dicha comunicación no pueda ser vista por
terceros, entonces, cualquiera puede interpretar los datos pero si lo
modifica será descubiertos. SHA y MD5 son los encargados de las firmas.
Encaptulation Security Payload, ESP:
Encripta el paquete garantizando la Integridad, Disponibilidad,
Confidencialidad y No repudio como principios de la seguridad,
cumpliendo con las tareas del anterior protocolo mas la encriptación que
propende por la confidencialidad de la información. DES, 3DES, AES y
Blowfish son los algoritmos más usados en este protocolo.
Internet key Exchange IKE:
resuelve el problema más importante del establecimiento de
comunicaciones seguras: la autenticación de los participantes y el
intercambio de claves simétricas, crea las asociaciones de seguridad.
IKE emplea el puerto 500 UDP para su comunicación.
*en
la primera fase suele basarse en claves compartidas con anterioridad
(PSK - Pre-shared keys), claves RSA y certificados X.509
*la segunda fase, el protocolo IKE intercambia propuestas de asociaciones de seguridad y negocia asociaciones de seguridad
En la primera fase de esta entrada de intercambios de claves manuales implementaremos IPSEC con el sub protocolo AH en modo transporte,
pues aunque al parecer sencillo es el inicio de una serie de usos y
configuraciones similares mas complejas como en el caso de ESP incluso
el modo Túnel.
Paso 1
Lo primero que haremos será instalar las herramientas necesarias para la aplicación de la seguridad sobre el protocolo IP
#apt-get install ipsec-tools
Paso 2
En
segundo lugar generamos las claves que se preconpartiran al momento de
la autenticación de los dos equipos que se comunicaran, recordemos que
el modo transporte es para conexiones punto a punto. Las crearemos
aleatoriamente con la longitud requerida por AH 16 bytes ó 128 bits.
#dd if=/dev/random count=16 bs=1 | xxd -ps
Hemos
generado la clave que el host local enviara al host remoto para que
este cifre con esta lo que al local se le enviara, falta generar la
clave del equipo remoto con la cual se le cifrara lo que a él se envia,
ejecutamos el mismo comando y la preparamos para incorporarla al archivo
de configuración de IPSEC


Paso 3
En
este campo debemos prestar especial atención, pues estaremos
especificando a IPSec como trabajara con el equipo remoto que se desea
establecer el intercambio seguro de datos, Es imperante aclarar que esta
configuración debe hacerse de forma similar en el equipo remoto,
teniendo en cuenta la entrada y la salida de datos de cada uno,
indicaremos a continuación como serian las líneas para cada extremo de
la comunicación (local _ remoto)
Con
las claves anteriormente generadas y las IP de los equipos sobre
conocimiento, editamos el archivo ipsec-tools.conf y deberá parecerse al
siguiente según las IP y demás requerimientos
#nano /etc/ipsec-tools.conf
Publish at Scribd or explore others:
en
el anterior archivo hemos descomentado las líneas “Flush the SAD and
SPD” , para permitir setiar o volver al principio las bases de datos que
almacenan las políticas de seguridad y las asociaciones de seguridad.
flush;
spdflush;
Las
asociaciones de seguridad se especifican con la variable "add"
acompañada de otras que definen, IP de origen y destino, el protocolo
IPsec (ah ), el SPI (0x200 ) y el algoritmo. El algoritmo de
autenticación se especifica con -A (el de cifrado con -E)
add (ip-local) (ip-destino) (protocolo) (SPI) (algoritmo) (clave-equipo local)
add (ip-remota) (ip-local) (protocolo) (SPI) (algoritmo) (clave-equipo remoto)
Las asociaciones especificadas en las líneas anteriores deben definirse como las politicas de seguridad que regirán la comunicación, con la variable "spd", estas políticas definen qué paquetes se protegerán con IPsec y qué protocolos y claves emplear.
spdadd 192.168.1.148 192.168.1.124 any -P out ipsec ah/transport//require;
spdadd 192.168.1.124 192.168.1.148 any -P in ipsec ah/transport//require;
es
necesario especificar en las direcciones IP origen y destino de los
paquetes a proteger, el protocolo y puerto (any) y la política a emplear
(-P). La política especifica, la dirección (in/out) la acción a aplicar
(ipsec/discard/none), el protocolo (ah/esp/ipcomp), el modo
(transpor/tunel) y el nivel (use/require).
En
el mismo fichero "/etc/ipsec-tools.conf" pero en el equipo remoto,
debemos tener las mismas líneas pero con un orden cambiado, donde le
especifique a ese equipo quien será el host remoto y de que forma se
comunicara con él como local.
En el segundo equipo cambiar este orden:
spdadd 192.168.1.148 192.168.1.124 any -P out ipsec ah/transport//require;
spdadd 192.168.1.124 192.168.1.148 any -P in ipsec ah/transport//require;
por este ordén:
spdadd 192.168.1.124 192.168.1.148 any -P in ipsec ah/transport//require;
por este ordén:
spdadd 192.168.1.148 192.168.1.124 any -P in ipsec ah/transport//require;
spdadd 192.168.1.124 192.168.1.148 any -P out ipsec ah/transport//require;
El archivo como lo hemos advertido no tendría cambios dramáticos, pero para efectos pedagógicos decidimos exponer el archivo del host remoto a continuación, para tener la vista de ambos como sería realmente
spdadd 192.168.1.124 192.168.1.148 any -P out ipsec ah/transport//require;
El archivo como lo hemos advertido no tendría cambios dramáticos, pero para efectos pedagógicos decidimos exponer el archivo del host remoto a continuación, para tener la vista de ambos como sería realmente
Publish at Scribd or explore others:
Al
tener los equipos con las configuraciones necesarias procedemos a
cargar los archivos para que sean tomados por el demonio
correspondiente, en este caso debemos setear el archivo de
configuración.
#setkey -f /etc/ipsec-tools.conf
Existen
otros dos comandos que nos muestran las bases de datos que se cargan al
correr los demonios con la anterior configuración, si estos comando se
ejecutan sin ningún inconveniente quiere decir que la configuración se
ha realizado correctamente.
#setkey –D
#setkey –D
#setkey –PD
Con esto podemos dar como exitosa la implementación de IPsec con AH, pero antes debemos probar que nos arroje los datos correspondientes a dicho modo de IPsec, instalamos "tcpdump" para capturar los paquetes correspondientes a la configuración realizada.
#apt-get install tcpdump

Ahora
si podemos verificar que todo este corriendo correctamente con el
comando que capture los paquetes en este caso AH de nuestra
implementación IPsec
#ping 192.168.1.128 | tcpdump | grep AH
#ping 192.168.1.128 | tcpdump | grep AH
referencias:
lartc.org/howto/lartc.ipsec.html http://www.ipsec-howto.org/spanish/x257.html
No hay comentarios:
Publicar un comentario