Hamachi: una semplice VPN distribuita

Hamachi

Un mio collega che utilizza Fastweb mi ha fatto notare che le normali VPN PPTP non funzionano attraverso la rete Fastweb, non conosco la ragione o un modo di aggirare questo limite di Fastweb ma Hamachi, una VPN distribuita e senza configurazione (zero configuration), è in grado di superare questi problemi.

Si presenta molto utile per la semplicità di utilizzo e per il suo funzionamento su Windows, Linux e OSX. Con praticità potremo disporre di tutte le macchine collegate, usare le risorse condivise con Samba o connetterci tramite VNC o altre metodologie e persino con videogiochi.

L’installazione non è così semplice come potrebbe sembrare e richiede un po’ di attenzione su Ubuntu. Iniziamo scaricando il pacchetto per Linux da https://secure.logmein.com/products/hamachi/list.asp (lasciamo stare il frontend grafico, ha tantissimi problemi, ci ritorneremo più avanti) ad oggi chiamato hamachi-0.9.9.9-20-lnx.tar.gz, apriamo un terminale e scriviamo:

tar xvzf hamachi-0.9.9.9-20-lnx.tar.gz

Verrà decompresso il file tar.gz riportando:

hamachi-0.9.9.9-20-lnx/
hamachi-0.9.9.9-20-lnx/Makefile
hamachi-0.9.9.9-20-lnx/LICENSE
hamachi-0.9.9.9-20-lnx/README
hamachi-0.9.9.9-20-lnx/LICENSE.tuncfg
hamachi-0.9.9.9-20-lnx/LICENSE.openssh
hamachi-0.9.9.9-20-lnx/LICENSE.openssl
hamachi-0.9.9.9-20-lnx/hamachi
hamachi-0.9.9.9-20-lnx/tuncfg/
hamachi-0.9.9.9-20-lnx/tuncfg/Makefile
hamachi-0.9.9.9-20-lnx/tuncfg/tuncfg.c
hamachi-0.9.9.9-20-lnx/tuncfg/tuncfg
hamachi-0.9.9.9-20-lnx/CHANGES

Troveremo quindi una directory di nome hamachi-0.9.9.9-20-lnx contenente il programma di installazione e alcuni altri files. Spostiamoci in quella directory e installiamo Hamachi:

cd hamachi-0.9.9.9-20-lnx
sudo make install

La fase di installazione riporterà il messaggio di conferma:

Copying hamachi into /usr/bin ..
Creating hamachi-init symlink ..
Compiling tuncfg ..
Copying tuncfg into /sbin ..

Hamachi is installed. See README for what to do next.

Evitiamo per il momento le istruzioni del file README poiché su Ubuntu Gutsy si verifica uno strano bug che crea dei problemi alla decompressione del programma di Hamachi. L’eseguibile hamachi infatti risulta compresso con UPX. Installiamo upx-ucl con:

sudo apt-get install upx-ucl

Una volta installato decomprimiamo il programma hamachi come segue:

sudo upx-ucl -d /usr/bin/hamachi

Verremo quindi informati dell’avvenuta decompressione:

                    Ultimate Packer for eXecutables

Copyright (C) 1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007
UPX 3.00    Markus Oberhumer, Laszlo Molnar & John Reiser   Apr 27th 2007

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
    830676 <-    331144   39.86%    linux/386    hamachi

Unpacked 1 file.

Nulla di veramente importante da notare qui, soltanto l’ultima riga: Unpacked 1 file. Adesso siamo pronti ad utilizzare veramente Hamachi come indicato sulla guida ufficiale, digitiamo quindi:

hamachi-init

Creerà i files di configurazione e la chiave crittografica che verrà utilizzata per la comunicazione delle informazioni protette:

Initializing Hamachi configuration (/home/paperotto/.hamachi). Please wait ..

  generating 2048-bit RSA keypair .. ok
  making /home/utente/.hamachi directory .. ok
  saving /home/utente/.hamachi/client.pub .. ok
  saving /home/utente/.hamachi/client.pri .. ok
  saving /home/utente/.hamachi/state .. ok

Authentication information has been created. Hamachi can now be started with
'hamachi start' command and then brought online with 'hamachi login'.

Generalmente la creazione della configurazione e della chiave crittografica è necessaria soltanto la prima volta. Per l’utilizzo quotidiano sarà necessario avviare il servizio tun con:

sudo tuncfg

E da adesso in poi sarà possibile utilizzare i comandi di hamachi descritti qui di seguito:

  • hamachi start
    Avvia il servizio di hamachi, necessario prima di poter eseguire qualsiasi altra operazione nella rete. Sarà confermato l’avvio col messaggio:

    Starting Hamachi hamachi-lnx-0.9.9.9-20 .. ok

    E’ inoltre possibile avviare hamachi mediante il comando hamachi start debug per osservare le attività eseguite, le porte e gli indirizzi utilizzati e per diagnosticare problemi di funzionamento o di connessione.

  • hamachi
    Riporta lo stato corrente nella rete hamachi:

    Hamachi, a zero-config virtual private networking utility, ver 0.9.9.9-20
    
      version  : hamachi-lnx-0.9.9.9-20
      pid      : 8366
      status   : offline
      nickname : anonymous
  • hamachi set-nick “Nuovo Nick”
    Cambia il nick utilizzato, che gli altri utenti collegati leggeranno accanto al nostro indirizzo hamachi. Fino a che non verrà cambiato il nick saremo identificati col nick anonymous.
  • hamachi login
    Effettua il collegamento alla rete hamachi, ci sarà confermata la connessione con:

    Logging in ....>....... ok
  • hamachi create “Nome della rete” “Password di accesso”
    Crea una nuova rete con la password di accesso indicata. Per creare una rete pubblica senza password basterà ometterla come pure le virgolette.
  • hamachi join “Nome della rete” “Password di accesso”
    Aderisce ad una rete esistente di cui naturalmente conosciamo la password per l’accesso. Nelle reti a cui siamo collegati non siamo proprietari ma utenti, non avremo quindi privilegi. Se la rete non prevede alcuna password di ingresso non sarà necessario immetterla, omettendo anche le virgolette.
  • hamachi leave “Nome della rete”
    Abbandonerà la rete indicata, disconnettendoci del tutto. Non sarà possibile accedere a nessuno dei computer collegati. Possibile solo ai membri della rete ma non al proprietario.
  • hamachi delete “Nome della rete”
    Elimina permanentemente l’intera rete, disconnettendo tutti i client collegati. Possibile solamente al proprietario della rete.
  • hamachi evict “Nome della rete” 5.x.x.x
    Disconnette ed elimina dalla rete un membro, identificato dal suo indirizzo IP. Possibile unicamente al proprietario della rete.
  • hamachi go-online “Nome della rete”
    Accede alla rete indicata di cui dobbiamo già essere proprietari (con create) oppure membri (con join). Questo ci connetterà effettivamente alla rete e potremo comunicare con le altre macchine della rete.
  • hamachi go-offline “Nome della rete”
    Disconnetterà dalla rete indicata, senza abbandonarla definitivamente. Risulteremo quindi irraggiungibili dagli altri utenti della rete ma continueranno a vederci come parte della rete.
  • hamachi get-nicks
    Recupera i nick degli utenti collegati alla rete per mostrarli in seguito col comando list.
  • hamachi list
    Elenca le reti di cui facciamo parte e tutti gli utenti iscritti alla rete. Se è stato eseguito in precedenza hamachi get-nicks saranno riportati anche i nick degli utenti collegati. Il risultato sarà simile al seguente:

     * [Nuova Paperopoli]
         * 5.153.193.218    paperone
           5.144.241.101    topolino

    In questo schema gli asterischi indicano lo stato online, sia per la rete sia per gli utenti collegati. Più precisamente risultiamo collegati alla rete Nuova Paperopoli, composta da altri 2 utenti oltre il proprietario che l’ha fondata (noi stessi) ma solo l’utente paperone risulta attualmente online.

  • hamachi logout
    Disconnette completamente dalla rete hamachi e da tutte le reti di cui facciamo parte. Fino a che non ci ricollegheremo non sarà possibile eseguire comandi con la rete.
  • hamachi stop
    Chiude il servizio hamachi, disconnettendo da tutte le reti. Ricorderà lo stato precedente in modo che al prossimo avvio con start verremo ricollegati alle stesse reti in cui eravamo collegati in precedenza.

Collegati e online in una rete hamachi potremo eseguire qualsiasi operazione sia prevista. Ogni connessione su un IP di hamachi 5.x.x.x verrà diretta verso l’interfaccia ham0 gestita da hamachi. Chi fa uso di firewall dovrà configurare l’accesso verso la porta TCP 12975 utilizzata per l’autenticazione, nel caso fosse chiusa sarà tentata la connessione mediante la porta TCP 443. Tutto il traffico diretto al server invece passerà attraverso la porta di destinazione TCP 32976.

E’ possibile configurare alcune opzioni nascoste inserendole nel file ~/hamachi/config prima di avviare hamachi:

UdpPort xxxx
KeepAlive xxx
TxRate xxxx
RxRate xxxx

L’opzione UdpPort consente di regolare la porta UDP che resterà in ascolto per le connessioni tra i client, se non viene specificata verrà usata una porta casuale. KeepAlive indicherà il numero di secondi dopo i quali, in assenza di traffico di informazioni, sarà inviato un pacchetto per mantenere attiva la connessione: il valore predefinito se non indicato è 90 secondi, il minimo ammesso è 10, mentre il valore 0 indicherà di non utilizzare KeepAlive. Le opzioni TxRate e RxRate e consentono di limitare il traffico trasmesso e ricevuto in bytes per secondo.

Per ulteriori informazioni consultare il changelog per Hamachi/Linux e il forum di Hamachi.

44 Risposte a “Hamachi: una semplice VPN distribuita”

  1. Muflone Dice:

    ahahah spettacolare
    tu hai il file /usr/bin/hamachi-init che in realta` e` un collegamento a /usr/bin/hamachi-init

    in altre parole non hai hamachi-init :D

  2. Peppe Dice:

    Non so se ti può aiutare ma ho un amd 64bit 3600+

    Ho trovato altre guide in inglese sulla rete ma non vorrei fare cavolate, mi dice di abilitare nei moduli del kernel la funzione IP tunneling (chiamata tun), se vuoi puoi dare un occhiata a questo link: http://www.computechgroup.com/?p=360

    Spero riuscirai presto a trovare una soluzione a questo mio enorme problema avento un server su fastweb e senza hamachi sono letteralmente fregato!

  3. Peppe Dice:

    Muffone le righe di comando dicono che è un soft link collegato a /usr/bin/hamachi e non hamachi-init collegato a hamachi-init stesso….come risolviamo il problema??

  4. Peppe Dice:

    per tutti gli altri ti dico come ho fatto funzionare hamachi-init con queste righe di comando:

    sudo hamachi-init -c /etc/hamachi

    mi ha generato tutto e sembri funzioni tutto!!Grazie per l’aiuto!!

  5. Muflone Dice:

    ah ops avevo letto male :D

  6. Muflone Dice:

    cmq alla fine non ho capito se hai o no il file puntato da hamachi-init e se l’hai verifica che sia eseguibile

  7. machio69 Dice:

    ho un aspire one con ubuntu (linux4one per l’esattezza) ho installato passo passo senza problemi hamachi, però quando lancio hamachi start mi da questo messaggio:

    12 18:55:23.980 [ 0] [ 720] tap: bad response from tuncfg – 02000013
    12 18:55:23.980 [ 0] [ 720] open(‘/dev/net/tun’) failed with 19 (No such device)

    perché? e come risolvere?
    grazie

  8. xoen Dice:

    Ciao a tutti, scusate la mia ignoranza, a cosa serve di preciso Hamachi? per avere un TUO IP con FastWeb? Quindi è possibile ad esempio usare il computer per creare una radio in streaming o un server FTP o cose del genere ed accedere tranquillamente al proprio computer da internet?

    [OT] Siccome sto per abbonarmi a FastWeb ed uso GNU/Linux vorrei capire se avrò problemi, per quanto riguarda il router che danno ci sono problemi? Grazie mille a tutti, ciao.

  9. Muflone Dice:

    hamachi assegna un ip pubblico e statico DI HAMACHI che un altro utente hamachi puo` usare per accedere alla tua macchina anche senza essere fastweb, quella e` la funzione principale, superare le limitazioni dei router

    la radio in streaming o l’ftp si possono fare ma non hanno molto senso, potranno accedere soltanto altri utenti hamachi che siano parte della tua rete creata come indicato nella guida, chi non usa hamachi non puo` accedere ai suoi ip

    ciao

  10. Installare Hamachi su Ubuntu server | Consulente di informatica a Roma Dice:

    [...] Connessioni, Guide, Internet, Pacchetti, Windows. Segui i commenti a questo post con il feed RSS 2.0. Puoi lasciare una risposta, o mandare un trackback dal tuo [...]

Lascia un commento