Home > Comandi Console, Connessioni, Guide, Internet, Linux, Pacchetti, Ubuntu, Windows > Hamachi: una semplice VPN distribuita

Hamachi: una semplice VPN distribuita

22 marzo 2008

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.

  1. neber
    21 febbraio 2009 alle 13:17

    Scusa ma come disinstallarlo?

  2. 21 febbraio 2009 alle 13:53

    non esiste una procedura di installazione, devi eliminare la directory .hamachi dentro la tua home e i files hamachi e hamachi-init dentro /usr/bin e /usr/sbin/tuncfg da utente root
    ciao

  3. Salvatore
    14 marzo 2009 alle 18:43

    Salve, vorrei un’informazione, ho installato Hamachi su un PC con WinXP, ho creato una rete e tutto funzionava perfettamente. Per altri motivi ho dovuto formattare il PC e dopo la formattazione ho reinstallato Hamachi…e qui mi sono trovato davanti ad un problemino: la rete l’avevo creata prima della formattazione con un IP di Hamachi diverso di quello che mi ha assegnato dopo la reinstallazione, e adesso se voglio cancellare quella rete come faccio??? Come faccio a riprendermi lo stesso IP di Hamachi della prima installazione??? Grazie Mille

  4. 14 marzo 2009 alle 18:46

    dovevi copiarti la configurazione della vecchia installazione dalla cartella .hamachi, che conteneva pure la chiave di crittografia della rete

    se non l’hai non credo tu possa riottenerlo

  5. ueghio
    07 giugno 2009 alle 9:20

    Ciao grazie per la guida.
    Ho installato correttamente hamachi su un pc fisso dal quale ho creato la vpn.
    Ora ho fatto lo stesso sul mio portatile dal quale mi vorrei connettere ma mi blocco a questo punto:
    marco@viga:~/hamachi-0.9.9.9-20-lnx$ sudo upx-ucl -d /usr/bin/hamachi
    Ultimate Packer for eXecutables
    Copyright (C) 1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007
    UPX 3.01 Markus Oberhumer, Laszlo Molnar & John Reiser Jul 31st 2007

    File size Ratio Format Name
    ——————– —— ———– ———–
    upx-ucl: /usr/bin/hamachi: NotPackedException: not packed by UPX

    Unpacked 0 files.

    Mi sapresti aiutare per favore?ciao grazie

    • 07 giugno 2009 alle 10:50

      non devi fare nulla di particolare
      procedi normalmente

  6. ueghio
    07 giugno 2009 alle 12:27

    Ok il problema era che non scompattava il file e l’ho superato ripetendo da capo la procedura (errore mio).
    In seguito,dopo aver configurato hamachi,non riuscivo a pingare l’altro client della vpn e ho risolto modificando route come spiega questo thread http://ubuntuforums.org/showthread.php?t=208692&page=2 .
    Ora si connette tranquillamente e riesco ad utilizzare samba,ssh e vnc.Grazie mille per l’ottima guida!!ciao

    • 07 giugno 2009 alle 12:45

      ottimo, ciao

  7. regina
    11 ottobre 2009 alle 18:19

    Ciao Muflone,
    grazie per la guida,sembra chè facià proppio per me.
    Non so anchora niente di reti.Vorrei collegar’mi co’l mio netbook (Asus eee 701,eeebuntu,chiavetta huawei 3,)al mio hp(ubuntu 9.0.4,fastweb via cavo)a casa.
    Se ho capito bene dovrei installare hamachi su tutte due le machine:
    hp come propietario create
    eee come utente? join
    Allora avrò pieno acesso al mio computer a casa? Mi sembra che mi sfuge qualcosa (permessi ect.)
    Sono davero ignorante.
    Ubuntu installa automaticamente un firewall?
    Grazie molto,sarebbe bello se stavolta
    mi andrebbe in porto,cosi in futuro portrei anch cambiare kalke file direttamente con kalke amica.
    grazie regina

    • 12 ottobre 2009 alle 22:03

      installando hamachi e connettendoti alla rete avrai ottenuto una rete comune e basta.
      poi devi avere i servizi che ti consentono di far comunicare i due programmi (condivisioni di cartelle, desktop remoto, ssh o altro).

      ubuntu ha un firewall preinstallato ma totalmente disattivato inizialmente, quindi come se non ci fosse.

      ciao

  8. regina
    14 ottobre 2009 alle 18:31

    GRAZIE,
    i servizi ora ci sono “samba” ,domani ariva il grande momento di
    hamachi.
    Grazie ancora
    regina

  9. Hanubis
    06 novembre 2009 alle 17:27

    Ciao, anzitutto complimenti per la guida, corretta e semplicissima da usare. L’ho seguita alla lettera, quando ho avuto la conferma che hamachi loggava ho installato il pacchetto gui. Ho solo un piccolo problema da porti. Quando addo il pc ad una rete già creata dopo l’accesso vedo i pc della rete online ma non li posso pingare, e se vado agli altri pc questo con ubuntu lo vede come parte della rete ma lo da offline. Ovviamente le prove le sto effettuando senza muraglione…. dove sbaglio?

    • 15 novembre 2009 alle 16:40

      verifica di avere la route configurata dando da terminale
      sudo route -n

Comment pages
  1. 03 marzo 2009 alle 1:15
I commenti sono chiusi.
%d blogger cliccano Mi Piace per questo: