Pagina 1 di 3

Dubbio su connessione VPN tramite router con IP pubblico

Inviato: giovedì 2 aprile 2015, 14:48
da davide80
Ciao a tutti.
Ho una rete casalinga composta da antenna WDSL, router interno, NAS e altri dispositivi quali PC, telecamere, stampante..
Vorrei connettermi dall'esterno ed usare alcune risorse della rete privata.

Il router interno (IP 192.168.1.254) si connette ad internet via PPPoE (con user/pass) e ha un IP pubblico impostato fornitomi dal provider.
Ho correttamente nattato le 3 porte UDP di L2TP verso l'ip interno del NAS (192.168.1.2)
Ho configurato il Server VPN sul NAS via L2TP e mi connetto correttamente da Win8 e da uno smartphone usando un servizio DDNS o puntando al mio IP pubblico.

Il server VPN mi restituisce un IP privato tipo 172.16.0.1 e riesco a pingare correttamente il NAS tramite l'IP 172.16.0.0 (lo sfoglio anche in risorse di rete con \\172.16.0.0).
Fin qui tutto ok..

Mi sono accorto però che, navigando in internet dal pc remoto Win8, utilizzavo il gateway di casa e quindi anche internet di casa (il mio IP pubblico era appunto quello del router di casa). Per risolvere ho disattivato l'impostazione "use default gateway on remote connection" nelle proprietà TCP/IPv4 della VPN su Win8.
Anche fin qui tutto ok..

Ma ora non riesco ad utilizzare le altre risorse di rete locali, quali ad esempio le altre periferiche sulla rete 192.168.1.x, tipo una stampante.. sicuramente perché non ho il gateway remoto sulla VPN.
Credo occorra impostare una Static Route sul router (è un Netgear) ma ho provato e non riesco a farlo funzionare.

Dove/come posso risolvere?
Grazie ciao.

Re: Dubbio su connessione VPN tramite router con IP pubblico

Inviato: giovedì 2 aprile 2015, 16:32
da dMajo
Devi aggiungere manualmente le rotte necessarie, comando "route add" dal prompt dei comandi.
Non so se attraverso il server vpn del nas sia possibile assegnare sempre lo stesso ip al client (vincolato al MAC) nel qualcaso il "route add" lo potresti fare una volta sola con l'opzione "-p" per renderlo permanente. Altrimenti dovrai fare sempre un ipconfig/all seguito opzionalmente da un "route print" ed in base agli ip visti poi aggiungere le rotte mancanti con "route add"

Re: Dubbio su connessione VPN tramite router con IP pubblico

Inviato: giovedì 2 aprile 2015, 16:39
da davide80
ok. quindi dipende dal client che si collega.. non posso fare una cosa globale per tutti sul router? (ad esempio se una volta mi collego dal telefono, piuttosto che da un altro pc..)

Re: Dubbio su connessione VPN tramite router con IP pubblico

Inviato: giovedì 2 aprile 2015, 16:46
da davide80
sul client ho eseguito:

Codice: Seleziona tutto

route ADD 192.168.1.0 MASK 255.255.255.0 192.168.0.250
dove
192.168.1.0 è la mia LAN privata
255.255.255.0 è la SM
192.168.0.250 è il gateway della connessione attuale (non della mia lan)

ma non va nonostante la route sia stata inserita.
è corretto o no?
grazie

Re: Dubbio su connessione VPN tramite router con IP pubblico

Inviato: giovedì 2 aprile 2015, 16:59
da davide80
davide80 ha scritto:sul client ho eseguito:

Codice: Seleziona tutto

route ADD 192.168.1.0 MASK 255.255.255.0 192.168.0.250
dove
192.168.1.0 è la mia LAN privata
255.255.255.0 è la SM
192.168.0.250 è il gateway della connessione attuale (non della mia lan)

ma non va nonostante la route sia stata inserita.
è corretto o no?
grazie
ho risolto così:

Codice: Seleziona tutto

route ADD 192.168.1.0 MASK 255.255.255.0 172.16.0.0
dove 172.16.0.0 è l'IP virtuale (VPN) del NAS (il client infatti prende 172.16.0.1)

ora raggiungo tutta la rete 192.168.1.x

Re: Dubbio su connessione VPN tramite router con IP pubblico

Inviato: giovedì 2 aprile 2015, 20:06
da dMajo
davide80 ha scritto:ok. quindi dipende dal client che si collega.. non posso fare una cosa globale per tutti sul router? (ad esempio se una volta mi collego dal telefono, piuttosto che da un altro pc..)
Premessa1:
1. normalmente nelle reti casalinghe basate su server dhcp integrato nei router SOHO la rete è 192.168.0.0/24 o 192.168.1.0/24 ed il router ha l'indirizzo 1 oppure 254.
2. il server vpn del nas, di serie, assegna ip sulla 10.0.0.0/24 per la pptp; sulla 10.2.0.0/24 per la l2tp e 10.8.0.0/24 per la openvpn
Premessa2:
il server vpn sul nas non lo uso, ho 14 vpn statiche attive su 2 adsl in loadbalancing, di cui alcune di anonimizzazione altre lan2lan ipsec, ma tutte configurate sul router che fa anche da server teleworker (o se preferisi client2lan) per smartphone e nb quando in mobilità (4g/lte).

I pacchetti udp sono unidirezionali mentre i tcp richiedono la risposta, la conferma di ricezione. Se per i primi basta che le rotte corrette siano presenti da un lato solo (o meglio dire lungo una sola direttrice), mittente=>destinatario, per i secondi se non vi sono rotte corrette anche per la direzione opposta la conferma di recapito non potrà mai esser restituita al mittente e quindi il tcp non potrà funzionare.

Nelle rotte la netmask non identifica la rete ma un insieme d'indirizzi tanto che più sottoreti possono esser instradate con un'unica rotta. Il gateway indicato può esser quello finale oppure il prossimo punto di smistamento, a patto che poi questo le abbia per la tratta successiva.

La vpn può essenzialmente esser configurata in due modalita: bridging o routing, a seconda anche dal protocollo utilizzato. Nel bridging ai client viene assegnato un ip della lan remota ed il server vpn sostanzialmente sulla propria scheda di rete presenta ip multipli, ip proprio più uno per ciascuna connessione client attiva. Non serve alcuna rotta in quanto equivale a prolungare il cavo di rete. E' logicamente identico ad esser connessi fisicamente nella lan in oggetto. Con il routing i client ricevono indirizzi appartenenti ad un'altra sottorete "conosciuta" nella lan remota alla quale si sta accedendo. Quindi i pacchetti per transitare in entrambe le direzioni (e passare da una rete all'altra) necessitano di rotte che gli instradino, su entrambi i lati. Qui i domini broadcast e multicast vengono isolati, e per trasmetterli fra i due endpoint del tunnel ci vogliono configurazioni particolari con indirizzi helper (ip ausiliari che esplichino la ripetizione "mirroring" dei broadcast) configurati generalmente solo quando necessari solitamente su vpn lan2lan.

Ora con l'uso del gateway remoto sul client dovrebbe venir creata una rotta che dice sostanzialmente instrada tutti i pacchetti nel tunnel. Se lo rimuovi dovresti avere solamente la rotta per quelli relativi all'ip del nas. Per tutti gli altri (esterni alla lan del client remoto) varrà la rotta del default gateway che in caso di reti semplici li instraderà al router della lan del client remoto mentre in caso di connettività mobile (3g) al primo (prossimo/adiacente) router nella struttura del gestore.

Con il gateway remoto abilitato mi aspetto che tu possa si navigare in internet usando l'ip della wan del nas, ma non accedere ad altri pc presenti nella lan del nas. Gli altri pc hanno probabilmente come default gateway l'ip del router. Un pacchetto tcp dal pc remoto via vpn entrerebbe in pancia al nas e poi in chiaro attraverso la nic del nas raggiungerebbe un pc collegato alla stessa lan. Quest'ultimo però nel confermare la ricezione, essendo il mittente esterno alla lan locale, invierebbe la risposta al router (il suo default gateway) che poi non saprebbe come instradarla per raggiungere l'indirizzo di destinazione.

Quindi senza l'uso del gateway remoto dovresti:
- impostare la rotta sul client vpn per tutta la lan casalinga (quella locale del nas)
- impostare una rotta statica sul router della lan locale al nas indicando che la via per la 10.2.0.0/24 (rete di default dalla quale il server vpn del nas assegna gli indirizzi ai client l2tp) passa per il nas quindi 10.2.0.0/255.255.255.0 gtw ip.locale.del.nas

Quindi un paio di regole base potrebbero essere:
- il nas deve avere ip statico
- le tre reti (quella locale del nas, quella da cui il server vpn assegna gli indirizzi, quella locale del pc remoto) devono essere diverse affinché possano esistere rotte univoche che instradino i pacchetti.
- su ambo i lati del tunnel devono esser impostate rotte corrette per poter raggiungere l'estremo opposto in base al traffico che si vuole veicolare.
- fra due nodi che tentano la comunicazione (indipendentemente che parte o totalità del percorso sia via vpn o no) tutti i router coinvolti devono avere almeno una rotta che instradi il pacchetto sino al router successivo, se non il percorso completo alla destinazione finale. L'eventuale server vpn in questo caso è da considerarsi un router.


Dovresti indicativamente fare almeno queste rotte
10.2.0.0/24 gtw 192.168.1.100 sul router della lan del nas dove .100=ip del nas
10.2.0.0/24 gtw 10.2.0.0 if 10.2.0.1 sul pc client
192.168.1.0/24 gtw 10.2.0.0 if 10.2.0.1 sul pc client

Attenzione però che la comunicazione IP ha molti protocolli di cui i più usati: il n°6 TCP ed il n°17 UDP.
Per la l2tp/ipsec è necessario anche il 47 GRE che non deve essere bloccato da nessuno dei router attraversati dalla vpn. Se questo non è un problema per i routers in internet potrebbe esserlo per i due terminali (quello di casa ed ad esempio quello dell'ufficio nel caso il pc client non sia su chiavetta 3G). Generalmente se trovi voci "vpn passtrough" nei router abilitale !!! Altrimenti devi sperare che i router SOHO usati non costituiscano un blocco per il GRE. Questo ovviamente non riguarda te, visto che eri riuscito a connetterti correttamente pingando il nas in precedenza, ma potrebbe interessare altri.
La openvpn, anche se su windows (e/o smartphone) richiede l'installazione del client aggiuntivo, può costituire una buona alternativa sia in termini di sicurezza (utilizzabile con certificato digitale) che praticità:
- utilizza un unica porta udp 1194 con fallback su tcp 443 (quella del https quindi sempre aperta)
- il client imposta autonomamente le rotte sul pc
- il server vpn (previo opzione spuntabile) fa altrettanto sul nas
- scaricati configurazione e certificato dal server sul client non occorre fare praticamente nulla per metterla in servizio.
- semmai devi aggiungere solamente la rotta statica sul router della lan del nas

Re: Dubbio su connessione VPN tramite router con IP pubblico

Inviato: giovedì 2 aprile 2015, 20:26
da dMajo
Ho visto ora che hai cambiato la lan del server vpn, quindi si la rotta fatta è giusta, ne manca forse qualcuna

172.16.0.0/24 gtw 192.168.1.100 sul router della lan del nas dove .100=ip del nas

172.16.0.0/24 gtw 172.16.0.0 if 172.16.0.1 sul pc client
192.168.1.0/24 gtw 172.16.0.0 if 172.16.0.1 sul pc client

Re: Dubbio su connessione VPN tramite router con IP pubblico

Inviato: sabato 4 aprile 2015, 11:08
da davide80
Prima di tutto ti ringrazio per l'esaustiva risposta, non capita tutti i giorni di trovare questo tipo di disponibilità sul web.
Secondo, mi leggo bene tutto quello che mi hai scritto e faccio qualche prova (ottimo il suggerimento delle route aggiuntive).
Comunque attualmente uso un router Netgear che fa da vpn passtrough, quindi no problem. Preferisco L2TP perché è più comodo e veloce da configurare anche su altri dispositivi quali iPhone o simili (ho provato anche OpenVPN con successo, dopo qualche difficoltà iniziale di configurazione).

Un'altra cosa: qualche mese fa utilizzavo la medesima configurazione con il router ADSL di Alice e devo dire che, dopo aver fatto correttamente NAT delle 3 porte UDP L2TP, non ho avuto nessun tipo di problema e raggiungevo tranquillamente gli IP della LAN.
Non ti so dire se usavo l'iP pubblico di casa o quello della connessione client (credo il primo a questo punto, non ho mai fatto caso) ma la connessione era molto veloce e pratica, soprattutto per il fatto di non dover creare rotte manualmente (cosa non possibile su iPhone ad esempio).

Ora con il nuovo router Netgear con IP pubblico + la connessione PPPoE ad un altro router che ho sul tetto per la WDSL le cose sono un po cambiate, nonostante il PC sia lo stesso ed entrambi i router siano VPN passtrough.

Ti ringrazio ancora per la disponibilità e la chiarezza.

Re: Dubbio su connessione VPN tramite router con IP pubblico

Inviato: sabato 4 aprile 2015, 15:35
da dMajo
Guarda, poniamo un esempio:

1.2.3.4 ip pubblico sulla wan del router con forwarding su 192.168.1.250
192.168.1.254 router e default gateway della lan
192.168.1.1 switch centro stella della lan
192.168.1.250 nas e server vpn
192.168.1.10 pcl pc locale nella lan

192.168.100.254 router def.gtw sede remota
192.168.100. 50 pcr pc remoto client vpn
10.0.0.1 ip assegnato a pcr dal server vpn

Il client vpn/pcr "chiama" il server su 1.2.3.4 e grazie al port forwarding risponde il nas che gli assegna l'ip 10.0.0.1.
Ora tutto il traffico pcr destinato ai nodi della propria lan 192.168.100.0/24 verrà indirizzato direttamente a loro mentre
tutto il traffico verso destinazioni esterne alla suddetta lan verra inviato al def.gtw, il router a meno che:
-non ci sia una rotta specifica per instradare quello diretto a 192.168.1.250 che lo instradi nel tunnel.
-se vogliamo raggiungere pcl la suddetta rotta deve comprendere anche questo ip o più generalmente la lan intera (192.168.1.0/24) instradando il traffico a questa diretto via vpn.
Altrimenti finirebbe al 192.168.100.254 che non saprebbe come gestirlo. Ti ricordo che la vpn nasce in pancia a pcr e finisce in pancia al nas, i due router si limitano a consentire il passaggio del tunnel ma non sono in grado di ispezionarne i contenuti.

Ora se da pcr facciamo un "ping pcl", vista la destinazione, questo finisce in pancia al nas che poi "in chiaro, fuori dal tunnel" lo fa uscire sulla propria lan così raggiungendo pcl. Pcl però vede l'ip sorgente 10.0.0.1 ed essendo questo esterno alla propria lan (192.168.1.0/24) in assenza di rotte specifiche invia la risposta al proprio def.gtw ovvero 192.168.1.254.
Il router deve avere una rotta che gli dica che la 10.0.0.0/24 non è raggiungibile via wan (dove poi comunque in internet non sarebbe instradata essendo una classe privata) ma bisogna consegnare tale traffico a 192.168.1.250 che poi penserà a instradarlo ulteriormente per raggiungere la destinazione (pcr, via tunnel).

Ora se il nas sniffasse il traffico (stile tcpdump o wireshark) potrebbe catturarlo e instradarlo senza rotte a patto che sia collegato su un hub e non uno switch.
Ti ricordo che i hub, predecessori degli switch, ripetevano il traffico ricevuto da una porta su tutte le altre. Gli switch essendo più intelligenti usano questo comportamento solamente per i broadcast mentre tutto il traffico unicast ricevuto viene ripetuto solo sulla porta che a valle ha l'ip interessato/destinatario. Qui la praticita della diagnostica di rete intrinseca degli hub viene sopperita unicamente su switch gestiti che dispongono della funzione "mirror" delle porte.
L'unica altra alternativa che mi viene in mente, per cui il tutto possa funzionare senza dover aggiungere rotte, è che il nas aggiunga autonomamente le rotte al router attraverso il protocollo UPnP se abilitato sul router stesso. Questo sarebbe però da sconsigliare a qualsiasi utente che abbia un minimo di dimestichezza con tali apparecchiature. Con l'UPnP abilitato qualsiasi pc/smartphone/smarttv/nas... della lan può riconfigurare il router a proprio piacimento ed insaputa dell'utente. Se da un punto di vista questo semplifica la configurazione in quanto rotte/port-forwarding ed altre configurazioni possono avvenire in automatico, dall'altro canto a farlo potrebbe essere un virus preso su un pc che potrà così predisporsi il router a proprio piacimento per fare il suo sporco lavoro.
Ricordo che il router della lan domestica equivale alla porta blindata dell'appartamento/casa. Voi dareste le chiavi (upnp) a chiunque? O per dirla in modo più consono ne terreste diverse coppie in bella vista accanto alla porta in modo che qualsiasi ospite, anche occasionale, ne possa prender una?

Re: Dubbio su connessione VPN tramite router con IP pubblico

Inviato: domenica 5 aprile 2015, 22:52
da davide80
ok ho capito il ragionamento.
alla base di quanto detto è possibile affermare che:

- meno router ci sono sulla "strada" del pacchetto più la connessione è veloce? (almeno sulla parte ping)
- una o più rotte statiche semplificano il lavoro dei router e permettono tempi di risposta più veloci dei pacchetti?

grazie ancora per le dritte, specie per quella dell'UPNP: ero convinto che potesse gestire in automatico solo port forwarding e non rotte statiche (anche se credo che il mio router da 40€ gestisca solo NAT in UPNP e non rotte statiche)

ho fatto caso oggi che il NAS comunque crea alcune rotte in automatico una volta collegato in VPN (vista come interfaccia PPPoE) ma ovviamente non è in grado di interagire col router.
avevo anche provato ad rimuovere il router e a collegarmi ad internet direttamente dal NAS via PPPoE (avevo creato manualmente le regole di NAT e masquerading via riga di comando). tutto funzionava ma non si collegava in VPN, forse perchè l'interfaccia PPPoE1 era già occupata o perché non supporta il GRE nativamente.. non riesco a capire.