Archivo para 9/06/08

Linux Mint 5 Elyssa Disponible

Ya se encuentra disponible para descarga la version 5 de Linux Mint, el ubuntu mejor que el propio ubuntu.

Enlace | Linux Mint Notas de lanzamiento

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…





¿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.908.699 hits