martes, 1 de julio de 2008

Configuracion De IPsec En Linux Utilizando Racoon

Racoon es un software que se comunica atravez de IKE (ISAKMP / Oakley) para establecer una asociacion de seguridad entre varios equipos.

Debemos instalar el paquete desde el repositorio:

#apt-get install racoon

El directorio donde se almacenanlos archivos es: /etc/racoon

Debemos configurar la clave precompartida con la que se estableceran las conexiones, esto lo hacemos desde el archivo /etc/racoon/psk.txt

#pico /etc/racoon/psk.txt

Un archivo psk.txt correctamente configurado se veria asi:

# Direcciones IPv4
192.168.0.20 clave precompartida simple 192.168.0.10 "abcdefghijklmnopqrstuvwx"
# USER_FQDN
#sgarcia@misena.edu.co Esta es una clave precompartida para una dirección de correo
# FQDN
#www.spenneberg.net Esta es una clave precompartida

# IPv4/v6 addresses
#10.160.94.3 mekmitasdigoat
#172.16.1.133 0x12345678
#194.100.55.1 whatcertificatereally
#3ffe:501:410:ffff:200:86ff:fe05:80fa mekmitasdigoat
#3ffe:501:410:ffff:210:4bff:fea2:8baa mekmitasdigoat
# USER_FQDN
#foo@kame.net mekmitasdigoat
# FQDN
#foo.kame.net hoge


La parte resaltada es la mas importante puesto que alli configuramos las direcciones IP de los eqipos que se comunicaran utilizando esa clave precompartida (las direcciones cambian segun el caso de cada red y la configuracion debe ser igual en el otro equipo pero con las direcciones invertidas).


Despues de terminar la configuracion de este archivo pasamos a configurar el archivo racoon.conf.

#pico /etc/racoon.conf

Desde este archivo configuraremos los algoritmos de cifrado entre otras cosas.
Veamos el archivo

# NOTE: This file will not be used if you use racoon-tool(8) to manage your
# IPsec connections. racoon-tool will process racoon-tool.conf(5) and
# generate a configuration (/var/lib/racoon/racoon.conf) and use it, instead
# of this file.
#
# Simple racoon.conf
#
#
# Please look in /usr/share/doc/racoon/examples for
# examples that come with the source.
#
# Please read racoon.conf(5) for details, and alsoread setkey(8).
#
#
# Also read the Linux IPSEC Howto up at
# http://www.ipsec-howto.org/t1.html
#

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

remote 192.168.0.20 {
exchange_mode main,aggressive;
proposal {
encryption_algorithm 3des;
hash_algorithm md5;
authentication_method pre_shared_key;
dh_group modp768;
}
generate_policy off;
}

sainfo address 192.168.0.10[any] any address 192.168.0.20[any] any {
pfs_group modp768;
encryption_algorithm 3des;
authentication_algorithm hmac_md5;
compression_algorithm deflate;
}
sainfo address 192.168.0.20[any] any address 192.168.0.10[any] any {
pfs_group modp768;
encryption_algorithm 3des;
authentication_algorithm hmac_md5;
compression_algorithm deflate;
}


Si nos ponemos a analizar detalladamente este archivo veremos que al igual que en los demas archivos que hemos configurado para trabajar con IPsec se deben generar parametros de comunicacion que involucran las direcciones IP de los equipos que se van a comunicar de forma segura, tambien podemos ver que en el parametro "remote" como es obvio debemos poner la direccion IP del equipo remoto, tambien desde aca definimos los algoritmos de cifrado y autenticacion que en este caso son:

Cifrado: 3des
Autenticacion: hmac_md5


Por ultimo debemos configurar el archivo de configuracion de IPsec.

#pico /etc/ipsec-tools.conf

Asi quedaria el archivo configurado correctamente:

#!/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;
#

# Políticas de seguridad
spdadd 192.168.0.10 192.168.0.20 any -P out ipsec
esp/transport//require;
# ah/transport//require;
spdadd 192.168.0.20 192.168.0.10 any -P in ipsec
esp/transport//require;
# ah/transport//require;

Despues de tener los archivos de configuracion correctamente configurados reiniciamos los servicios:

#setkey -f ipsec-tools.conf

#/etc/init.d/racoon restart

Con esto terminamos la configuracion de IPsec con Racoon. Veamos una captura realizada con una configuracion correcta.

Configuracion De IPsec en Linux

Debemos instalar primero el paquete de IPsec.

#apt-get install ipsec-tools

-Cuando instalamos ipsec debemos ver si existe un archivo llamado
ipsec-tools.conf, este aparece en el directorio /etc esta es una muestra de lo que contiene este archivo.


-Estas son las lineas que debemos modificar:


primero debemos descomentar las lineas


# flush;
# spdflush;

NOTA: ipsec trabaja con AH (AUTHENTICATION HEADER) y ESP (ENCAPSULATION SECURITY PAYLOAD). y vamos a configurar IPsec con cada uno de ellos.

*
Configuracion IPsec con AH.

AH es un protocolo que proporciona en el ámbito de IPSec la autenticación del emisor y la integridad del mensaje mediante el cálculo de un código HMAC.

-
Debemos agregar las siguientes lineas en el archivo de configuracion para que nuestro IPsec trabaje con AH (las direcciones IP utilizadas aqui son para el caso del ejemplo, para otra configuracion debes tener en cuenta el rango de direccionamiento de la red):

add 192.168.0.10 192.168.0.20 ah 0x200 -A hmac-md5 "abcdefghijklmnop";
add 192.168.0.20 192.168.0.10 ah 0x300 -A hmac-md5 "abcdefghijklmnop";

192.168.0.10 es mi direccion IP y 192.168.0.20 es la direccion del equipo con el estableceremos la conexion IPsec, hmac-md5 es el algoritmo que usaremos y "abcdefghijklmnop" es la clave precompartida que debe ser de 1024 bits ya que esto es lo que soporta md5. La longitud varia dependiendo del algoritmo que se utilize.

La segunda linea se agrega para establecer la conexion en sentido contrario, estableciendo asi la comunicacion en doble sentido.

-Tambien debemos configurar las siguientes lineas del archivo ipsec-tools.conf

spdadd 192.168.0.10 192.168.0.20 any -P out ipsec
ah/transport//require;


spdadd 192.168.0.20 192.168.0.10 any -P in ipsec
ah/transport//require;


Asi especificamos nuevamente la comunicacion en ambos sentidos y tambien que trabajaremos con AH.

Asi queda el archivo de configuracion correcto:

#!/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
add 192.168.0.10 192.168.0.20 ah 0x200 -A hmac-md5 "abcdefghijklmnop";
add 192.168.0.20 192.168.0.10 ah 0x300 -A hmac-md5 "abcdefghijklmnop";

#
spdadd 192.168.0.10 192.168.0.20 any -P out ipsec
ah/transport//require;

#
spdadd 192.168.0.20 192.168.0.10 any -P in ipsec
ah/transport//require;

#


-Algo que debemos tener en cuenta es que en el equipo con el que vamos a establecer la conexion IPsec debe tener los mismos parametros configurados pero en sentido contrario al nuestro, por ejemplo, veamos como se veria el archivo de configuracion del equipo 192.168.0.20:


#!/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
add 192.168.0.20 192.168.0.10 ah 0x300 -A hmac-md5 "abcdefghijklmnop";
add 192.168.0.10 192.168.0.20 ah 0x200 -A hmac-md5 "abcdefghijklmnop";

#

spdadd 192.168.0.20 192.168.0.10 any -P out ipsec
ah/transport//require;

#
spdadd 192.168.0.10 192.168.0.20 any -P in ipsec

ah/transport//require;

#

-Despues de tener listo el archivo de configuracion recargamos IPsec

#
setkey -f /etc/ipsec-tools.conf

Ahora podemos comprobar si esta funcionando capturando paquetes con el comando tcpdump.

Si la configuracion esta correcta debemos ver un resultado como este:


La configuracion de ipsec con AH esta terminada.


* Configuracion de IPsec con ESP.


ESP es un protocolo que proporciona en el ámbito IPSec confidencialidad, autenticación y protección de integridad utilizando llaves cifradas.

El archivo terminado con ESP queda de esta manera:

#!/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

add 192.168.0.10 192.168.0.20 esp 0x201 -E 3des-cbc "abcdefghijklmnopqrstuvwx";
add 192.168.0.20 192.168.0.10 esp 0x301 -E 3des-cbc "abcdefghijklmnopqrstuvwx";

#
spdadd 192.168.0.10 192.168.0.20 any -P out ipsec
esp/transport//require;

#
spdadd 192.168.0.20 192.168.0.10 any -P in ipsec
esp/transport//require;

#

Las 2 diferencias principales en comparacion con la configuracion de AH son: El algoritmo de cifrado cambio de md5 a 3des y por eso la longitud de la clave precompartida cambia a 2048 bites, es decir 24 caracteres y que ahora la opcion "-A" cambio a "-E" para encriptar.


-Recargamos ipsec

#setkey -f /etc/ipsec-tools.conf

-Hacemos la misma prueba que con AH usando tcpdump.


si nos aparece el siguiente resultado esto significa que todo esta bien configurado:

con esto hemos terminado la configuracion de ipsec con esp y seguiremos con:

* Configurcion de IPsec con AH y ESP.

Es posible que IPsec funcione con AH y ESP juntos para hacerlo mucho mas seguro. Para hacerlo simplemente juntamos las dos configuraciones que hicimos anteriormente, veamos como queda el archivo de configuracion:

#!/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
add 192.168.0.10 192.168.0.20 ah 0x200 -A hmac-md5 "abcdefghijklmnop";
add 192.168.0.20 192.168.0.10 ah 0x300 -A hmac-md5 "abcdefghijklmnop";
add 192.168.0.10 192.168.0.20 esp 0x201 -E 3des-cbc
"abcdefghijklmnopqrstuvwx";
add 192.168.0.20 192.168.0.10 esp 0x301 -E 3des-cbc "abcdefghijklmnopqrstuvwx";


#
spdadd 192.168.0.10 192.168.0.20 any -P out ipsec
esp/transport//require
ah/transport//require;

#
spdadd 192.168.0.20 192.168.0.10 any -P in ipsec
esp/transport//require
ah/transport//require;

#

-Capturamos trafico con tcpdump y nos debe mostrar un resultado como este, debemos copiar el siguiente comando esto se hizo tambien con las anteriores capturas:

#tcpdump -i eth0 src host 192.168.0.20 or dst host 192.168.0.20





Damos por terminado la configuracion de ipsec con ah y esp.

lunes, 30 de junio de 2008

Configuracion de IPsec en Windows

1. Iniciaremos una consola de administracion esto lo haremos dando clic en inicio, ejecutar, copiamos mmc y damos enter, nos aparecera algo como:



2. Después de haber dado enter nos aparecerá la siguiente ventana en esta ventana damos clic en en archivo y en agregar o quitar complemento.


3. Luego eligiremos la consola de administracion que deseamos en el siguiente recuadro.




-en este recuadro le damos clic en agregar.


4. En la ventana que nos aparecie escojemos la opcion
ip security policy management y le damos add nos aparecera otra ventana la cual nos pregunta en que equipo vamos agregar el complemento, le damos en equipo local y finish, despues seleccionaremos el otro complemento que sera ip security monitor le damos clic en add y luego en close.




5. Aqui nos muestran las consolas que seleccionamos y luego de estar seguros de que se escojieron bien damos clic en aceptar.


6. Despues de terminar lo anterior nos aparecera las opciones de configuracion de ipsec. Ya con esto empesaremos a configurar politicas de ipsec.
-primero damos clic derecho en directivas de seguridad (ip security policy management) y le damos clic en crear directiva de seguridad ip



7. Nos aparecera un asistente de configuracion.


-le damos clic en siguiente.

8. nos saldra una un recuadro donde nos pedira el nombre y la descripcion que le vamos a colocar a la directiva y le damos clic en siguiente.


9. luego nos saldra el siguiente cuadro el cual nos esta dice si queremos activar la regla de respuesta predeterminada, esto es para que los equipos remotos cundo soliciten seguridad se le responda y se le solicite seguridad en la comunicacion.


10. Luego nos aparecera un cuadro en el cual especificaremos la llave precompartida.


-damos clic en siguiente y nos aparecera que ya hemos terminado la de crear la directiva:


-y le damos clic en finalizar.

11. Al darle clic en finalizar nos aparecerá un cuadro donde podemos agregar reglas para nuestra directiva. para no tener inconvenientes desactivamos la opcion de usar asistente para agregar (use add Wizard) que se encuentra en la parte inferior de la ventana y luego damos clic en agregar.


12. nos aparecera este cuadro el cual nos permite hacer un filtrado de ip (IP filter list) y le daremos clic en agregar.


13. luego de que le dimos clic en agregar nos aparecerá un recuadro en el cual le colocaremos el nombre ala regla de filtrado y tambien desactivamos el asistente (use add Wizard) luego de colocar el nombre le damos cilc en edit.


14. en esta ventana especificaremos desde que direccion ip origen hacia cual direccion ip destino y pasamos ala siguiente pestaña.


15. en esta pestaña especificaremos que protocolo vamos a utlizar:




-si queremos podemos colocarle descripcion ala regla.y para finalizar le damos clic en ok a todas las ventanas que nos aparescan.

16. despues escogemos la pestaña Filter action (accion de filtrado) y le damos clic en agregar


17. despues de darle add nos aparecera esta ventana en la cual podemos escoger los metodos de seguridad en este caso escogemos negociar la seguridad (negotiate security) y damos clic en agregar


18. luego de darle en add nos aparecera esta ventana en la cual escogemos la opcion personalizada esto es para personalizar el metodo de seguridad y le damos clic en configurarion.


19. nos aparecera una ventana en la cual escogemos los algoritmos que vamos a utilar puede ser SHA1 O MD5 tambien podemos escoger el algoritmo de encriptacion que puede ser 3DES.


-luego de escoger los algoritmos le damos clic en ok a todas las ventanas que nos aparescan.

20. luego pasamos ala pestaña metodos de autenticacion y le damos clic en agregar.


-luego de darle cilc en agregar nos aparecera una ventana en la cual escogeremos la ultima opcion y colocaremos la llave precompartida.


21. y ya para terminar le damos clic derecho sobre la politica y damos clic en asignar.



NOTA:para que esta politica funcione debe de haber la misma configuracion en los equipos donde se va a implementar esta regla.

esta fue una prueba de la politica. Esta politica es para que negocien seguridad cuando se hace un ping y tengan comunicacion segura


Imagenes sacadas de http://modseguridad.blogspot.com

lunes, 23 de junio de 2008

HOW-TO SSH


Existen herramientas que utilizan ssh para entrar en otros equipos, la que voy a utilizar en este how-to es la aplicacion libre Putty.


Colocamos en la parte de " hostname " el nombre del equipo o la direccion ip, al darle clic en open ingresamos y nos pedira login y password.

Configuracion de ssh en Linux:

1.Instalar SSH

-apt-get install ssh


2
.Editamos el archivo de configuracion de ssh que es sshd_config.

- pico /etc/ssh/sshd_config


3.En el archivo de configuracion especificaremos en la linea:
-port 22
este es el puerto que viene por defecto y por el trabaja ssh pero si deseamos que trabaje por otro puerto lo podemos cambiar por otro puerto que este por encima de 1024. 4.Despues modificamos la linea
permitRootLogin que es para permitir el acceso directo al usuario root es recomendable que esta opcion este en no esto es por seguridad y mas si se va a permitir el acceso de redes publicas.

-PermitRootLogin no

5.La linea x11Forwarding nos da la opcion de permitir o denegar la ejecucion remota de una interface grafica.

-x11Forwarding yes

6.Para que nuestro servidor pida una llave al ingresar el ususario debemos descomentar la linea:

-AuthorizedKeysFile /root/.ssh/authorized_keys

esa ruta es donde van a ir almacenadas las llaves publicas de los usuarios .

7.Despues debemos descomentar la linea PasswordAuthentication y cambiar de yes a no esto se hace para que no pida clave sino la llave del usuario

-PasswordAuthentication yes

8.
Despues debemos copiar la llave del usuario que va a ingresar al servidor ssh en la ruta que le dimos en la linea AuthorizedKeysFile (la ruta es /root/.ssh/authorized_keys)

-cp /root/.ssh/id_dsa.pub /root/.ssh/authorized_keys

id_dsa.pub es la llave publica del usuario.


9.por ultimo reiniciaremos el servicio
-/etc/init.d/ssh restart


configuracion del cliente ssh


1.
instalaremos el cliente ssh

-apt-get install ssh-client

2.
Luego crearemos un par
de llaves dsa del usuario

-ssh-keygen -t dsa


la llave privada se llama id_rsa y la publica id_rsa.pub

3.Despues copiamos la llave publica al archivo donde se alojan las llaves que es /root/.ssh/authorized_keys

--cp /root/.ssh/id_dsa.pub /root/.ssh/authorized_keys

4.
Provaremos si la configuracion esta buena accediendo al servidor ssh
-ssh 10.3.8.154 (es la ip del servidor ssh)


en esta imagen nos muestra que ya ingresamos al servidor.


Analisis del trafico ssh

Acontinuacion veremos como es la conexion ssh cliente servidor


- El cliente hace una peticion ssh con un SYN al servidor
- El servidor le da respuesta con un SYN,ACK
- Vuelve a responder el cliente con un ACK
- El servidor responde arrojando datos del protocolo y del equipo.
- El cliente hace lo mismo, arroja informacion de su equipo y demas.
- Luego el cliente inicia el intercambio de llaves del servidor.
- El servidor responde con un ACK, y inicia en intercamo de llaves del servidor.
- Luego establecen un algoritmo de encriptacion, crean unas nuevas llaves para crear el tunel ssh y luego inicia una comunicacion encriptada


Para finalizar la conexion ssh el cliente le manda una peticion de FIN, ACK al servidor, el servidor le responde con otro FIN, ACK y el cliente le confirma con un ACK.


Imagenes tomadas del blog http://modseguridad.blogspot.com

lunes, 16 de junio de 2008

CONFIGURACION DE UNA VPN CLIENTE-LAN en dispositivo 3com vpn firewall


1. Ingresamos al menú de vpn.




2. despues seleccionamos la opcion l2tp que nos permitira la conexion entre el cliente y la lan cuando escojemos esta opcion nos apareceran varios cuadros en la parte inferio.

(A)El primer espacio nos aparece el ID del firewall por defecto ese lo dejaremos así para esta primera practica y en el segundo cuadro especificaremos que tipo de id tiene nuestro firewall que en este caso es una dirección IP.

(B)En este cuadro especificaremos la llave pre compartida durante la conexión y el nivel de encriptación.

(C)En este otro cuadro nos aparece el rango de direcciones IP que va entregar nuestro dispositivo al computador que se conecte por medio de la vpn.




3.Después le damos clic a la siguiente pestaña en encontraremos este cuadro al cual escogeremos la opción new.




4. Se nos abrirá un cuadro mas en el cual escogeremos la primera opción remote user acces después escogeremos el tipo de túnel que para este caso implemente l2tp la misma que pusimos en la primera pestaña después pondremos la descripción de la conexión y especificaremos el nombre de usuario y las contraseñas que serán los mismos que utilizara el usuario al momento de conectarse aplicamos y ya esta lista la configuración en nuestro dispositivo 3com vpn firewall.




configuracion del cliente

1.
Primero que todo tenemos que crear una conexión nueva desde

Inicio

Panel de control

Conexiones de red

Asistente para una conexión nueva.






2. Nos saldrá un asistente para la configuración de nuestra vpn le damos siguiente.




3. En este cuadro nos aparece varias opciones de las cual escogeremos una que será la de conectarse a la red de mi lugar de trabajo por que esta opción es la que permitiría conectarnos desde nuestra casa a nuestro lugar de trabajo que es el fin de esta practica y después le damos siguiente.





4. En este cuadro escogeremos la forma de como nos conectaremos a nuestra red que en nuestro caso cera por medio de una vpn o red privada virtual.




5. En este cuadro nos pediría el nombre de la organización le podemos poner el nombre de la conexión o lo que usted quiera.




6. En este otro cuadro se nos pedirá la dirección privada de nuestro servidor vpn que es la que nos asigno el dhcp (figura 6 1 entrada).




7. En este cuadro nos pediría que especifiquemos si queremos que el uso de esta conexión sea para mi uso personal o para todos los que trabajen en este esta opción la escogerás según sea tus necesidades.



8. Aquí el asistente nos indica que la configuración de nuestra conexión ha finalizado.




9. Cuando finalizamos el asistente para la nueva conexión nos sale este cuadro que nos pedirá el nombre de usuario y la contraseña para podernos conectar a nuestra red privada pero antes de hacer esto tendremos que indicarle la llave pre compartida para hacer esto le damos clic a propiedades.

10. Después nos vamos a la pestaña seguridad y luego pulsamos la opción al final del cuadro que es configuración de ipsec en el cuadro que nos aparece le indicaremos la llave pre compartida que pusimos en nuestro dispositivo 3com (imagen 2 de esta entrada) le damos aceptar a este y al otro cuadro que nos apareció anterior mente.


11. Después de esto nos mostrara la conexión que acabamos de crear le damos clic derecho y después conectar.




12. Ahora si especificaremos el nombre de usuario y la contraseña que pusimos en nuestro dispositivo (imagen 4 de esta entrada) después le damos conectar.






13. Aquí nos muestra a que dirección se esta conectando.



14. Aquí nuestro computador se esta registrando en la red.



15. Aquí nos muestra la autenticación del equipo



16. Listo ya estamos conectados.

17. Aquí podemos ver la dirección que nos asigno el dispositivo y podremos observar que la dirección asignada corresponde al rango de direcciones que configuramos en nuestro dispositivo (figura2 de esta presentación).




18. y aquí podremos observar si la conexion vpn esta activa o no


Imagenes tomadas de http://marlon-evidencias.blogspot.com