VPN v Ubuntu - Hamachi

Tagged:

Většinu času jsem v Praze, a když je potřeba nakonfigurovat něco na domácích počítačích, tak není úplně ideální zjišťovat, co se stalo pomoci Skypu, jabberu a následně je vést k vyřešení problému. Proto jsem se rozhodl to vyřešit nějak lépe. :)

Většinu času jsem v Praze, a když je potřeba nakonfigurovat něco na domácích počítačích, tak není úplně ideální zjišťovat, co se stalo pomoci Skypu, jabberu a následně rodiče vést k vyřešení problému. Proto jsem se rozhodl to řešit nějak lépe. :)

Požadavky

  • musí to fungovat v Ubuntu
  • musí to fungovat přes NAT
  • nesmí to být příliš komplikované zprovoznit

Získání hamachi

Rozhodl jsem se použít hamachi, které má i verzi pro linux.

Ze serverů hamachi je nutné stáhnout poslední dostupnou verzi, rozbalit ji a nainstalovat ji jako root. V následujícím kusu kódu stačí do HAM_VER přiřadit číslo poslední verze.

HAM_VER=0.9.9.9-20-lnx
wget "http://files.hamachi.cc/linux/hamachi-${HAM_VER}.tar.gz"
tar -xzf hamachi-${HAM_VER}.tar.gz
cd hamachi-${HAM_VER}
sudo make install

Toto je nutné provést na každém počítači jako první krok.

tuncfg

Nejdříve je nutné, aby se automaticky spouštělo tuncfg, které vytváří virtuální síťové zařízení.

K tomuto účelu se hodí následující skript, který je navíc nutné nastavit, aby se spouštěl během bootování.

#! /bin/sh
 
case "$1" in
  start)
        /sbin/tuncfg
        ;;
  stop)
        killall tuncfg
        ;;
  restart|force-reload)
        $0 stop
        $0 start
        ;;
  *)
        echo "Usage: tuncfg {start|stop|restart|force-reload}" >&2
        exit 3
        ;;
esac

Tento soubor je nutné uložit do souboru /etc/init.d/tuncfg (1. řádek následuícího skriptu). Aby bylo možné pokračovat v instalaci hamachi rovnou i tento skript spustíme.

sudo gedit /etc/init.d/tuncfg
sudo update-rc.d tuncfg defaults 85
sudo chmod a+x /etc/init.d/tuncfg
sudo /etc/init.d/tuncfg start

Vytvoření sítě

Nejdříve je nutné hamachi klienta incializovat, aby se dal začít používat. Následně je možné hamachi spustit a vytvořit síť.

Parametr -n u inicializace udává jméno uživatele v síti hamachi. Název sítě musí být unikátní v rámci celé hamachi sítě.

hamachi-init -n $USER
hamachi start
hamachi login
hamachi create [nazev] [heslo]

Tento krok je nutné provést jednou na libovolném počítači.

hamachi

Pro automatické spouštění hamachi je nutné vytvořit spouštěcí skript. V následujícím kódu je nutné nastavit název a heslo sítě.

#! /bin/sh
HAM_CONF=/root/.hamachi
 
# konfigurace
HAM_NET=[nazev]
HAM_PAS=[heslo]
 
 
case "$1" in
  start)
        hamachi -c $HAM_CONF start
        hamachi -c $HAM_CONF login
        sleep 2;
        hamachi -c $HAM_CONF join $HAM_NET $HAM_PAS
        hamachi -c $HAM_CONF go-online $HAM_NET
        ;;
  stop)
        hamachi -c $HAM_CONF go-offline $HAM_NET
        hamachi -c $HAM_CONF logout
        hamachi -c $HAM_CONF stop
        ;;
  restart|force-reload)
        $0 stop
        $0 start
        ;;
  *)
        echo "Usage: hamachi {start|stop|restart|force-reload}" >&2
        exit 3
        ;;
esac

Tento kód je potřeba uložit do souboru /etc/init.d/hamachi (2. řádek následujícího kódu). Před prvním spuštěním hamachi je opět nezbytné inicializovat prostředí a nastavit automatické spouštění hamachi klienta.

sudo hamachi-init -c /root/.hamachi -n `hostname`
sudo gedit /etc/init.d/hamachi
sudo update-rc.d hamachi defaults 90
sudo chmod a+x /etc/init.d/hamachi
sudo /etc/init.d/hamachi start

Administrace sítě

Na počítači, ze kterého chceme spravovat takto vytvořenou síť je nutné provést konfiguraci tuncfg, inicializaci hamachi a připojit se do vytvořené sítě.

hamachi-init -n $USER
hamachi start
hamachi login
hamachi join [nazev] [heslo]
hamachi go-online [nazev]

Závěr

Zvolené řešení není úplně bezpečné - 2 programy zbytečně běží pod rootem, ale není problém toto vyřešit vytvořením dalšího uživatele.