|
|
Freeswan (ipsec) como pasarela para clientes Windows 2ºparte
(15617 lectures)
Por sakroot
sakroot
(http://www.freeswan.org)
Creado el 25/07/2004 07:15 modificado el 25/07/2004 23:59
|
2ºPart
En este mini howto, describo como podemos conectar clientes windows
a nuestro servidor Linux con freeswan 1.96,
Hablo tanto de como configurar la maquina Linux,
como tambien configurar el cliente windows (winxp/win2k)
he dividido el documento en 2 partes, puesto que me ocupaba 14 hojas y
en bulma no podia poner el minihowto tan grande :) | Pagina1/1 |
NTEROPERABILIDAD ENTRE FREESWAN Y WINDOWS
2ªParte
Minihowto freeswan-windows
Licencia GPL
Autor: Diego de León Ojeda (sakroot)
Continuamos el minihowto, que dejamos a medias :)
- Es hora de mover los archivos de los certificados a sus
correspondientes sitios:
cp /etc/ssl/MYCA/linux.freeswan.key /etc/ipsec.d/private/
cp /etc/ssl/MYCA/linux.freeswan.pem /etc/ipsec.d/
cp /etc/ssl/MYCA/cacert.pem /etc/ipsec.d/cacerts
cp /etc/ssl/MYCA/crl.pem /etc/ipsec.d/crls/crl.pem
- Configuraremos nuestro servidor linux para que se entienda con win:
cat > /etc/ipsec.secrets #y pasteamos, en password pones el pass del certificado del server linux
: RSA linux.freeswan.key "password"
- editamos /etc/ipsec.conf
Supongamos que nuestro linux y su subred siempre van a ser "left"
y los equipos que se conecten a el (como los Windows) van a ser right.
Ok, os pongo comentarios de lo que hace cada linea en el archivo y su
configuración correcta:
vi /etc/ipsec.conf
config setup
#aquí ponemos la interfaz a la que va a afectar el túnel siempre
#con ipsecX=interfaz,siendo la X un 0,1,2,3, etc., podemos crear
#muchos interfaces ipsec.
interfaces="ipsec0=wlan0"
klipsdebug=none
plutodebug=none
plutoload=%search
plutostart=%search
conn %default
#use RSA based authentication with certificates
authby=rsasig
leftrsasigkey=%cert
rightrsasigkey=%cert
#freeswan security gateway
#left=192.168.1.1
#leftid="@C=ES, ST=SPAIN, L=Valladolid, O=SERVIDOR MEDUSA,
#OU=medusa.homeunix.net"
#el certificado de la maquina local hay que ponerlo siempre
leftcert=linux.freeswan.pem
conn windows
#ponemos any, por si tenemos ip dinamica
# y si tenemos ip fija puedes poner la ip fija,
#pero para probar nuestro primer tunel aconsejo
#dejarlo en any, luego ya experimentareis :)
right=%any
#en la versión 1.96 los certificados hay
#que meterlos en /etc/ipsec.d/.
#Apartir de la 2,x los certificados van en /etc/ipsec.d/certs/
#CERTIFICADO DE NUESTRA MAQUINA WINDOWS
rightcert=windows.freeswan.pem
#dirección del servidor linux
left=192.168.1.1
#con esta opción iran todos los datos a
#cualquier red detrás de nuestro servidor linux-freeswan
#encriptado
leftsubnet=0.0.0.0/0
auto=start
--------------------------------------------------
- Configuración de freeswan acabada.
nota: si tenemos iptables para filtrar las conexiones, (como es logico) agregaremos un par de politicas básicas, para que toda la gente que quiera entrar por el túnel, pueda hacer la autentificación satisfactoriamente.
iptables -I INPUT -i ipsec0 -j ACCEPT
nota2: por cierto si la interfaz que hicimos alias en nuestro ipsec.conf, en la seccion setup interfaces="ipsec0=wlan0",
esta siendo utilizada por otro túnel del tipo openvpn,
paramos el tunel openvpn y despues ya lanzamos ipsec.
- Hora de lanzar nuestro freeswan:
/etc/init.d/ipsec start
- Vista de logs, tenemos varias opciones: D :
tail -n 200 /var/log/auth.log #aquí vemos las autentificaciones de ipsec
tail -n 200 /var/log/daemon.log
luego con la herramienta ipsec, nos dará un
buen diagnostico:
ipsec auto --status
ipsec auto --listpubkeys #listará los certificados
#cargados por ipsec
ipsec auto --listcacerts #para ver el certificado de nuestra
#ca.
ipsec barf #nos dará el log mas detallado
- No es preocupéis mucho de los avisos hasta que no configureis, vuestros clientes, de todos modos, os dejo unos logs orientativos,
desde que se lanza el daemon, hasta que se establece una ASOCIACION DE SEGURIDAD :D:
Jul 25 03:17:57 MeDuSa ipsec__plutorun: Starting Pluto subsystem...
Jul 25 03:17:57 MeDuSa Pluto[6970]: Starting Pluto (FreeS/WAN Version 1.96)
Jul 25 03:17:57 MeDuSa Pluto[6970]: including X.509 patch (Version 0.9.9)
Jul 25 03:17:57 MeDuSa Pluto[6970]: Changing to directory '/etc/ipsec.d/cacerts'
Jul 25 03:17:57 MeDuSa Pluto[6970]: loaded cacert file 'cacert.pem' (1464 bytes)
Jul 25 03:17:57 MeDuSa Pluto[6970]: Changing to directory '/etc/ipsec.d/crls'
Jul 25 03:17:57 MeDuSa Pluto[6970]: loaded crl file 'crl.pem' (609 bytes)
Jul 25 03:17:57 MeDuSa Pluto[6970]: loaded my X.509 cert file '/etc/x509cert.der' (1077 bytes)
Jul 25 03:17:58 MeDuSa Pluto[6970]: | from whack: got --esp=3des
Jul 25 03:17:58 MeDuSa Pluto[6970]: loaded host cert file '/etc/ipsec.d/otrocertificado.pem' (3
962 bytes)
Jul 25 03:17:58 MeDuSa Pluto[6970]: loaded host cert file '/etc/ipsec.d/certificado.pem' (395
4 bytes)
Jul 25 03:17:58 MeDuSa Pluto[6970]: added connection description "win2k-eth2"
Jul 25 03:17:59 MeDuSa Pluto[6970]: | from whack: got --esp=3des
Jul 25 03:17:59 MeDuSa Pluto[6970]: listening for IKE messages
Jul 25 03:17:59 MeDuSa Pluto[6970]: adding interface ipsec0/wlan0 192.168.1.1
Jul 25 03:17:59 MeDuSa Pluto[6970]: adding interface ipsec1/eth2 192.168.0.1
Jul 25 03:17:59 MeDuSa Pluto[6970]: loading secrets from "/etc/ipsec.secrets"
Jul 25 03:17:59 MeDuSa Pluto[6970]: loaded private key file '/etc/ipsec.d/private/clave-privada-server.key' (1720 bytes)
Jul 25 03:17:59 MeDuSa Pluto[6970]: "win2k-eth2": cannot route Road Warrior template
Jul 25 03:17:59 MeDuSa Pluto[6970]: "wifi-lerey": cannot route Road Warrior template
Jul 25 03:17:59 MeDuSa Pluto[6970]: "wifi-ibook": cannot route Road Warrior template
Jul 25 03:17:59 MeDuSa Pluto[6970]: "win2k-eth2": cannot initiate connection without knowing peer
IP address
Jul 25 03:17:59 MeDuSa Pluto[6970]: "wifi-lerey": cannot initiate connection without knowing peer
IP address
Jul 25 03:17:59 MeDuSa Pluto[6970]: "wifi-ibook": cannot initiate connection without knowing peer
IP address
ARRIBA VEMOS EL LOG, SIN CONECTAR CLIENTES A FREESWAN
-------------------------------------------------------
Jul 25 03:34:23 MeDuSa Pluto[345]: "win2k-eth2" 192.168.0.10 #8: responding to Main Mode from unkn
own peer 192.168.0.10
Jul 25 03:34:27 MeDuSa Pluto[345]: "win2k-eth2" 192.168.0.10 #8: Peer ID is ID_DER_ASN1_DN: 'C=ES,
ST=loquesea, L=loquesea, O=loquesea, OU=loqueseat, CN=loquesea
ey, E=loquesea'
Jul 25 03:34:27 MeDuSa Pluto[345]: "win2k-eth2" 192.168.0.10 #8: sent MR3, ISAKMP SA established
Jul 25 03:34:27 MeDuSa Pluto[345]: "win2k-eth2" 192.168.0.10 #9: responding to Quick Mode
Jul 25 03:34:27 MeDuSa Pluto[345]: "win2k-eth2" 192.168.0.10 #9: loquesea
Arriba vemos que el host 192.168.0.10 ha solicitado comunicación, segura, y como lo tenemos autorizado en nuestro freeswan,
se establecerá la conexión--> IPsec SA established --< este mensaje, no sabéis la alegría que da, cuando lo ves por primera vez
-------------------------------------------------------------------
CONFIGURACION DE WINDOWS XP, LA MAS DESEADA XDDD
- lo primero es llevar el certificado "/etc/ssl/MYCA/windows.freeswan.p12" al host windows, yo lo mande por samba jeje, cada cual que lo mande como quiera.
Una vez en nuestro escritorio el certificado, vamos a esta pagina
web y seguimos el procedimiento que pone:
http://support.real-time.com/open-source/ipsec/index.html
si este link esta anulado hacérmelo saber y os mando el enlace...
- Bien ahora crearemos nuestras políticas para establecer la comunicación con el freeswan.
1º Aseguramos que el servicio esta lanzado, en windows:
inicio->programas->herramientas administrativas->servicios
la directiva ipsec este automática,
2ºnos vamos al archivo en el que instalamos los utils,
c:\ipsec\ipsec.conf y lo editamos. Aquí me entro mucho dolor de
cabeza, porque lo tienes que poner a la perfección
Aun así falla, a veces.
Importante: Antes de editarlo, tener en cuenta que hay que
dejar los tabuladores en el archivo y ponerlo todo tal cual
os lo pongo en el ejemplo de abajo. Si tenéis el problema, que en el
certificado pusisteis un nombre con acentos, o ñ (cosa que no
recomiendo) en linux cuando en la consola pongáis este comando
"openssl x509 -in demoCA/cacert.pem -noout -subject" para
extraer los datos de la CA, os aparecerá caracteres raros, pero no
cometáis el fallo de ponerlo talcual os da la salida, ejemplo:
conn windows
#el any es nuestra dirección ip Windows, pero dejarlo así, por
#si os cambia
left=%any
#direccion ip del server linux,
right=192.168.1.
#ponemos el asterisco para poder conectar a todas las redes
#detrás del gateway
rightsubnet=*
#aquí ponemos lo que hemos abstraído del comando "openssl x509
#-in /etc/ssl/CA-LEREY/cacert.pem -noout -subject", en el
# servidor linux
#Si os dais cuenta, he puesto el acento en CN=Diego de León
#Ojeda, porque si lo ponéis así -> CN=Diego de le\xF3n Ojeda os
#volveréis locos porque no os funcionara el tunel.
rightca="C=ES, S=SPAIN, L=Valladolid, O=MONTAJES ELECTRICOS
LEREY, OU=medusa.lerey.net, CN=Diego de León Ojeda,
E=sakroot@medusa.homeunix.net"
#aquí puede ser lan o rsa, dejarlo en lan, o auto
network=lan
auto=start
pfs=yes
conn linux
left=%any
#nuestra dirección ip de la maquina Windows
right=192.168.0.10
#igual que arriba
rightca="C=ES, S=SPAIN, L=Valladolid, O=MONTAJES ELECTRICOS
LEREY, OU=medusa.lerey.net, CN=Diego de León Ojeda,
E=sakroot@medusa.homeunix.net"
network=lan
rekey=1800S/30000K
auto=start
pfs=yes
-Editado el archivo de arriba, lo guardamos con los cambios y lo
dejamos sin comentarios ni nada, quedaría así:
conn windows
left=%any
right=192.168.1.1
rightsubnet=*
rightca="C=ES, S=SPAIN, L=Valladolid, O=MONTAJES ELECTRICOS i
LEREY, OU=medusa.lerey.net, CN=Diego de León Ojeda,
E=sakroot@medusa.homeunix.net"
network=lan
auto=start
pfs=yes
conn linux
left=%any
right=192.168.1.10
rightca="C=ES, S=SPAIN, L=Valladolid, O=MONTAJES ELECTRICOS
LEREY, OU=medusa.lerey.net, CN=Diego de León Ojeda,
E=sakroot@medusa.homeunix.net"
network=lan
rekey=1800S/30000K
auto=start
pfs=yes
----------------------------------------------------------
Si os ha piíllado bien la configuración el xp (cosa rara, ya os diré porque), hacemos lo siguiente, para lanzar el túnel:
inicio-->cmd
cd c:\ipsec\
ejecutamos-> ipsec
veremos que carga las directivas. Posteriormente hacemos un ping (sino esta bloqueado con firewall) al server freeswan, y debería de salir esto:
ping 192.168.1.1
Negotiating IP Security # y a los instantes nos devolverá el ping,
Respuesta desde 192.168.1.1: bytes=32 tiempo<10ms TTL=64
Respuesta desde 192.168.1.1: bytes=32 tiempo<10ms TTL=64
Respuesta desde 192.168.1.1: bytes=32 tiempo<10ms TTL=64
En caso que veamos 4 veces este mensaje, es que hay algo mal -->
Negotiating IP Security
Negotiating IP Security
Negotiating IP Security
Negotiating IP Security
También nos puede devolver el ping sin que aparezca "Negotiating IP
Security" y puede estar el túnel hecho. Lo comprobamos en linux con
tcpdump -i wlan0
Una vez dentro del server, hacemos un ping al host Windows, y otro del
host Windows al linux, nos tiene que salir algo parecido a esto:
05:54:52.553750 IP 192.168.1.1 > 192.168.0.10: ESP(spi=0x5567f46e,seq=0x2)
05:54:52.557218 IP 192.168.1.10 > 192.168.1.1: ESP(spi=0x7d4d1823,seq=0x4)
05:54:53.563757 IP 192.168.1.1 > 192.168.1.10: ESP(spi=0x5567f46e,seq=0x3)
05:54:53.566986 IP 192.168.1.5 > 192.168.1.1: ESP(spi=0x7d4d1823,seq=0x5)
fijaros arriba en ESP, si sale esp "Bieeeen¡¡¡¡
En caso de no ver ESP, puede ser que el winxp no halla cojido
bien el certificado con la herramienta "c:\ipsec\ipsec.exe", entonces vamos exportarlo nosotros manualmente:
1- ejecuta inicio: y ponemos --> C:\ipsec\IPSec.msc, damos enter
y nos aparece la consola mmc. De lo que vemos en pantalla,
nos interesa la parte -->IP-nosequeenaleman, lo pinchamos
y a la derecha veremos freeswan, nos aseguramos que ponga un sí en directiva asignada,de lo contraio, pulsamos sobre freeswan botón derecho y asignar. Sin cerrar la mmc, probamos el ping, si sigue mal la cosa, volvemos a la mmc y pinchamos Dos veces sobre freeswan; lo que vamos a hacer es remarcar los certificados en las cuatro reglas de seguridad
que nos aparecen como "host-window windows-host etc.", la ultima que pone, respuesta predeterminada ni la tocamos.Ahora vamos a hacer los mismos pasos en las cuatro reglas. "Importante" hacerlo bien en todas, aceptando y tal:
doble click en windows-host:
nos sale nueva pantalla-->pestaña-métodos de
autentificación->doble clic "entidad emisora"-> examinar>
seleccionamos nuestro certificado y aceptamos todo hasta volver
a la ventana reglas de seguridad. Hacer esto con las otras 3
reglas exactamente igual.
Una vez seleccionado el mismo certificado en las cuatro reglas
de seguridad, le damos aplicar, cerrar.
Volvemos a la mmc, damos botón derecho en freeswan>desasignar y
otra vez botón derecho>asignar,
Con lo expuesto arriba, nos puede salvar la vida, probamos el ping y debería de ir todo bien, sino os va, mirar los logs en el servidor linux
Y con esto acabo el documento, espero que os valga de algo jejje.
Si tenéis algún problema, sakroot@medusa.homeunix.net o en el irc,
Servidor irc.debian.org #debian-es nick sakroot.
Agradeceria vuestros comentarios sobre el documento y vuestras
experiencias :)
Un saludo a todos.
DOCUMENTO GPL |
|
|
|
|
|
Comentarios Es posible que se hayan omitido algunos comentarios considerados poco constructivos
| 1. Re: Freeswan (ipsec) como pasarela para clientes Windows 2ºparte (26/07/2004 09:07, #22532) Por: juanma (http://diariolinux.com) |
Creo qu es mejor dejarlo como está.
Una cosa es que en ambientes menos académicos se utilicen expresiones más vulgares, por otra parte jocosas, y otra es que en este pedazo de artículo (que me viene como anillo al dedo) se le pongan acepciones que creo están fuera de lugar. | No es pot respondre |
2. Re: Freeswan (ipsec) como pasarela para clientes Windows 2ºparte (27/07/2004 02:59, #22543) Por: sakroot (http://www.freeswan.org) |
Gracias Juanma, he decidido dejarlo como esta, porque creo
que hay gente que llegaria a confusiones :) | No es pot respondre |
|
3. Re: Freeswan (ipsec) como pasarela para clientes Windows 2ºparte (08/08/2004 07:54, #22688) Por: therion |
| Un saludo sakroot, disculpa mi ignorancia pero apenas comienzo en este mundo de Linux, es por eso que te formulo las siguientes preguntas: ¿Lo que explicas en este mini howto es posible aplicarlo en otros distros Linux?, ¿En donde puedo localizar un howto en donde se explique como puedo trabajar lo que explicaste pero unicamente sobre distros Linux, sin meternos con Windows? | No es pot respondre |
4. Re: Freeswan (ipsec) como pasarela para clientes Windows 2ºparte (10/08/2004 01:49, #22715) Por: sakroot (http://www.freeswan.org) |
Lo que explico es aplicable a todas las distros, lo único que puede cambiar es el apt-get install kernel-patch-freeswan. En otra distro
puede haber un paquete parecido, pero sin parchear los fuentes con certificados. Pero para que que no tengas problemas te bajas los fuentes y lees el INSTALL y parcheas el certificado a freeswan y luego al kernel.
Sobre el HOWTO, no se donde habra uno sobre freeswan
linux&linux, pero lo que si que te digo que mucho mas sencillo que de
win a linux. Haber si me animo y continuo el articulo con la parte de linux&linux | No es pot respondre |
5. Re: Freeswan (ipsec) como pasarela para clientes Windows 2ºparte (11/02/2005 10:38, #25285) Por: ics |
| Hola, a mí me gustaría implementarlo tb entre Linux&Linux pero no tengo ni idea de cómo hacerlo. Si hicieras un howto con linux-linux harías una gran contribución a esta comunidad. Muchísimas gracias campeón! | No es pot respondre |
|
|
6. Re: Freeswan (ipsec) como pasarela para clientes Windows 2ºparte (19/08/2004 15:57, #22878) Por: Claudia |
| Hola: Me ha parecido muy bueno tu How to, me gustaria, si es posible, recibir más información sobre más configuraciones que sea posible llevar a cabo con Freeswan, ya sea en Linux o en Windows, o en los dos. Estoy trabajando en un proyecto de seguridad y estoy muy interesada en el tema. Gracias de antemano por su atención!! | No es pot respondre |
7. Re: Freeswan (ipsec) como pasarela para clientes Windows 2ºparte (25/08/2004 01:55, #22972) Por: therion |
| Un saludo claudia, al igual que tu, yo tambien estoy trabajando en un proyecto de seguridad, este proyecto esta encaminado a la proteccion de redes WI-FI utilizando VPN´s, autenticacion con Freeradius y encripcion, quizas podamos intercambiar nuestros puntos de vista y encontrar soluciones a los problemas que se nos lleguen a presentar.. | No es pot respondre |
|
8. Re: Freeswan (ipsec) como pasarela para clientes Windows 2ºparte (07/12/2004 17:25, #24588) Por: Anónimo |
| HOla *-*
Yo normalmente uso esta configuración para windows 2k, ahora estoy experimentando con win XP, pero tengo dos problemas, el primero no me imprime: en win2k yo lo unico que hacia era compartir las impresoras en la conexión que hacia a internet. En XP estoy tratando de hacer lo mismo y no me funciona, no envia la impresion. No se que ha pasado, alguien puede decirme si debo hacer algo mas??? de otro lado me esta saliendo un pequeño error al ejecutar el ipsec.exe: no se encuentra el punto de entrada del procedimiento ?DSLibRelease@DSLibRefCount@UAEXXZ en la biblioteca de vinculos dinámicos polstore.dll
Yo busco este archivo y si lo veo presente en mi carpeta windows\system32.
Puede ser esto la causa de que no me imprima???
Agradezco cualquier información al respecto.... | No es pot respondre |
9. Re: Freeswan (ipsec) como pasarela para clientes Windows 2ºparte (10/02/2005 10:19, #25274) Por: Anónimo |
| Hola, antes de nada gracias por adelantado.
Mi problema es que no tengo mucha idea de Linux, pero he intentado crearme una VPN entre dos máquinas, una linux y otra w_xp _sp2. He llegado a un punto en el que no se porqué no soy capaz de comunicar mis dos equipos.
He seguido este How To que es bastate bueno, asi como otro de Nate Carlson en la web:
http://www.natecarlson.com/linux/ipsec-x509.php
que también es bastante bueno, aunque lo usa con Openswan en vez de freeswan.
Tengo un distribución debian 2.06
y una freeswan 2.04
He generado los certificados x509 creo que satisfactoriamente, porque he sido capaz de firmarlos por una CA que también me he generado.
He configurado el ipsec.conf tanto en la máquina linux como en la w_xp_sp2....y tras numerosos intentos, no sabes cuantos, cuando todo parecía que iba bien.....me aparece:
al ejecutar la instrucción: tail -f /var/log/auth.log
.....
packet from 83.xx.xx.xx:500: ignoring Vendor ID payload[fragmentation]
packet from 83.xx.xx.xx:500: ignoring Vendor ID payload[draf-ietf-ipsec-nat-t-ike-02_n]
packet from 83.xx.xx.xx:500: ignoring Vendor ID payload[26244d.........]
Al intentar hacer ping desde la máquina w_xp al linux, no me hace ping, pero intente negociar la seguridad. He intentado solucionarlo de la forma que propones, pero nada.
Me encantaria que me pudieses ayudar. Si decides hacerlo, te mandaria toda la configuración del ipsec.conf de la máquina linux, asi como la de la m´quina w_xp_sp2. Si decides que no, solo decirte gracias por haberte leido esto, y por este mini How To que esta muy completito. Un saludo
David
Mi correo: damer_s@hotmail.com | No es pot respondre |
10. Re: Freeswan (ipsec) como pasarela para clientes Windows 2ºparte (20/04/2005 18:00, #26315) Por: sexsam |
| - Configuraremos nuestro servidor linux para que se entienda con win:
cat > /etc/ipsec.secrets #y pasteamos, en password pones el pass del certificado del server linux
: RSA linux.freeswan.key "password"
hola podrias comentar esta linea 1 poco mas detalladamente, la verda esk no acabo de entenderla.
Gracias... | No es pot respondre |
|
|
|
|---|
|
|
|
|
Calificacion
    Vots: 13 |
Danos tu opinion:
|
|
|
|
|
|
|