Usare tinc per raggiungere files in una rete NATtata

Pubblicato: 8 marzo 2010 in I brividi del sistemista Unix, I brividi del sistemista Windows, Tecnico
Tag:,

Se avete una rete senza IP fisso, dietro un firewall che non potete configurare e con un NAT clamorosamente bizzarro che chi l’ha inventato muoia dimenticato su un’isola popolata solo da cloni di Berlusconi e volete ciò nonostante potervi accedere dall’esterno, molti fortunati sottoscrittori di abbonamenti Fastweb anche aziendali si riconosceranno in questa situazione, ad esempio per poter vedere o modificare i files gelosamente custoditi nei vostri NAS, ed inoltre non volete usare soluzioni commerciali come LogMeIn, beh rassegnatevi non avete speranze.

Per rendere un pochino più utile questo articolo però confiderò che è possibile simulare il comportamento di LogMeIn e rendere disponibili le risorse interne della vostra rete a patto di avere in mano una seconda rete (anche con una sola macchina) con un indirizzo IP fisso, e avere in mano significa (perlomen) poter configurare i port forwardings del suo router/firewall.

Prerequisiti:

  • tinc: “tinc is a Virtual Private Network (VPN) daemon that uses tunnelling and encryption to create a secure private network between hosts on the Internet.”
  • tinc: siate certi di installare l’ultima release (attualmente la 1.0.12), soprattutto se, come è capitato nel mio caso, APT di Ubuntu ne installa una farlocca.
  • tinc: installato ovunque.
  • Rete sfigata: non c’è modo di avere un port forwarding da un IP pubblico ad una macchina interna.
  • Rete sfigata: ho fatto le prove con Windows XP Home, e se funziona con Windows XP Home funziona con qualunque altro sistema, anche quelli operativi.
  • Rete fortunata: c’è modo di avere un port forwarding da un IP pubblico ad una macchina interna.
  • Rete fortunata: ho fatto le prove con una Ubuntu 8.04 montata su un computer che era stato dimenticato aperto sul banco dell’assistenza hardware (e se funziona con…).
  • Road Warrior: cioè computer portatile dal quale voglio accedere ai miei files anche dal bagno dell’ufficio del commercialista scroccando la connettività allo smanettone del piano di sopra.
  • Road Warrior: può montare qualunque sistema, anche operativo, per sicurezza ho fatto le prove con un altro XP Home (e se…).

tinc è una soluzione per creare VPN che, contrariamente ad altre, non si appoggia su un’architettura client/server ma su un sistema più distribuito, simile al peer-to-peer. Magari mi scapperà qualche volta di scrivere “client” o “server”: è un errore poiché i nodi sono tutti alla pari.

La situazione di partenza è questa:

Nella rete fortunata c’è un Linux con IP 192.168.0.10 (lo chiamiamo “accentratore”), un router con indirizzo esterno 123.123.123.2, ed un port forwarding della porta 655 sia UDP sia TCP verso il Linux.

Nella rete sfigata c’è un XP Home con IP 192.168.1.100 (lo chiamiamo “sfigato”) ed un NAS con IP 192.168.1.2 con una condivisione “public”.

Il road warrior ha IP 81.80.79.78 (ve l’avevo detto che è uno smanettone), lo chiamiamo “strada”.

L’idea è che la VPN utilizzerà l’unica macchina raggiungibile come una specie di “accentratore” che servirà al solo scopo di mettere in rete il road warrior con la rete sfigata. Da qui in poi il road warrior avrà accesso come per magia alle risorse interne della rete sfigata. Non mi dilungo su come installare e configurare tinc, facciamo che andate a leggervi i manuali, vediamo solo nel dettaglio le configurazioni delle tre macchine, che invece non è presente da nessuna parte in rete (o, che è lo stesso, io non l’ho trovata).

tinc.conf di accentratore:

Name = accentratore
Device = /dev/net/tun # ---> Ubuntu 8.04
Mode = switch

Notare l’assenza della direttiva ConnectTo. Per regalo vi metto anche il tinc-up sempre dell’accentratore:

#!/bin/sh
modprobe tun
ifconfig $INTERFACE 192.168.1.200 netmask 255.255.255.0 # ---> Stessa classe di indirizzi della rete sfigata

tinc.conf di sfigato:

Name = sfigato
ConnectTo = accentratore
Interface = Tinc # ---> TAP-Win32 Adapter V9 rinominata
Mode = switch

tinc.conf di strada:

Name = strada
ConnectTo = accentratore
Interface = Tinc # ---> TAP-Win32 Adapter V9 rinominata
Mode = switch

Il Mode switch deve essere impostato ovunque, è molto importante, se no tinc parte in Mode router e non funziona nulla.
Ora i files di configurazione degli hosts:

accentratore:

Address = 123.123.123.2 # ---> Qui agisce il Port Forwarding
Subnet = 192.168.1.200/32 # ---> Stessa classe di indirizzi della rete sfigata
-----BEGIN RSA PUBLIC KEY-----
...

sfigato:

Subnet = 192.168.1.0/24 # ---> Vedi sotto, l'indirizzo IP è impostato nelle proprietà della TAP-Win32
-----BEGIN RSA PUBLIC KEY-----
...

strada:

Subnet = 192.168.1.0/24 # ---> Nelle proprietà della TAP-Win32 ho assegnato 192.168.1.50, nella stessa classe di indirizzi della rete sfigata
-----BEGIN RSA PUBLIC KEY-----
...

Ora i trucchi finali. Sull’XP della rete sfigata bisogna assegnare all’interfaccia TAP-Win32 lo stesso indirizzo IP della scheda di rete. Fatto questo Windows si arrabbierà moltissimo e minaccerà di morte l’amministratore di sistema, cosa che ci lascia tranquilli perché l’amministratore di sistema non si sa mai chi sia. Nonostante le lamentele l’indirizzo viene effettivamente accettato, anche se così com’è l’interfaccia non è utilizzabile.
Per finire basta creare un bridge tra l’interfaccia di rete fisica e quella TAP-Win32, su XP Home nella schermata delle connessioni di rete si clicca sull’icona dell’interfaccia fisica, con ctrl premuto si clicca sulla TAP-Win32 e poi tasto destro / Connessioni con bridging. Dopo alcuni secondi il bridge è attivo e si possono lanciare i tinc sulle varie macchine creando così la VPN. A regime poi i tinc saranno servizi e questo step non sarà più necessario.

Per verificare che tutto funzioni basta entrare nel bagno del commercialista, collegarsi alla rete WiFi dello smanettone del piano di sopra e fare Start / tasto destro su Risorse di rete / Connetti unità di rete e scrivere //192.168.1.2/public nel campo Cartella, fornendo username e password. I vostri files saranno lì a distanza di un solo click, e le vostre visite dal commercialista non saranno più le stesse.

commenti
  1. stefano scrive:

    mamma che casino pero! se ti e possibile posta un video su youtube!

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...