Está en la página 1de 51

Cifrado punto a punto y punto

multipunto utilizando IPSec


Temas

Introduccin............................................................................... 1
Protocolos............................................................................... 1
Instalacin ................................................................................. 2
GNU/Linux .............................................................................. 2
Windows XP............................................................................. 4
Configuracin ............................................................................. 4
Punto a Punto .......................................................................... 5
Cliente Remoto (Road Warrior) .................................................... 30
Consideraciones de Seguridad y Compatibilidad ................................... 49
Alternativas .............................................................................. 50

Introduccin
En este documento seguiremos paso a paso las configuraciones necesarias para
cifrar el contenido de las comunicaciones entre dos equipos conectados a
Internet. Tomaremos en cuenta dos escenarios, que se detallarn ms
adelante: el de dos equipos que quieren cifrar todo el trfico que hay entre
ellos, y el de un usuario remoto que debe conectarse a una red de nuestra
organizacin.
Se describirn las configuraciones para el sistema operativo GNU/Linux, para
el primer esquema como uno de los extremos, y para el segundo como la
Puerta de entrada a nuestra red. Todos los ejemplos estarn basados en la
distribucin Debian, versin Sarge (o Testing), con Kernel verson 2.6.
Para el otro extremo, utilizaremos Windows XP. De todas maneras, la mayora
de los pasos tambin podrn ser seguidos sin modificaciones en Windows 2000.
Pero primero, veamos un poco de qu se trata IPSec.

Protocolos
IPsec
El cifrado que abordaremos en este documento se basa en el protocolo IPSec,
que consiste en la reimplementacin para IPV4 de las medidas de seguridad
originalmente diseadas para IPV6. IPSec define dos protocolos:
AH
Authentication Header, consiste en incluir en los paquetes enviados una
firma que permitir verificar su autenticidad. Este protocolo utiliza el
nmero de protocolo IP 51. Y por otro lado,

ESP
Encapsutaled Security Payload, que servir para cifrar todo el contenido de
los paquetes IP (salvo su IP origen y destino, por razones que dejamos a la
imaginacin del lector), adems de poder verificar su autenticidad. A su vez,
este protocolo, posee dos modos principales de operacin: El modo
transporte, donde simplemente es cifrado el contenido de los paquetes que
intercambian dos extremos, y el modo tunnel, donde in paquete IP es
encapsulado dentro de otro, creando lo que normalmente se conoce como un
tnel (Por ejemplo, utilizando los protocolso IPIP o GRE). El protocolo ESP
utiliza el nmero de protocolo IP 50.
Tanto AH como ESP son Estndares de Internet, publicados en las RFC 2402 y
2406 respectivamente.
Otros dos protocolos a tener en cuenta sern:
IKE
Internet Key Exchange es el protocolo de negociar, en una primera fase, la
autenticacin de los extremos. Esta etapa suporta diversos medios de
autenticacin, por ejemplo claves compartidas y certificados X.509, que son
los que utilizaremos. A su vez, soporta dos diferentes modos de inicializacin:
el modo main, y el modo aggressive. Este ltimo tiene la ventaja de ser
mucho ms eficiente en velocidad y trfico, pero tiene la desventade de ser
vulnerable a ataques de man in the middle cuando se utiliza junto con
claves compartidas.
En una segunda etapa, se negocian los protocolos de cifrado y autenticacin y
las respectivas claves que se utilizarn durante la transmisin de datos.
En estas dos etapas del protocolo IKE, ambos extremos utilizan el puerto
500/UDP para comunicarse entre s.
Y por ltimo, nombraremos al siguiente protocolo:
Nat-T
Originalmente IPSec no fue pensado para convivir con NAT. Es por ello que
posteriormente se defini el protocolo Nat-T, o Nat-Trasversal. Este
protocolo, que recientemente pas de la etapa de Internet Draft a
Proposed Standard, facilita la convivencia de IPSec con la traduccin de
direcciones.

Instalacin
GNU/Linux
Como mencionamos previamente, la presente gua se basa en dos condiciones:
1. Kernel 2.6 de Linux.
2. Distribucin Debian.
Comenzaremos con la instalacin de los paquetes necesarios para controlar
las funciones de IPSec del Kernel. En este caso utilizamos el software racoon,
acompaado por el paquete ipsec tools:
vpnserver:~# apt-get install racoon ipsec-tools
2

De los dos modos de instalacin disponibles, seleccionamos racoon-tool


(Figura 2).
Figura 1 - Configuracin de Racoon

Figura 2 Seleccin del modo de configuracin de Racoon

De esta manera, ya se encuentra instalado todo el software necesario para


realizar nuestra configuracin de tneles.

Windows XP
Windows XP ya tiene instalado todo el software necesario para la
configuracin de tneles IPSec, por lo que nos limitaremos a verificar que el
servicio que controla dicha funcionalidad se est ejecutando. Para ello,
dentro de Panel de Control, Herramientas Administrativas, Servicios, nos
aseguramos que el servico IPSec est configurado para arrancar de manera
automtica (Figura 3).
Figura 3 Servicio IPSec

Configuracin
Vamos a revisar los dos esquemas ms comunes de realizacin de tneles. En
el primero de ellos, utilizaremos cifrado IPSec entre todos los paquetes IP que
intercambien dos equipos (Figura 4). Para ello utilizaremos el protocolo ESP
de IPSec, en el modo transporte. Para este caso revisaremos la configuracin
de los extremos tanto utilizando GNU/Linux como Windows. Estas
combinaciones son intercambiables, y servirn tanto para utilizarse
combinadas, como con ambos extremos utilizando el mismo sistema
operativo.

Figura 4 - Cifrado Punto a Punto

En el segundo esquema, realizaremos una conexin remota a una red privada.


En este caso utilizaremos un Tunnel, en donde un equipo corriendo
Windows XP realizar una conexin remota a una red privada, accediendo a
sta mediante un gateway o concentrador de tneles con el uso de
GNU/Linux (Figura 5).
Figura 5 - Usuario remoto

Punto a Punto
GNU/Linux
Comenzaremos por configurar un extremo de la comunicacin cifrada
utilizando GNU/Linux. El extremo a configurar ser el Extremo A mencionado
en la Figura 4.
Comenzaremos con editar el archivo /etc/racoon/racoon-tool.conf:
vpnserver:~# cd /etc/racoon
vpnserver:/etc/racoon# vi racoon-tool.conf
peer(200.5.6.7):
exchange_mode: main
hash_algorithm[0]: sha1
encryption_algorithm[0]: 3des
authentication_method[0]: pre_shared_key

connection(linux-winxp):
src_ip: 200.2.3.4
dst_ip: 200.5.6.7
admin_status: enabled
authentication_algorithm: hmac_sha1
encryption_algorithm: 3des
pfs_group: modp1024
De esta manera hemos definido las siguientes propiedades para el cifrado
entre los extremos A y B:
Modo de Inicio de Sesin IPSec: main. Este modo es preferible a la alternativa
aggressive debido a la forma insegura en la que se eligen las claves de sesin
en este ltimo.
Algoritmos triple DES y SHA-1
Mtodo de autenticacin: clave compartida
Utilizacin de PFS1.
Slo resta configurar la clave que compartirn ambos extremos para
reconocerse entre s:
vpnserver:/etc/racoon# vi psk.txt
192.168.31.130 La eleccin de esta clave debe ser especialmente
cuidadosa. Una mala eleccin puede causar que la seguridad no sea
efectiva.
La primera cadena de texto que aparezca en cada lnea corresponder al
identificador del extremo en cuestin, en este caso el nmero IP del extremo
B. El resto de la lnea, incluyendo los espacios, corresponder a la clave
compartida entre ambos extremos. Como lo dice la misma clave, la eleccin
de la misma debe ser extremadamente cuidadosa, y en lo posible con una
importante cantidad de caracteres aleatorios para asegurar la eficiencia de la
misma.
Para asegurarnos el correcto funcionamiento de la nueva configuracin,
reiniciaremos el servicio IPSec:
vpnserver:/etc/racoon# /etc/init.d/racoon restart

Windows XP
Para Configurar Windows XP, el proceso es un poco ms largo. Comenzaremos
ejecutando el comando mmc desde Inicio / Ejecutar.

PFS: Perfect Forward Secrecy. Esta propiedad asegura que las claves IPSec utilizadas no son
derivadas de ninguna otra clave. Esto asegurar que si alguien logra vulnerar una clave, no
podr utilizarla para descifrar el contenido de ninguna otra asociacin IPSec.

Luego, al aparecer la siguiente pantalla:

Utilizaremos la opcin Add/Remove Snap-in del men desplegable File.

Presionamos Add

Seleccionamos IP Security Policy Management y presionamos Add.

Seleccionamos Local Computer y presionamos Finish.


Presionamos Close y OK en las ventanas anteriores para regresar a la siguiente pantalla:

Seleccionamos IP Security Policies on Local Computer, y utilizamos la opcin Create IP


Security Policy del men desplegable Action.

10

Completamos el nombre y descripcin de la poltica que estamos creando.

Es necesario desactivar el checkbox de activado de regla de respuesta por defecto.

11

Y finalizamos sin editar las propiedades de la poltica que acabamos de crear.

En este momento, aunque no es indispensable, podemos borrar las tres polticas por defecto, y
slo veremos en la siguiente pantalla la poltica recin creada por nosotros:

12

Mediante un doble click en la poltica recin creada, podremos editar sus propiedades:

Comenzaremos con algunos detalles generales, seleccionando la hoja correspondiente:

13

Avanzada

Aqu marcaremos el cuadro PFS, y continuamos con los mtodos:

14

De los cuatro mtodos incluidos por defecto, slo conservaremos el que utiliza los algoritmos
triple DES y SHA-1, borrando los tres restantes:

Luego, presionaremos OK hasta volver a la hoja de Reglas.

15

Donde vamos a agregar una nueva regla.

16

Dentro de la nueva regla, tendremos que agregar una nueva lista de filtrado.

Completamos los datos descriptivos de la nueva regla, y agregamos un filtro mediante el botn
Add.

17

Completamos los datos de la conexin, sin olvidarnosde marcar el cuadro Mirrored.., lo que
har que tanto el trfico de ida como el devuelta concuerde con esta regla.
Al apretar OK, podremos ver el filtro que acabamos de crear,

Luego presionaremos Ok,

18

para luego seleccionar la regla que acabamos de crear.

19

A continuacin, definiremos que accin se tomar con los paquetes que concuerden con esta
regla:

20

Elegimos crear una nueva accin mediante el botn Add

21

Elegimos Negociar la seguridad, y otra vez mediante el botn Add

22

y seleccionamos Cifrado e Integridad.

23

Por ltimo, seleccionamos la utilizacin de PFS.

24

Ser tambin conveniente incluir un nombre descriptivo por el cual podamos identificar esta
accin.

25

En este caso tambin debemos asegurarnos de seleccionar la accin recin creada.


Para concluir con esta etapa de configuracin, seleccionaremos un mtodo de autenticacin en
la hoja correspondiente:

26

Kerberos no est entre nuestros planes, por lo que utilizaremos el botn Add

27

Y seleccionamos el mtodo de clave compartida. Es muy importante que la clave ingresada sea
exactamente igual a la ingresada en el archivo psk.txt en Linux para evitar problemas
engorrosos de descubrir.

28

Ya que no utilizaremos el mtodo Kerberos, ya lo podemos borrar.


Ya estamos en condiciones de presionar OK y Close segn corresponda hasta volver a la
ventana de polticas IPSec.

29

El ltimo paso restante para finalizar esta configuracin consiste en Aplicar la poltica que
acabamos de crear mediante el men Action / Assign.

Comprobacin
La mejor manera de comprobar el correcto funcionamiento es realizando un
ping desde el equipo windows. En un principio, el ping fallar con el mensaje
Negociando Seguridad IP, pero seguidamente comenzar a funcionar. Si
realizamos el ping desde el host linux, debemos tener la precaucin de
permitir el tipo de paquetes correspondientes en el Firewall de Windows XP
para que funcione correctamente.

Cliente Remoto (Road Warrior)


Para la conexin de un cliente remoto, tambin conocido como Road Warrior,
como si fuese parte de nuestra red, utilizaremos la configuracin que se
muestra en la Figura 6. En este caso slo analizaremos el caso donde un
equipo corriendo GNU/Linux acte como concentrador de tneles, y l o los
clientes remotos utilicen Windows XP. Para maximizar la compatibilidad con
el cliente Windows, y para facilitar la utilizacin de IPs dinmicos en los
clientes, utilizaremos el protocolo L2TP adems del cifrado IPSec.
Figura 6 - Cliente Remoto

En este ejemplo, un cliente remoto con IP dinmico se conectar al


concentrador de tneles (IP 200.1.0.1) utilizando IPSec. Una vez cifrado el
trfico, se establecer un tnel L2TP, a travs del cual se iniciar una sesin
PPP. El extremo de este tnel correspondiente al Road Warrior utilizar un IP
de la red privada asignado por el concentrador de tneles, y el extremo del
lado del concentrador tomar el IP 200.1.0.2. De esta manera, una vez
establecida la sesin, el cliente remoto aparecer como un equipo ms dentro
de la red privada, y todo el trfico desde y hacia el cliente remoto ser
redirigido a travs del tnel.
Nota: Se debern tener en especial consideracin las implicancias de
permitir el acceso remoto a la red interna. Se recomienda tomar las
medidas de diseo de red y filtrado de paquetes necesarias para asegurar
este esquema.

GNU/Linux
Como mencionamos en la seccin anterior, utilizaremos L2TP, por lo que
tendremos que instalar el paquete correspondiente a este servicio. El nombre
del paquete para GNU/Linux Debian es l2tpd, y es recomendable utilizar una
30

versin 0.70 o superior. En caso de no estar disponible la misma para la


versin de Debian que estemos utilizando, el paquete correspondiente podr
bajarse de http://packages.debian.org.
Para instalarlo, bastar con ejecutar
vpnserver:~# apt-get install l2tpd
y en caso de haberlo bajado de http://packages.debian.org,
vpnserver:~# dpkg i l2tpd_0.70-pre20031121-2_i386.deb
Ahora revisaremos la configuracin del cifrado IPSec en el concentrador de
tneles:
vpnserver:/etc/racoon# vi racoon-tool.conf
peer(%anonymous):
exchange_mode: main
hash_algorithm[0]: sha1
encryption_algorithm[0]: 3des
authentication_method[0]: rsasig
dh_group[0]: modp1024
my_identifier: fqdn vpnserver.arcert.gov.ar
certificate_type: x509 vpnpub.pem vpnpriv.pem
verify_identifier: on
verify_cert: on
connection(%anonymous):
src_ip: 192.168.31.131
admin_status: on
authentication_algorithm: hmac_md5
encryption_algorithm: 3des
pfs_group: none
Notaremos algunas diferencias con la configuracin del esquema punto a
punto. En primer lugar, como el IP del cliente remoto es desconocido,
utilizaremos el comodn %anonymous para nombrarlo. Adems, si quisisemos
utilizar claves compartidas para la autenticacin del cliente, todos los
clientes deberan compartir la misma clave (ya que no los podemos identificar
de antemano mediante el nmero IP). Por ltimo, y a raz de una restriccin
impuesta en la configuracin del tnel en Windows XP, deberemos desactivar
PFS.
Si bien est afuera de los objetivos de este documento, mencionaremos
brevemente la manera de crear certificados para utilizar en esta
configuracin.
Si no disponemos de una CA, podremos crearla aprovechando la utilidad
provista con el paquete openssl:
vpnserver:~# /usr/lib/ssl/misc/CA.pl -newca

31

CA certificate filename (or enter to create)


Making CA certificate ...
Generating a 1024 bit RSA private key
...++++++
...........................++++++
writing new private key to './demoCA/private/cakey.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
----You are about to be asked to enter information that will be
incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or
a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
----Country Name (2 letter code) [AU]:AR
State or Province Name (full name) [Some-State]:BA
Locality Name (eg, city) []:BA
Organization Name (eg, company) [Internet Widgits Pty Ltd]:ArCERT
Organizational Unit Name (eg, section) []:VPN CA
Common Name (eg, YOUR name) []:VPNCA
Email Address []:
vpnserver:~#

A continuacin, creamos la clave privada (vpnpriv.pem) y la firmamos con con


la CA, obteniendo as un certificado para el servidor (vpnpub.pem). Es
recomendable que el Common Name utilizado coincida con el nombre de
dominio del concentrador de tneles, ya que algunos clientes de VPN podra
revisar que el mismo coincida.
vpnserver:~# openssl req -new -nodes -newkey rsa:2048 -sha1 -keyform
PEM -keyout vpnpriv.pem -outform PEM -out vpnreq.pem
Generating a 2048 bit RSA private key
...+++
.................................................................+++
writing new private key to 'vpnpriv.pem'
----You are about to be asked to enter information that will be
incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or
a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
----Country Name (2 letter code) [AU]:AR
State or Province Name (full name) [Some-State]:BA
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:ArCERT
Organizational Unit Name (eg, section) []:Centro de Computos
Common Name (eg, YOUR name) []:vpnserver.arcert.gov.ar
Email Address []:
Please enter the following 'extra' attributes

32

to be sent with your certificate request


A challenge password []:
An optional company name []:
vpnserver:~#
vpnserver:~# openssl ca -policy policy_anything -in vpnreq.pem -out
vpnpub.pem
Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number: 1 (0x1)
Validity
Not Before: Apr 8 10:26:26 2005 GMT
Not After : Apr 8 10:26:26 2006 GMT
Subject:
countryName
= AR
stateOrProvinceName
= BA
organizationName
= ArCERT
organizationalUnitName
= Centro de Computos
commonName
= vpnserver.arcert.gov.ar
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
A1:C0:DB:37:3B:38:A3:6E:CA:63:8E:EF:F9:AA:85:E4:23:E8:7C:CF
X509v3 Authority Key Identifier:
keyid:A6:81:4B:3F:6B:40:AC:EB:DE:37:2B:8C:0A:6A:0E:10:72:85:D6:94
DirName:/C=AR/ST=BA/L=BA/O=ArCERT/OU=VPN CA/CN=VPNCA
serial:00
Certificate is to be certified until Apr
days)
Sign the certificate? [y/n]:y

8 10:26:26 2006 GMT (365

1 out of 1 certificate requests certified, commit? [y/n]y


Write out database with 1 new entries
Data Base Updated
vpnserver:~#

Posteriormente, deberemos seguir el mismo procedimiento para crear los


certificados de los clientes Windows: userpriv.pem y userpub.pem. Para
facilitar la importacin de dicho certificado en el equipo Windows,
empaquetaremos la clave privada, el certificado, y el certificado de la CA en
formato PKCS12, obteniendo el archivo user.pfx.
vpnserver:~# cat userpriv.pem userpub.pem demoCA/cacert.pem | openssl
pkcs12 -export -clcerts -out user.pfx
Enter Export Password:
Verifying - Enter Export Password:
vpnserver:~#

33

Por ltimo, copiamos la clave y certificado del servidor junto con el


certificado de la CA (para que el servidor de tneles reconozca los
certificados de los usuarios) al directorio /etc/racoon/certs/.
vpnserver:~# cp vpnpub.pem vpnpriv.pem demoCA/cacert.pem
/etc/racoon/certs/

Para que los programas reconozcan el certificado de la CA, deberemos crear


los links correspondientes segn el formato dictado por OpenSSL. Para ello,
utilizamos el programa c_rehash, que se incluye en el paquete openssl.
Adems, nos aseguramos que slo root pueda acceder a la clave privada
utilizada.
vpnserver:~# ls -l
total 8
-rw-r--r-- 1 root
-rw-r--r-- 1 root
-rw-r--r-- 1 root

/etc/racoon/certs/
root 1054 2005-04-08 07:29 cacert.pem
root 1675 2005-04-08 07:29 vpnpriv.pem
root 4072 2005-04-08 07:29 vpnpub.pem

vpnserver:~# c_rehash /etc/racoon/certs/


Doing /etc/racoon/certs/
vpnpub.pem => 34e7346a.0
WARNING: vpnpriv.pem does not contain a certificate or CRL: skipping
cacert.pem => f79292af.0
vpnserver:~# ls -l
total 8
lrwxrwxrwx 1 root
-rw-r--r-- 1 root
lrwxrwxrwx 1 root
-rw-r--r-- 1 root
-rw-r--r-- 1 root

/etc/racoon/certs/
root
10 2005-04-08 07:29 34e7346a.0 -> vpnpub.pem
root 1054 2005-04-08 07:29 cacert.pem
root
10 2005-04-08 07:29 f79292af.0 -> cacert.pem
root 1675 2005-04-08 07:29 vpnpriv.pem
root 4072 2005-04-08 07:29 vpnpub.pem

vpnserver:~# chmod go-r /etc/racoon/certs/vpnpriv.pem


vpnserver:~# ls -l
total 8
lrwxrwxrwx 1 root
-rw-r--r-- 1 root
lrwxrwxrwx 1 root
-rw------- 1 root
-rw-r--r-- 1 root

/etc/racoon/certs/
root
10 2005-04-08 07:29 34e7346a.0 -> vpnpub.pem
root 1054 2005-04-08 07:29 cacert.pem
root
10 2005-04-08 07:29 f79292af.0 -> cacert.pem
root 1675 2005-04-08 07:29 vpnpriv.pem
root 4072 2005-04-08 07:29 vpnpub.pem

vpnserver:~#

Una vez finalizada la instalacin de los certificados, continuamos con la


configuracin del l2tpd:
vpnserver:~# vi /etc/l2tpd/l2tpd.conf
[global]
listen-addr = 192.168.31.131
[lns default]
ip range = 10.1.0.128 - 10.1.0.191

34

local ip = 10.1.0.2
require chap = yes
refuse pap = yes
require authentication = yes
name = VPNServer
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd
length bit = yes
Aqu definimos, como vemos en la Figura 6, el IP donde escuchar el servidor
L2TP (el IP externo de nuestro concentrador de tneles), el rango de IPs que
sern asignados a los clientes remotos, y el IP correspondiente al extremo del
tnel residente en el concentrador.
Como veremos en la configuracin del cliente Windows XP, el certificado al
asignado al cliente se corresponder con el equipo, seguramente una
notebook, y no con el usuario en s, por lo tanto utilizaremos un nombre de
usuario y contrasea para autenticarlo. Si bien el trfico ya est cifrado y no
es necesario, utilizaremos el protocolo MS-Chap V2 para el intercambio de la
clave.
vpnserver:~# vi /etc/ppp/options.l2tpd
+mschap-v2
mtu 1400
mru 1400
Adems, y para evitar inconvenientes en la transmisin de paquetes debido a
los mltiples encapsulamientos, disminuimos el tamao mximos de
transmisin y recepcin de frames.
En el archivo /etc/ppp/chap-secrets configuramos los usuarios que se
conectarn, con sus respectivos passwords, y el rango de IPs desde el cual
pueden utilizarlos (el rango asignado a los clientes en la configuracin de
l2tpd).
vpnserver:~# cat /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret
IP addresses
tomas
*
"ll&%$s#-.32"
10.1.0.128/26
Por ltimo, si queremos que los paquetes del cliente lleguen a nuestra red
interna, deber estar habilitado el ruteo en el concentrador de tneles. Para
activarlo inmediatamente utilizaremos el siguiente comando:
vpnserver:~# echo 1 > /proc/sys/net/ipv4/ip_forward

35

y para que el ruteo siga activado despus de un rebooteo, deberemos editar la


siguietne lnea en el archivo /etc/network/options:
ip_forward=y

Windows
De la misma manera que lo hicimos para las polticas IP, agregamos el mdulo
de Certificados utilizando Start / Run / mmc:

Deberemos utilizar la Opcin Equipo Local, ya que el cliente que utilizaremos


asocia una VPN con el equipo, y no con un usuario:

36

37

Una vez abierto el mdulo de certificados, Mediante el men Action, o


utilizando el botn derecho del mouse, realizamos una importacin de
certificado en la carpeta Personal/Certificates.

38

Seleccionamos el archivo que contiene los certificados.

Si utilizamos un password al generar el archivo PKCS12, deberemos ingresarlo


aqu. Adems, si queremos poder exportar la clave en un futuro, deberemos
marcar la casilla correspondiente.

39

Es importante marcar la opcin de seleccin automtica del store.

40

Una vez que se complete el proceso, aparecer el cartel precedente


indicando que la importacin se realiz con xito
Volviendo a la consola de administracin de certificados, podremos ver el
certificado recin instalado recin despus de refrescar la pantalla (Mediante
la utilizacin de la tecla F5, o del men Ver.

A continuacin, utilizaremos el asistente para la creacin de una nueva


conexin de red. El mismo puede accederse a partir del panel de control,

41

al seleccionar el mdulo de conexiones de red, en el men de la izquierda de


la ventana:

42

Seleccionaremos Conectarse a mi ligar de trabajo,

43

mediante una VPN,

le asignamos un nombre a la nueva conexin,

44

e indicamos el nombre o nmero IP del concentrador de tneles (200.1.0.1).

As habremos creado una nueva conexin de red:

45

A la cual le deberemos realizar ciertos ajustes mediante el men de


propiedades, accesible mediante el botn derecho del mouse.

46

En la hoja de Seguridad de las Propiedades de la conexin, deshabilitaremos


el cuadro de Requerir cifrado de datos, ya que ste se refiere a la conexin
PPP, y en realidad utilizaremos IPSec para el cifrado.

En la hoja de Red, debemos seleccionar el tipo de VPN: L2TP IPSec VPN.


Tambin ser conveniente deshabilitar los protocolos que no vayan a ser
utilizados, por ejemplo el Cliente para redes Micrososft.

47

Y Luego de presionar Ok, estamos listos para establecer la conexin,


utilizando alguno de los nombres de usuario configurados en el concentrador
de tneles.

48

Si todo sale como lo esperado, habremos establecido una conexin con el


concentrador de tneles.

Consideraciones de Seguridad y
Compatibilidad
A continuacin, destacaremos algunos detalles importantes a tener en cuenta.
Aggressive Mode
Este modo de IKE, que no utilizamos en este caso, no debe ser utilizado en
conjuncin con claves compartidas (PSK), ya que permitir ataques que
podrn ver y modificar de manera inadvertida el trfico cifrado.
PFS
Esta propiedad puede ser utilizada tanto en la etapa de IKE, como en la de
transmisin de datos, y nos asegurar que cualquier clave que se pueda haber
filtrado por error, u obtenido por algn otro mtodo (por ejemplo fuerza
bruta), no sirva para descifrar el contenido de una conexin. En el ayudante
de configuracin de conexiones de red de Windows XP utilizado para el
segundo esquema de esta gua, no existe la posibilidad de habilitarlo (por
razones desconocidas).
PSK
Las claves compartidas son un mtodo vlido de autenticacin cuando slo dos
extremos la conocen, y adems se utilizan claves suficientemente fuertes.
Las principales desventajas que posee son, que no son seguras, por un
problema de diseo, cuando se utilizan junto al aggressive mode, y que en
el caso de ser compartidas por ms de un extremo (por ejemplo, si las
queremos utilizar para usuarios remotos), no podemos identificar quin de
los usuarios es el que se conecta, y peor an, si no se utiliza PFS, se corre
el riesgo de que un usuario malicioso utilice la clave para ver o modificar
conexiones ajenas.
NAT
Ninguno de los dos esquemas presentados funciona correctamente con NAT.
Para que el primer esquema funcione con Nat-t, debera modificarse la
configuracin para utilizar el modo tunnel en lugar del modo transporte, y
aplicar Nat-t. Sin embargo, la configuracin de un host Windows sera un
tanto ms compleja, y consideramos que el uso de NAT no es el caso ms
comn para este esquema.
En el segundo esquema, el cliente de Windows utiliza el modo transporte, por
lo que no podr utilizarse racoon, ya que hasta el da de hoy slo implementa
(correctamente) nat-t en modo tunnel. Por este motivo, en el caso de
necesitar utilizar NAT, se deber recurrir a otra implementacin de IPSec, por
ejemplo, Openswan.

49

Firewalls
En la mayora de los casos, un firewall instalado entre dos extremos que
intenten comunicarse por los medios descriptos en esta gua no permitir la
conexin. Para que sta pueda realizarse, habr que configurarlo para que
permita el paso del protocolo 50(ESP), y del puerto 500/UDP (IKE).

Alternativas
En esta seccin, presentamos otras implementaciones que podran utilizarse
para ste u otro tipo de tneles cifrados.

OpenVPN
OpenVPN es una implementacin multiplataforma que utiliza el protocolo
SSL/TLS para encapsular paquetes IP dentro de conexiones TCP o paquetes
UDP. Es un protocolo robusto y con implementaciones en varios sistemas
operativos. Tiene un cliente que puede bajarse en modo binario para ser
utilizado en Windows 2000/XP.

SSH
El protocolo SSH, usualmente utilizado como reemplazo seguro del telnet,
tambin tiene la capacidad de encapsular otras conexiones. Si bien no puede
considerarse exactamente un tnel, servir para encapsular conexiones
individuales.

Openswan
OpenSwan es una alternativa a la implementacin nativa de IPSec del kernel
2.6. Soporta Nat-t tanto en modo transport como en modo tunnel.
Recientemente fue incorporado a la versin unstable de Debian, y se espera
que en un futuro alcance la versin testing. A continuacin, se incluye la
configuracin necesaria para utilizar OpenSwan en el esquema nmero 2 en
lugar de racoon:
Colocar el certificado de la CA (cacert.pem) en el directorio
/etc/ipsec.d/cacerts.
Colocar la clave pblica del servidor (vpnpub.pem) en el directorio
/etc/ipsec.d/certs
Colocar la clave privada del servidor (vpnpriv.pem) en el directorio
/etc/ipsec.d/private.
Colocar la siguiente entrada en el archivo /etc/ipsec.secrets:
: RSA vpnpriv.pem
Utilizar la siguiente configuracin en el archivo /etc/ipsec.conf:
config setup
nat_traversal=yes
conn roadwarrior

50

authby=rsasig
pfs=no
left=%defaultroute
leftcert=vpnpub.pem
leftprotoport=17/1701
right=%any
rightrsasigkey=%cert
rightid="C=AR, ST=BA, O=ArCERT, CN=*, E=*"
rightprotoport=17/1701
auto=add
reemplazando el parmetro rightid por las propiedades de los certificados
que queremos permitir, o simplemente eliminndolo para aceptar todos
los certificados emitidos por la CA.
Y por ltimo, y muy importante, no usen debug en la versin 2.3.0 de
Openswan porque perdern preciadas horas intentando dilucidar por qu
razn la conexin no se realiza con xito, hasta descubrir que es el mismo
debug quien la impide .

51

También podría gustarte