VPN con Hamachi y NxFree

Son mas de las 2:30 de la mañana y estoy conectado al ordenador de mi empresa preparando el trabajo que hare mañana (mejor dicho, el trabajo que hare hoy). Ahora desconectare, dormire un par de horas (3 o 4) y me levantare temprano para ir a trabajar. Pero ya he ido adelantando algo del trabajo y eso es gracias a la magia de la “VPN”.

¿Que es una VPN?

Pues imaginate por ejemplo un ordenador en Madrid, un ordenador en Francia y otro ordenador en China que se unen y se ven entre si (unos ven las ips de los ottros) creando una especie de red de area local entre ellos a pesar de la distancia. Para ello emplean la infraestructura de internet, pero en esa red que crean, solo ellos se ven entre si, el resto de usuarios de internet no entran a esa red a menos que se les “invite”.
Mas o menos una VPN es esto.
¿Para que puede servir?

Pues en mi caso para conectarme al ordenador de mi empresa y trabajar desde mi casa como si fisicamente estuviera delante del ordenador de la oficina. Asi si por ejemplo un dia me apetece quedarme en casa, me quedo y seguramente nadie me echara en falta.
O en tu caso por ejemplo para crear una red “solo” con tus amigos y poder echar partidas online a ese juego que tanto te gusta.

¿Parece interesante, no?. Veamos como podemos crear una red VPN y como poder manejar un ordenador de manera remota.

Para montar una VPN, vamos a emplear Hamachi.
Primer paso es descargar hamachi, desde la siguiente direccion y compilarlo:

$ cd hamachi
$ make


Si tienes problemas puedes leer el fichero README incluido con el codigo fuente.

Una vez instalado como root ejecutamos:

$ /sbin/tunecfg
$ hamachi-init
$ hamachi start
$ hamachi login

Y ya tenemos hamachi ejecutandose. Nos habra asignado una IP de hamachi.

Si ahora queremos unirnos a una red VPN ya existente ejecutariamos:

$ hamachi join NOMBRE_DE_LA_RED

Y tras introducir la password de esa red, ya estariamos dentro. Podriamos hacer un ping al resto de integrantes de la red para comprobarlo.

Si en cambio queremos crear una VPN introducimos el nombre deseado

$ hamachi create MI_PROPIA_RED

Si el nombre no esta pillado (ocupdo) ya nos crea el enlace. en otro caso
debemos elegir otro nombre.
Nos pedira password, especificamos una, esa sera luego la password
que deberan poner el resto de usuarios (cuando hagan un join) si quieren añadirse a nuestra red.

Volvamos al paso de unirnos o asociarnos a una red ya existente, ejecutamos:

$ hamachi join MI_PROPIA_RED

con el nombre de la red a la que queremos unirnos.
Nos pide el password, lo ponemos y ya estamos dentro de la VPN.

con list obtenemos la lista de maquinas que estan actualmente unidas a la VPN:

$ hamachi list

root@soledad:~# hamachi list
* [UBUNTULIFE_VPN]
* 5.0.33.332                                  192.168.33.333:1449
5.221.33.240
5.221.22.124
5.222.22.13

Es importante ejecutar:

$ hamachi go-online

Para poner en estado “online”, en otro caso nuestro equipo sera visible pero el resto de usuarios no podran conectar con el.
Esto se indica con un * en la lista de equipos, * indica aquellos que estan on-line y disponibles
+ indica aquellos equipos con los que se ha perdido la conexion.

Otro comando util es “set-nick” permite ponernos un nick o alias al nombre de nuestro PC. a su vez con get-nicks recuperamos los nicks del resto de integrantes de la VPN, lo que es util cuando hay muchos usuarios conectados, asi podremos saber quien es quien.

root@soledad:~# hamachi get-nicks
Retrieving peers' nicknames ..
root@soledad:~# hamachi list
* [UBUNTULIFE_VPN]
* 5.0.33.122       Jacobo-Curro               192.168.22.22:1449
5.221.33.50    Juan
5.221.33.24    anonymous
* 5.222.33.13       Jacobo-Casa                58.17.22.11:20482

Con esto ya tenemos la VPN montada. Hemos creado una red (create) y el resto de usuarios se ha unido a nuestra red (join). Seria bueno añadir un script del tipo:

#!/bin/bash
case "$1" in
start)
hamachi-init
hamachi start
hamachi login
hamachi join NUESTRA_RED password
hamachi go-online NUESTRA_RED
hamachi set-nick Nuestro_Nick
#hamachi list
;;
stop)
hamachi logout
hamachi stop
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac

En el /etc/init.d para que se cree la VPN cada vez que nos iniciemos sesion y nos asociemos, cada vez que arranquemos el PC. para eso fijamos que se ejecute este script en los diferentes niveles de arranque:

root@soledad:/etc/init.d# update-rc.d hamachi defaults
Adding system startup for /etc/init.d/hamachi ...
/etc/rc0.d/K20hamachi -> ../init.d/hamachi
/etc/rc1.d/K20hamachi -> ../init.d/hamachi
/etc/rc6.d/K20hamachi -> ../init.d/hamachi
/etc/rc2.d/S20hamachi -> ../init.d/hamachi
/etc/rc3.d/S20hamachi -> ../init.d/hamachi
/etc/rc4.d/S20hamachi -> ../init.d/hamachi
/etc/rc5.d/S20hamachi -> ../init.d/hamachi

Una cosa importante: Cuidado con los firewalls, que podria ser que al estar activo, no te deje alcanzar el resto de equipos, es decir, hacemos un ping al resto de equipos que nos sale en la “hamachi list” y no los alcanzamos. Si acaso tenemos un firewall activo, lo deshabilitamos.

En mi caso, deshabilito el firewall firestarter:
$ /etc/init.d/firestarter stop

Para comprobar que todo va bien, tambien podemos comprobar nuestra ip que nos asigna Hamachi.
Con ifconfig podemos ver nuestra ip de VPN:

ham0      Link encap:Ethernet  HWaddr 0A:98:C4:16:AC:FE
inet addr:5.221.33.36  Bcast:5.255.255.255  Mask:255.0.0.0
UP BROADCAST RUNNING MULTICAST  MTU:1200  Metric:1
RX packets:31 errors:0 dropped:0 overruns:0 frame:0
TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:4914 (4.7 KiB)  TX bytes:3405 (3.3 KiB)

Existe una aplicacion grafica llamada hamachi-gui que nos permite hacer todos estos pasos que hemos hecho desde consola.
Nos bajariamos el paquete .deb correspondiente y con doble click lo instalamos. despues desde consola ejecutando:

$ hamachi-gui

la iniciamos:

Con la aplicacion grafica podemos hacer lo mismo que hemos hecho antes con la consola: Crear una red nueva VPN (create), asociarnos a alguna red VPN ya existente (join) o ver nuestra IP y la del resto de equipos que estan conectados.

Bien, en este punto hemos creado una red VPN (uno de nosotros) y el resto de equipos se ha unido (join) pero claro, poco mas podemos hacer. unos a otros se hacen ping y ven que se alcanzan. Si quisieramos jugar a un juego online, uno de los equipos montaria el server y el resto ya podria acceder indicando en las opciones del juego que pertenecen a la misma LAN. Pero si queremos hacer mas cosas, lo que tenemos que hacer es montar un servidor en uno de los equipos.
Asi lo tengo yo montado, tengo una VPN entre mi PC de trabajo y mi PC de casa, y en mi PC de trabajo monte un servidor ssh, de esta manera accedo a los recursos del PC de trabajo.

Para montar un servidor SSH puedes consultar este tutorial.

Si montas un servidor SSH en uno de los PCs que forman parte de la red VPN ya puedes acceder a el desde la consola de la forma:

$ ssh usuario@servidor_remoto

O incluso si usas nautilus, empleando la URL: ssh://user@servidor_SSH/ruta

Ejemplo:

Para Konqueror es igual, pero empleando como URL: fish://user@servidor_ssh/ruta

Aqui ya depende de lo que quieras servir/ofrecer en el equipo. Hemos instalado un servidor SSH, pero podriamos instalar un web server, o cualquier otro tipo de servicio. De todas formas con SSH nos basta y sobra para acceder por consola al equipo remoto, a su sistema de fichero y es seguro, pues la comunicacion va encriptada. Incluso con SSH podemos hacer Port forwarding.

Port forwarding

El port forwarding es util cuando queramos acceder a una maquina/puerto de la red, a traves del equipo que hace de servidor SSH.
Lo que hacemos es mapear un puerto local de nuestra maquina, conectar mediante ssh al SSH server y solicitar peticiones al otro equipo:puerto que es accesible mediante la maquina que hace de SSH server.

Es decir empleamos un puerto local de nuestra maquina como si fuera el puerto de otra maquina a la que podemos acceder mediante el servidor SSH.
Lo intentare explicare mejor. Por ejemplo tenemos:

– nuestro pc en casa : LOCAL
– el pc remoto con el SSH al que llamaremos SSH_SERVER
– y otro PC de la red remota donde esta una base de datos y que llamaremos ORACLE_SERVER

Supongamos que desde casa queremos conectar con la base de datos,
a priori no podemos, pq no tenemos acceso a esa maquina (ORACLE_SERVER)
solo tenemos acceso al SSH_SERVER. pero a traves de este SSH_SERVER
si que podemos acceder a la maquina de la base de datos. Asi que vamos a usar a este SSH SERVER como intermediario. Vamos a mapear un puerto de los de nuestra maquina local (p.ej 8888 ) para simular que es el puerto 1521 (puerto por defecto de la base de datos Oracle) de la base de datos remota. Asi cuando ataquemos al 8888 local, realmente estaremos atacando al puerto
1521 de ORACLE_SERVER pero a traves del tunneling SSH que se habra creado.

Esto lo hariamos asi:

$ ssh -v -L 8888:ORACLE_SERVER:1521 -p 22 SERVIDOR_SSH

Donde:

-v : Modo verbose, vete contandome todo lo que va pasando
-L : indica cual es el puerto local que quiero usar
Luego vendria la IP remota y el puerto remoto
-p : indica el puerto del SSH (22 es el valor por defecto del SSH, pero podriamos estar usando otro)
y por ultimo la direccion IP del servidor SSH

Existe una aplicacion para facilitar la creacion de estos tuneles. Se llama gSTM.
Ahora la prueba de fuego.
conecta con tu cliente SQL a localhost:8888
si estamos viendo las tablas de ORACLE_SERVER del puerto 1521 a traves de nuestro puerto local 888, significa que el Port forwarding lo hemos ejecutado bien, y realmente estamos accediendo a traves del tunel SSH.

Pero estar accediendo al equipo remoto mediante ssh (la consola) y port forwarding es un poco “rollo”. No seria mejor poder acceder a nuestro PC remoto como si realmente estuvieramos sentado delante de el.

Vamos a ver como conseguirlo. Y como un ejemplo de ello te muestro una pantalla de mi Pc local, si te fijas estoy accediendo a mi PC del trabajo mediante una sesion remota.Es genial!! desde mi casa estoy controlando el PC de mi oficina.

La magia ahora es de NxFree. NX Free es parecido a VNC, pero tiene la ventaja de que comprime
las X, asi que es bastante rapido, NXFree lo unico que requiere es tener instalado en el ordenador remoto,ssh y eso ya lo teniamos. Asi que procedemos a su instalacion.

En el ordenador que queramos controlar via NX Free, instalamos los 3 siguientes paquetes (que descargamos desde aqui)

Los descargamos y los instalamos en este orden:

$ sudo dpkg -i nxclient_3.2.0-9_i386.deb
$ sudo dpkg -i nxnode_3.2.0-8_i386.deb
$ sudo dpkg -i nxserver_3.2.0-11_i386.deb

Después debemos configurar lo siguiente, Editamos el fichero de configuracion de ssh:

$ sudo gedit /etc/ssh/sshd_config

y añadimos esta linea al final del archivo:

AuthorizedKeysFile /usr/NX/home/nx/.ssh/authorized_keys2

Reiniciamos ssh:

$ sudo /etc/init.d/ssh restart

Comprobamos que todo funciona bien

$ sudo /usr/NX/bin/nxserver –status

root@soledad:~/Desktop# sudo /usr/NX/bin/nxserver --status
NX> 900 Connecting to server ...
NX> 110 NX Server is running.
NX> 999 Bye.

Con esto queda instalado el servidor en el Pc y como podemos acceder a el a traves de su IP de hamachi cuando estamos unidos a la red VPN, significa que podemos controlarlo remotamente mediante nuestro usuario de ssh.

Bien, si queremos controlarlo desde otro PC con Linux, basta con instalar el cliente de Nxfree (nxclient_3.2.0-9_i386.deb) Si en cambio queremos controlarlo desde una maquina con Windows, el
cliente para Windows de NxFree esta aqui.

Con esto se instala una entrada en Aplicaciones > Internet > NXClient for Linux desde ese menu podemos acceder a un Wizard donde podemos configurar los equipos remotos a los que queremos acceder.
El equipo remoto debe tener instalado NXFree Server y SSH y ser accesible (pertenecer a nuestra VPN), pero con este asistente podemos definir el acceso a tantos equipos como queramos.
Bastaria con poner la IP del equipo remoto (la que nos habra dado Hamachi para ese PC de acuerdo a nuestra VPN), y el escritorio que usa el equipo (Gnome o KDE por ejemplo). Despues a la hora de conectar, indicamos el usuario y password SSH del equipo remoto y ya estariamos dentro de ese PC. Te recuerdo que NXfree trabaja sobre SSH.

Resumen: Hemos creado una VPN para formar una red interna entre los equipos que queramos e instalado NXFree en uno de ellos para poder acceder remotamente desde otro de esos equipos que forman parte de la VPN.
Son las 4 de la mañana y ahora “si” que me voy a dormir. Espero que sirva este tutorial y si tenemos que mejorarlo, ya sera otro dia…

25 Responses to “VPN con Hamachi y NxFree”


  1. 1 xgamanet junio 9, 2008 de 4:02 am

    Excelente lo voy a probar ya que anteriormente en el 7.10 no lo pude instalar, a ver como sale con el 8.04

    Saludos!!

  2. 2 peperolo junio 9, 2008 de 7:16 am

    Desde casa no se curra y menos horas extras. Sacrílego.

  3. 3 t.a.c. junio 9, 2008 de 7:52 am

    Yo he tenido varios problemas con redes vpn (incluso tenía que reiniciar el router), pero no he probado ultimamente.

    Yo usaba kvpn.

    un saludo

  4. 4 namyspace junio 9, 2008 de 8:07 am

    Muy buen tutorial… te felicito por el esfuerzo pero no son horas de
    currar

    Saludos

  5. 5 albertjh junio 9, 2008 de 10:07 am

    Buenísimo este tutorial, increíble de verdad….

  6. 6 psytux junio 9, 2008 de 2:20 pm

    Excelente tutotial!!!

  7. 7 oaglp junio 11, 2008 de 4:38 am

    holaaa
    sabes de algun tutoria sobre openvpn

  8. 8 PSN junio 11, 2008 de 6:15 pm

    Espléndido tutorial, ha funcionado todo a la perfección y qué diferencia de velocidad en comparación con VNC a través de Hamachi.

    Una duda ¿es conveniente desactivar la encriptación? se supone que hamachi está ya encriptando el tráfico ¿se ganaría velocidad?

  9. 9 piponazo junio 13, 2008 de 1:34 pm

    Menudo post más currado! Me lo guardo en los marcadores porque me hará falta dentro de poco :P.

  10. 10 superpiwi junio 13, 2008 de 6:12 pm

    se gana en velocidad pq comprime la informacion de las X.
    lo que me preguntas no se si se ganaria en velocidad, creo que ya depende de mas factores, como el PC que encripta y el que desencripta, pero yo en principio mantendria la encriptacion, cuanto mas seguro sea nuestro canal de comunicacion, mejor. no creo que a nadie le gustara que alguien se colase en su pc, o nos robase nuestras contraseñas.

  11. 11 superpiwi junio 13, 2008 de 6:13 pm

    @oaglp

    buscando en google he encontrado varios.
    pero si tengo tiempo, creo que publicare la version de OpenVPN.

  12. 12 wittycasla junio 17, 2008 de 9:24 pm

    Yo tengo un problema, al cliquear en la “tuerquita” azul de abajo se me cierra el Hamachi.

    Yo lo uso en Windows y espero poder hacerlo en Ubuntu.

    Alguien sabe por qué se me cerrará?

  13. 13 Knightab julio 15, 2008 de 6:46 pm

    me parece muy interezante el tutorial, he probado hamachi solo en windows con amigos para jugar, pero intentare hacer todo lo de esta guia con ubuntu a ver q tal me va…..

    una pregunta: puedo acceder con los programas q apuntas arriba remotamente de windows a ubuntu y viceversa??? yo uso logmein solo entre windows pero como no me gusta usar Window$ quiero acceder desde ubuntu a maquinas con xp o vista (y por q no? viceversa)

    gracias de antemano un saludo desde Caracas Venezuela

  14. 14 superpiwi julio 15, 2008 de 6:54 pm

    @Knightab

    Por desgracia el NX Server solo esta disponible para Linux y Solaris. Desde Windows si que existe un cliente, asi que desde Windows puedes acceder a Ubuntu por ejemplo. Pero si quieres el paso inverso, deberias montar algo parecido a lo que comentan aqui:

    http://www.nomachine.com/ar/view.php?ar_id=AR02D00349

    Al no existir un NX server para Windows, tienes que montar el NX es un Linux o Solaris que actue como pasarela y a su vez esta maquina debe ser capaz de ejecutar aplicaciones windows remotamente.
    Desconozco si habra alguna otra solucion mas sencilla.

  15. 15 ktostereo octubre 2, 2008 de 5:46 am

    que buenos tips!!!
    voy a ponerlo en práctica a penas tenga tiempo!
    Saludos.

  16. 16 perico9 diciembre 8, 2008 de 7:08 pm

    Yo aqui también lo explico de manera más sencilla.

  17. 17 Cristian enero 26, 2009 de 9:46 pm

    Gracias por la guia amigo. Me ha servidor muchisimo, y he aprendido bastante. Los pasos en Gentoo cambian un poco, pero no tuve mayores problemas.

    Un saludo.

  18. 18 jcniebles junio 3, 2010 de 12:58 am

    Como te ha ido configurando para que la impresora local (la de tu casa) se vea al momento de conectarse al servidor ?


  1. 1 Instalando TrackMania Nations en Ubuntu Hardy « Ubuntu Life Trackback en junio 24, 2008 de 5:23 pm
  2. 2 Con mis movidas… y mis lios » Instalando TrackMania Forever en Ubuntu Hardy Trackback en junio 25, 2008 de 3:29 pm
  3. 3 Con mis movidas… y mis lios » Instalando TrackMania Forever en Ubuntu Hardy Trackback en junio 25, 2008 de 3:29 pm
  4. 4 Escritorio virtual con KDE 4.1 « Ubuntu Life Trackback en julio 8, 2008 de 10:35 am
  5. 5 Con mis movidas… y mis lios » Una de servidores Trackback en julio 23, 2008 de 10:20 am
  6. 6 Solucionado “Authentication Failed error” en Free NX Server « Ubuntu Life Trackback en agosto 7, 2008 de 7:38 pm
  7. 7 Windows 7 RC1 gets special Features Trackback en abril 27, 2009 de 1:57 am

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s







¿Es compatible tu equipo con Ubuntu?


( Muchos fondos de pantalla, aqui )

DESCARGATE SCIFI LIFE

365 Dias de Soledad
Me debes los sueños, las promesas y las noches rotas. Me debes la paz, la sonrisa y la esperanza robadas. Me debes la sangre, las lágrimas y el sudor vertido. Me debes las noches vacías, los abrazos anhelados. Me debes un beso de ajenjo de tu amarga boca.

The Ubuntu Counter Project - user number # 11961
Geo Visitors Map
junio 2008
L M X J V S D
« May   Jul »
 1
2345678
9101112131415
16171819202122
23242526272829
30  

Blog Stats

  • 30.928.004 hits

A %d blogueros les gusta esto: