miércoles, 21 de mayo de 2008

Configuracion de IPSec Linux-Linux


Para empezar instalamos el paquete de IPSec:
# apt-get install ipsec-tools

La configuracion estara en /etc/ipsec-tools.conf el cual contiene lo siguiente:
#!/usr/sbin/setkey -f

# NOTE: Do not use this file if you use racoon with racoon-tool

# utility. racoon-tool will setup SAs and SPDs automatically using
# /etc/racoon/racoon-tool.conf configuration.
## Flush the SAD and SPD

# flush;
# spdflush;

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

Para configurar nuestro IPSec configuraremos dicho (/etc/ipsec-tools.conf)archivo asi:
# pico ipsec-tools.conf

Cuando tengamos editado el archivo descomentamos estas dos lineas:

flush;
spdflush;

Solo quitamos el signo # y listo.

Ya empezamos a poner nuestra configuracion. Agregaremos esto dos parrafos con la direcion ip del equipo con el que nos comunicaremos (10.3.16.101) la del equipo local sera (10.3.16.69) la clave compartida que utilizaremos sera la que esta entre “alexandra$analz-” que es una clave MD5 de 128 bits (16 caracteres) en la segunda linea las direcciones ip se hubicaran al contrario, -A es protocolo AH para Autenticar. Este es un ejemplo para ping.

Para configurarlo con AH (Autenticacion "-A")
CONFIGURACION DEL EQUIPO LOCAL

## Some sample SPDs for use ra con

add 10.3.16.69 10.3.16.101 ah 0x300 -A hmac-md5 "alexandra$analz-";
add 10.3.16.101 10.3.16.69 ah 0x200 -A hmac-md5 "alexandra$analz-";

Como utilizaremos ah las politicas seran asi:

# Políticas de seguridad

spdadd 10.3.16.69 10.3.16.101 any -P out ipsec
ah/transport//require;
spdadd 10.3.16.101 10.3.16.69 any -P in ipsec
ah/transport//require;


CONFIGURACION DEL OTRO EQUIPO DE LA COMUNICACION

add 10.3.16.101 10.3.16.69 ah 0x200 -A hmac-md5 "alexandra$analz-";
add 10.3.16.69 10.3.16.101 ah 0x300 -A hmac-md5 "alexandra$analz-";

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

Recargaremos el IPSec de la siguiente forma:
# setkey -f ipsec-tools.conf


En el momento de mirar el ping NO nos mostraba la respuesta, le dimos el comando tcpdump -i eth1 quien nos mostraba la peticion de ping de la otra maquina (10.3.16.101) lo malo era que la maquina local (10.3.16.69) no contestaba.

Ahi le dimos el comando
# setkey -D

EL cual mostraba lo siuiente:

10.3.16.101 10.3.16.69
ah mode=transport spi=512(0x00000200) reqid=0(0x00000000)
A: hmac-md5 616c6578 616e6472 6124616e 616c7a2d
seq=0x00000000 replay=0 flags=0x00000000 state=mature
created: May 22 03:03:28 2008 current: May 22 04:20:28 2008
diff: 4620(s) hard: 0(s) soft: 0(s)
last: May 22 03:03:28 2008 hard: 0(s) soft: 0(s)
current: 142400(bytes) hard: 0(bytes) soft: 0(bytes)
allocated: 2225 hard: 0 soft: 0
sadb_seq=1 pid=7322 refcnt=0
10.3.16.69 10.3.16.101
ah mode=transport spi=768(0x00000300) reqid=0(0x00000000)
A: hmac-md5 616c6578 616e6472 6124616e 616c7a2d
seq=0x00000000 replay=0 flags=0x00000000 state=mature
created: May 22 03:03:28 2008 current: May 22 04:20:28 2008
diff: 4620(s) hard: 0(s) soft: 0(s)
last: May 22 03:03:28 2008 hard: 0(s) soft: 0(s)
current: 240300(bytes) hard: 0(bytes) soft: 0(bytes)
allocated: 2225 hard: 0 soft: 0
sadb_seq=0 pid=7322 refcnt=0

Como nuestro equipos estaban muy cerca comprobamos, que teniamos una parte de la configuracion mala y era que teniamos el numero xxxx300 cambiado por el xxxx200 asi “spi=512(0x00000300) spi=768(0x00000200)”

10.3.16.101 10.3.16.69
ah mode=transport spi=512(0x00000300) reqid=0(0x00000000)

10.3.16.69 10.3.16.101
ah mode=transport spi=768(0x00000200) reqid=0(0x00000000)


Para mirar el ping que nos haga la otra maquina le damos:
# tcpdump -i eth1 --> (ethX) Tarjeta de red por la que tenemos nuestra conexión establecida.

Para configuraalo con ESP (Encriptacion "-E")
## Some sample SPDs for use racoon
add 10.3.16.69 10.3.16.101 esp 0x300 -E 3des-cbc "qazxswedcvfrtgbnhyujmiko";
add 10.3.16.101 10.3.16.69 esp 0x200 -E 3des-cbc "qazxswedcvfrtgbnhyujmiko";

# Políticas de seguridad ESP
spdadd 10.3.16.69 10.3.16.101 any -P out ipsec
esp/transport//require;
spdadd 10.3.16.101 10.3.16.69 any -P in ipsec
esp/transport//require;


1 comentario:

GarySan dijo...

Que tipo de ipsec debo usar para hacer un solo servidor ipsec o tuneles y varios otros clientes tambien en linux.

Salu2.