Ir al contenido principal

Instalación de HAMACHI en Linux (Ubuntu)

Hamachi es una aplicación gratuita (freeware) que permite crear redes privadas virtuales (VPN), esto es: simular redes locales a través de Internet, sin requerir configuración.

En esta mini guía o mini manual voy a describir los pasos que yo he seguido para instalar Hamachi en mi Kubuntu 11.10 (y también en un Ubuntu Server 11.10) como servicio que arranca automáticamente antes de iniciar sesión, y en caso de caída de la red y/o Internet se reconecte solo.

Para instalar Hamachi en Ubuntu primero hay que asegurarse que tenemos instalado el soporte de IP Tunnelling en el kernel, normalmente siempre está instalado, sino lo está no podremos continuar.

Si al ejecutar
sudo modprobe tun

no sale nada, significa que sí lo tenemos instalado.

Ahora tenemos que comprobar que está creada la carpeta de tunnelling en /dev con el comando:
ls /dev/net/tun

Si sale un mensaje que dice que no existe el fichero o directorio, hay que crearla así:
sudo mkdir /dev/net

sudo mknod /dev/net/tun c 10 200

Para x86_64 bits será necesario instalar:
$ sudo apt-get -y install build-essential ia32-libs upx-ucl

Para x86_32 bits:
$ sudo apt-get -y install build-essential upx-ucl

Ahora pasamos a instalar Hamachi:

Descargamos la última versión de http://files.hamachi.cc/linux/. Cuando escribí el post la última versión era http://files.hamachi.cc/linux/hamachi-0.9.9.9-20-lnx.tar.gz.

Nos vamos al directorio donde lo hemos descargado, extraemos el contenido del fichero, y nos vamos a dicha carpeta extraída:
tar -zxvf hamachi-0.9.9.9-20-lnx.tar.gz

cd hamachi-0.9.9.9-20-lnx/

E instalamos Hamachi:
sudo make install

sudo tuncfg

Nota: En caso que alguna de las dos líneas anteriores fallen al ejecutarse (por ejemplo en Ubuntu Server ocurre) debemos hacer:
sudo apt-get install make

sudo apt-get install binutils

Con esto ya lo tenemos instalado, ahora tenemos que configurar los permisos de usuarios.

Nos creamos un usuario para Hamachi que podamos iniciarlo solo como miembros del grupo hamachi.

Creamos el grupo hamachi:
sudo groupadd hamachi

Añadimos nuestro usuario al grupo hamachi (sustituye usuario por el nombre de tu usuario en Ubuntu):
sudo gpasswd -a usuario hamachi

Añadimos el usuario root al grupo:
sudo gpasswd -a root hamachi

Añadimos permisos:
sudo chmod 760 /var/run/tuncfg.sock

Cargamos el grupo:
sudo chgrp hamachi /var/run/tuncfg.sock

Si las dos líneas anteriores fallan, entonces debemos hacer:
touch /var/run/tuncfg.sock

Ahora pasamos a la configuración.

Nos creamos la configuración inicial:
sudo hamachi-init -c /etc/hamachi

Ahora ejecutamos hamachi:

sudo hamachi -c /etc/hamachi start

Establecemos nuestro nick de Hamachi
sudo hamachi -c /etc/hamachi set-nick NickDeHamachi

Nos loguearnos en Hamachi:
sudo hamachi -c /etc/hamachi login

Para unirnos a una red ya existente:
sudo hamachi -c /etc/hamachi join RedParaUnirnos ContraseñaDeLaRed

O para crear una red nueva:
sudo hamachi -c /etc/hamachi create RedParaCrear ContraseñaDeLaRed

Y para estar online en la red a la que nos unimos:
sudo hamachi -c /etc/hamachi go-online RedEnLaQueNosHemosUnido

Y si quisieramos desconectarnos de Hamachi:
sudo hamachi -c /etc/hamachi logout

Llegado a este punto ya estamos conectados a Hamachi, logueados y unidos online a una red.

Ahora vamos a ver como crear un script para iniciar, reiniciar y parar Hamachi:

Abrimos un editor de texto de esta forma (para Ubuntu):
sudo gedit /etc/init.d/hamachi

o de esta para Kubuntu:
sudo kate /etc/init.d/hamachi

y pegamos este código:
#!/bin/sh

### BEGIN INIT INFO

# Provides: hamachi

# Required-Start: $remote_fs $syslog $network

# Required-Stop: $remote_fs $syslog

# Default-Start: 2 3 4 5

# Default-Stop: 0 1 6

# Short-Description: Start hamachi at boot time

# Description: Starts up hamachi daemon. Networking is required.

### END INIT INFO

hamachi_start() {

echo "Starting hamachi..."

/sbin/tuncfg

/usr/bin/hamachi -c /etc/hamachi start

/bin/chmod 760 /var/run/tuncfg.sock

/bin/chgrp hamachi /var/run/tuncfg.sock

}

hamachi_stop() {

echo "Stopping hamachi..."

killall tuncfg

/usr/bin/hamachi -c /etc/hamachi stop

}

hamachi_restart() {

hamachi_stop

sleep 1

hamachi_start

}

case "$1" in

'start')

hamachi_start

;;

'stop')

hamachi_stop

;;

'restart')

hamachi_restart

;;

*)

hamachi_start

esac

Guardamos el archivo y cerramos el editor.

Con esto ya podremos iniciar, reiniciar o parar el servicio Hamachi con estos comandos:
sudo service hamachi start

sudo service hamachi restart

sudo service hamachi stop

Ahora haremos el script que sea ejecutable:
sudo chmod +x /etc/init.d/hamachi

Finalmente añadimos el script al lanzador para que se ejecute automáticamente siempre que encendamos el PC aunque no hagamos sesión:
sudo update-rc.d hamachi defaults

Si algún día queremos que nuestro servicio Hamachi no inicie automáticamente simplemente tendremos que eliminar el permiso de ejecución del script:
sudo chmod -x /etc/init.d/hamachi

Y si queremos cambiar nuestro nick o red a la que nos conectamos, con Hamachi activo ejecutamos las órdenes descritas con anterioridad para tal fin.

Ahora voy a poner como mejorar el servicio.

Algunas veces, cuando tenemos Ubuntu conectado a una red a través de Hamachi, podemos observar desde otros PCs conectados a Hamachi como aparece una admiración amarilla intermitente en la ventana de Hamachi (en el programa Hamachi de Windows), esto se soluciona de la siguiente manera:
sudo gedit /etc/hamachi/config

o si estamos en Kubuntu:
sudo kate /etc/hamachi/config

Escribimos en el editor
KeepAlive 30

salvamos y cerramos. Seguimos con estas órdenes:
su

(escribimos contraseña del usuario root)

cd

mkdir .hamachi

cp /etc/hamachi/config .hamachi/config

exit

sudo service hamachi restart

Con esto se debería solucionar el problema.

Por otro lado, otra cosa que me ocurrió es que si mientras estoy conectado a una red Hamachi desde Ubuntu (o Kubuntu) pierdo la conexión a la red o Internet, Hamachi es incapaz de volverse a conectar cuando se establezca de nuevo la conexión a Internet. En Hamachi de Windows esto no ocurre, se reconecta solo. En realidad no encontré la forma de solucionar esto, por lo que animo si alguien sabe como solucionarlo que lo deje escrito en un comentario. Lo que a mí se me ocurrió es cada X tiempo reiniciar el servicio hamachi, así si se ha caído se volverá a conectar. Lo bueno es que como el reinicio es muy rápido (menos de dos segundos) aunque estemos usando la red Hamachi en el momento del reinicio automático no pasa nada, sigue funcionando normalmente.

Para programar automáticamente el reinicio cada hora debemos hacer:
sudo gedit /etc/crontab

o en caso de Kubuntu:
sudo kate /etc/crontab

y añadimos al final del fichero que se abre:
* */1 * * * root service hamachi restart

Así conseguimos que se reinicie automáticamente cada hora.

Finalmente dejo escrito como solucionar un error que parece que pasa en Ubuntu 9.10: En el momento de ejecutar Hamachi, sale un mensaje de error que dice "Terminado (killed)". Para solucionar esto hay que ejecutar:
sudo apt-get install upx-ucl

cd /usr/bin

sudo upx -d hamachi

En caso que desde otros clientes veáis en vuestro programa Hamachi que el servidor Ubuntu se desconecta, os dejo aquí un enlace en el que proponen una solución (yo no lo he probado).
http://community.logmein.com/t5/Hamachi/hamachi-0-9-9-9-20-linux-client-to-hamachi-2-issues/td-p/30817/page/4

Con esto termino la mini guía. Si tenéis alguna aportación de como configurar más o automatizar mejor Hamachi en Ubuntu, por favor dejad comentarios.

Comentarios

Entradas populares de este blog

Cosmic Supremacy : Juego 4X online, gratuito y multijugador basado en conquistas espaciales

  Llevaba bastante tiempo buscando un juego de estrategia en el espacio, multijugador , y que fuera por turnos . Un requisito que siempre tuve es que fuera fácil aprenderlo, y tuviera suficiente ayuda o tutoriales. Creo que lo he encontrado, se llama Cosmic Supremacy , y es gratis . Os dejo aquí información traducida desde su web oficial por si os animáis :) ¿Qué es Cosmic Supremacy? Cosmic Supremacy es un juego gratuito de estrategia espacial multijugador masivo basado en ticks/turnos con una interfaz 3D 'Galaxy View'. Compartes una galaxia con cientos de jugadores, cada uno con su propia civilización alienígena. Algunos de ellos pueden llegar a ser tus enemigos, otros podrían ser tus aliados. Necesitas explorar la galaxia que te rodea, descubrir nuevos sistemas solares, colonizar nuevos planetas y expandir tu imperio. Puedes diseñar todas las naves de tu flota e investigar nuevas tecnologías avanzadas para poder construir naves más rápidas y fuertes que te darán la ventaja ...

Hacer una pausa en un fichero por lotes batch (bat o cmd)

En consola de Windows (antiguamente Ms-Dos) desde siempre se ha podido hacer una pausa, esperando confirmación del usuario. El comando en cuestión es: pause Si escribimos pause en nuestra consola veremos que la consola se queda pausada hasta que pulsamos una tecla. Esto es útil en ficheros batch (ya sean .bat o .cmd) para hacer pausas controladas entre distintos comandos, a la espera que el usuario pulse alguna tecla para continua. Pero, ¿qué ocurre si queremos una pausa de cierto número de segundos y luego continúe el proceso automáticamente ? No hay ningún comando que lo haga, pero haciendo el siguiente "truco" (hace un ping a una URL especificando el número de segundos como timeout) lo podremos conseguir ping -n 10 localhost > null Simplemente cambiar el 10 por el número de segundos que queráis, y ya tendréis en consola (o msdos) una pausa de N segundos, y luego el proceso continuará automáticamente.  

Fraude SEUR SMS

Quería comentar y advertir de los cada vez más casos de fraude vía SMS que se están sufriendo relativos a entregas de paquetes. Cada vez es más normal que tengamos varios pedidos pendientes de entrega y no nos acordemos de todos de cabeza, y si recibimos un SMS relacionado con algún pedido, pinchemos en el enlace, ¡mucho cuidado! Hoy mismo he recibido este mensaje SMS en mi móvil: SEUR: envio 7770722 de LETMEKNOW no entregado por ausencia en domicilio. Programe nueva entrega en <página web> No especifico la URL de la página web que venía en el SMS por seguridad que nadie clique ahí. Desde el princiio esto me sonó a fraude más que a equivocación, primero porque no esperaba ningún paquete, segundo porque estaba en casa cuando recibí el SMS, y finalmente la página web me resultó sospechosa, ni siquiera era https... Al recibir el SMS busqué el número de teléfono desde el que me lo habían enviado, no obtuve ninguna información. Después busqué "SMS LETMEKNOW" y llegue a un ar...