Bypassare il NAT imposto dal provider internet per raggiungere da internet la nostra rete di casa.

La carenza di indirizzi IPV4 pubblici e l'aumento esponenziale di dispositivi sempre connessi alla rete internet (come gli smartphone, i tablet, i router 3G, i router LTE, ecc...), hanno costretto molti provider internet (ISP - Internet Service Provider) come WIND, TIM, VODAFONE, FASTWEB, LINKEM e molti altri, ad adottare un trucchetto di rete per permettere a tutti i propri clienti di accedere al web senza dover concedere a ciascuno di loro un indirizzo IPV4 pubblico. Il trucchetto si chiama NAT e consiste sostanzialmente nel navigare in rete internet passando attraverso un router che "maschera" il nostro indirizzo di rete (l'indirizzo IP per l'appunto) con un altro.

NAT vuol dire Network Address Translation ovvero traduzione degli indirizzi di rete

In termini super semplicistici succede questo: il provider a cui siamo abbonati e che ci concede il servizio internet non fornisce al nostro dispositivo che si affaccia al web un indirizzo IP di rete pubblica (un indirizzo internet), ma uno di una rete privata gestita e mantenuta interamente da lui. In questa rete privata sono presenti un certo numero di router / gateway che fanno NAT e che diventano la nostra via di accesso a internet previo il mascheramento dell'indirizzo di rete privata assunto dal nostro dispositivo con uno pubblico. Tutti i dispositivi della rete privata che vogliono navigare su internet passano quindi da questi router, ciascuno dei quali gestisce e "natta" un numero imprecisato di client, mascherandoli tutti con il medesimo indirizzo IP pubblico.

Questo meccanismo raggiunge pienamente il duplice obiettivo dell'ISP che è quello di far navigare su internet tutti i propri clienti e contemporaneamente risparmiare sul numero di indirizzi IPV4 pubblici (ormai esauriti) da assegnare. Ne occorrono infatti tanti quanti sono i gateway affacciati su internet invece di uno per ciascun dispositivo del cliente connesso.

Ma il NAT operato dall'ISP porta con se un problema: da internet non è più possibile raggiungere direttamente il dispositivo del cliente. Il problema che si presenta è che tentando di accedere al dispositivo usando l'ip pubblico del NAT (l'unico IP che viene visto sul web) si raggiungerà solo il router / gateway dell'ISP in possesso di quell'IP, ma nessuno dei dispositivi da lui "nattati".

Cosa significa tutto questo? Di nuovo, per dirla nel modo più semplice possibile, se abbiamo una connessione a internet operata ad esempio via router LTE (meglio noti col termine improprio 4G e ormai diffusissimi nelle nostre abitazioni) e il nostro fornitore di servizio internet è WIND, o VODAFONE o anche TIM o uno dei molti altri che esegue il NAT, ci troveremo nell'impossibilità di accedere da internet al nostro router e magari attraversarlo con regole di port-forwarding per accedere ai nostri dispositivi della rete interna.

Il NAT operato dall'ISP è un problema per la domotica

Tutte le implementazioni di port-forwarding realizzate a mano o instaurate automaticamente via UPnP nei nostri router e necessarie a raggiungere i dispositivi domotici, ormai sempre più presenti nelle nostre case, come telecamere, termostati, condizionatori, prese elettriche e tutto quanto va sotto il nome di "intelligente", non funzionano più come dovrebbero quando il nostro ISP fa NAT perché di fatto li lascia raggiungibili solo dall'interno della nostra rete domestica e non più da internet. Un problema analogo lo si può riscontrare anche nelle console domestiche come PlayStation e Xbox quando i giocatori vogliono partecipare a partite in rete. Di fatto alcune funzioni del gioco in rete, se non addirittura tutte, diventano impossibili da eseguire proprio a causa dell'impossibilità di contattare la console direttamente via internet.

La mia telecamera si vede lo stesso anche se il mio ISP fa NAT. Come mai?

Posto che i "dispositivi intelligenti" non sono tutti intelligenti alla stessa maniera, ci troviamo nella condizione di avere vari scenari da considerare. Quello ottimale si ha nel caso in cui il dispositivo è capace di attraversare da solo il NAT, instaurando una connessione diretta e privata tra lui e un server messo a disposizione dal suo produttore. Tale server verrà poi da noi interrogoato (senza che ce ne rendiamo conto) mediante l'uso di un'apposita app per smartphone o mediante un apposito servizio web. Sarà quindi questo server a dialogare direttamente col dispositivo che gli si è collegato e sarà quindi in grado di farci usufruire del servizio richiesto.

Questo però è ovviamente un caso che prevede per il produttore un certo tipo di investimento (server, app, web service, mantenimento della struttura) in un servizio che dovrebbe poi essere offerto gratuitamente. A pochi infatti sta bene acquistare uno di questi dispositivi e poi dover pagare un abbonamento per usarlo al 100%. Questo è uno dei motivi per cui non tutti i produttori sono intenzionati ad affrontare la spesa. Ecco quindi che esistono altri dispositivi, diciamo "meno intelligenti" che non godono della struttura appena descritta e che comunque nelle normali condizioni di una "vecchia" connessione cablata in rame o in fibra offerta per esempio da Telecom funzionano perfettamente dato che il nostro router assume IP pubblico e quindi possiamo raggiungerlo e attraversarlo da internet. Quando invece l'ISP fa NAT diventano irraggiungibili e non sono più in grado di offrire il loro servizio al di fuori della rete domestica.

Come faccio a bypassare il NAT del mio ISP?

Ok, fin'ora abbiamo visto i vantaggi per l'ISP e i problemi che il NAT fatto da loro ci procura, ma la lecita domanda che potremmo porci è: come li risolviamo? Esiste cioè un modo per bypassare il NAT imposto dal Wind o da Vodafone o da Tim o da altri operatori e permettermi di raggiungere la mia rete di casa?

La risposta è un po' articolata, ma sostanzialmente è: si, il modo esiste.

Premesso che il NAT fatto dall'ISP non è solo a loro vantaggio, ma è anche un modo per darci una minima protezione e privacy durante la nostra navigazione web (siamo infatti mascherati e il nostro dispositivo non si affaccia direttamente al web), e che raggiungere la propria rete di casa dal web vuol dire in qualche modo aprire delle vie di accesso che potrebbero essere usate da hacker malintenzionati, il modo più semplice sarebbe quello di chiedere al provider internet di toglierci dalla loro rete privata e di fornire direttamente al nostro router un indirizzo IP pubblico. Sebbene alcuni operatori come TIM lo concedano dietro esplicita richiesta e motivandone la necessità, altri invece (ahimè i più tanti) non lo prevedono e il NAT è una condizione obbligata.

C'è però un modo universale per bypassare il NAT dell'ISP, nel senso che non dipende dall'ISP cui siamo abbonati, e consiste nell'uso di una VPN (Virtual Private Network).

Detta così sembra semplice, ma purtroppo non lo è. O meglio non lo è per chi non ha dimestichezza con reti e internetworking. Se la nostra telecamera o il nostro condizionatore o la nostra lavatrice o qualunque altra diavoleria intelligente di casa non è in grado di instaurare autonomamente una connessione con il server del produttore, allora dobbiamo dotarci noi di un server su internet, instaurare tra lui e casa nostra una rete privata protetta (una VPN per l'appunto) e instradarvi il traffico necessario (e solo quello per questioni di sicurezza) a raggiungere e dialogare con il nostro dispositivo.

A questo punto le cose si fanno complicate perché come ho già detto si deve avere una certa conoscenza di reti e sistemi operativi Linux based. Parliamo infatti di prendere a noleggio un server, meglio se un VPS (Virtual Private Server) perché è affidabile e costa davvero poco (si parla di pochi €/mese), e poi installarci un server VPN come OpenVPN, oppure uno L2TP su IPSEC il cui client è più facile da trovare preinstallato su smartphone, tablet, PC, MAC e anche su diversi router domestici. Instaurare quindi tra loro una VPN per instradare il traffico verso la nostra rete di casa, poi sul VPS creare le necessarie regole di port-forwarding o di routing per arrivare al dispositivo "intelligente" specifico quando si punta ad una specifica porta dell'indirizzo internet del VPS. Questo rende nuovamente raggiungibile da internet il nostro dispositivo di rete di casa.

Ma tutto questo è sicuro?

Ovviamente questo agire ci porta l'innegabile vantaggio di riuscire a superare il NAT imposto dall'operatore internet, ma c'è anche un retro della medaglia. Premesso che le considerazioni che farò sono del tutto generali e valgono anche nel caso in cui il nostro ISP non faccia NAT e noi usiamo il port-forwarding instaurato automaticamente sul nostro router dal nostro dispositivo domotico intelligente, aprire delle porte verso la nostra rete di casa non è mai un'idea che va presa alla leggera.

Semplificando all'estremo il port-fowarding altro non è che un sistema per fare una specie di ponte diretto tra un dispositivo affacciato su internet (normalmente il nostro router o quello che ci da a noleggio l'ISP) e uno all'interno della nostra rete di casa. E' chiaro che questa operazione sposta un eventuale rischio di attacco informatico dal router (normalmente piuttosto solido da questo punto di vista) alla telecamera o alla lavatrice di casa. L'hacker di turno ha infatti accesso diretto a quel dispositivo e siccome normalmente chi li produce è più attento ad altri aspetti che non a quelli di sicurezza informatica e aggiornamenti periodici del sistema, ecco che ci siamo costruiti da soli quello che in gergo viene chiamato un cavallo di Troia. Proprio come nell'epica battaglia il nostro meraviglioso e modernissimo condizionatore o lavatrice o telecamera o presa elettrica diventa un punto dal quale è possibile accedere ad ogni altro oggetto della rete di casa, e qui parlo dei nostri PC o dei nostri NAS che standosene a casa "tranquilli e al sicuro", spesso lasciamo con account amministrativi "senza password" o con password super banali o peggio di default e con varie condivisioni aperte. Et voilà il gioco è fatto. Documenti, foto e video sono subito alla mercé del nostro bravo hacker che può farne quel che vuole, ma non solo, se gli va può installare software e virus nei nostri dispositivi o anche sfruttarli per qualsiasi suo scopo.

Domotica OK, ma che sia affidabile anche in termini di sicurezza informatica

Mi rendo conto di aver descritto uno scenario piuttosto spaventoso, per la verità non di facilissima attuazione ma certamente non irrealistico. La soluzione migliore sarebbe quella di non fare il port-forwarding sul VPS e di sfruttare la VPN instaurata per connettere il nostro cellulare o computer portatile facendogli credere di trovarsi nella rete di casa. Questo ridurrebbe enormente il rischio di intrusioni e anzi sarebbe una soluzione auspicabile anche nel caso non si abbiano problemi col NAT imposto dall'ISP.

Concludo questa lunghissima esposizione dicendo che la sicurezza informatica dovrebbe essere presa in maggiore considerazione e non dovrebbe essere affidata all'ultimo anello della catena e cioè all'utilizzatore finale, non è compito suo e non è neppure detto che ne abbia le capacità. I produttori si devono occupare di tutto questo creando sistemi di comunicazione sicura con i loro dispositivi che garantiscano l'utente finale e si dovrebbero anche preoccupare di rilasciare periodici aggiornamenti di sicurezza, cosa che purtroppo accade assai raramente.

Qui sotto riporto alcuni link a tutorial che ho scritto su come installare VPN e permetterci quindi di aggirare il NAT imposto dall'operatore telefonico che ci fornisce il collegamento a  internet.

5 pensieri riguardo “Bypassare il NAT imposto dal provider internet per raggiungere da internet la nostra rete di casa.

  • 30 settembre 2018 in 00:45
    Permalink

    Bell’articolo, ben scritto e molto esplicativo (per la complessitá dell’argomento non era facile).
    Vorrei peró fare una domanda, ma se io non volessi noleggiare un vps ma invece creare un server vpn in casa(un minipc tipo), incapperei comunque nel fatto che mi nattano la connessione e non riesco ad instaurare un tunneling, giusto?

    Risposta
    • 1 ottobre 2018 in 10:12
      Permalink

      Si, giusto.
      Il problema è che il NAT dei provider rende comunque “nascosto” il tuo IP al mondo pubblico. Ciò significa che il tuo server domestico è comunque dietro al NAT e questo comporta la sua impossibilità ad essere “visto” da fuori casa.
      Discorso diverso se invece questo server domestico lo configuri per fare in modo che sia lui ad instaurare una connessione VPN verso un server esterno (su internet) con IP raggiungibile.
      Ricorda che una VPN nasce sempre tra 2 punti e almeno uno dei 2 deve essere raggiungibile dall’altro. Un VPS sul web normalmente è raggiungibile da una connessione domestica nattata, quindi la VPN è instaurabile.
      Ciao.

      Risposta
  • 10 novembre 2018 in 12:14
    Permalink

    Ciao complimenti per la chiarezza con cui hai trattato l’argomento, mi trovo nella stessa situazione, ho abbandonato la classica fibra per una connessione 4g plus con vodafone e non riesco ad accedere al mio allarme e sorveglianza, pensavo di creare un server con OpenVPN sul mio posto di lavoro e collegare un raspberry sulla mia rete domestica che farà da client, sono riuscito a fare ciò su due sistemi windows con OpenVPN grazie alla tua guida, ma una volta collegati client e server vedo solamente i file condivisi ma non riesco a pingare le mie telecamere, sbaglio sicuramente qualcosa, sapresti indirizzarmi in questo? Grazie

    Risposta
    • 12 novembre 2018 in 09:11
      Permalink

      Ciao,
      da quello che leggo il tuo problema pare dovuto al routing.
      Sostanzialmente con la VPN hai instaurato solamente la connessione punto punto (tra le due macchine), ma non hai insegnato loro come gestire e dirigere il traffico entrante. Devi cioè definire delle regole di routing. Io personalmente uso due strumenti per farlo: iptables e il classico comando route.
      Iptables, detto intermini banali, è un “firewall”, permette cioè di fare filtraggio dei pacchetti, ma in realtà fa molto di più. Permette di gestire in modo molto sofisticato il NAT e anche il packet mangling (la manipolazione dei pacchetti). Tramite delle regole permette di decidere ciò che può entrare, uscire o essere inoltrato nelle varie interfacce della macchina.
      Route è invece il classico comando presente sostanzialmente in tutti i sistemi operativi e permette di definire delle regole di instradamento dei pacchetti.
      L’unione di VPN, iptables e regole di routing è il cuore per instaurare una vpn sicura e altamente personalizzabile.

      Risposta
      • 3 dicembre 2018 in 11:51
        Permalink

        Ciao, sapresti indicarmi cone impostare queste regole di routing?
        sul server ho una macchina windows xp con questo ip 192.168.2.102
        il modem a cui è collegato il server ha questo indirizzo 192.168.2.1

        il client collegato al server tramite vpn (tramite rete nat vodafone) è su windows 7
        è il suo ip è 192.168.1.100

        l’nvr a cui csono collegate le telecamere ha queso ip:192.168.1.108.

        come posso raggiungere 192.168.1.108 entrando dal 192.168.2.102?

        grazie

        Risposta

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

18 − 1 =