Sartomiki.net

  • Aumenta dimensione caratteri
  • Dimensione caratteri predefinita
  • Diminuisci dimensione caratteri
Home Appunti Tecnologie e servizi di rete Implementazione delle VPN e protocolli

Implementazione delle VPN e protocolli

E-mail Stampa PDF
Valutazione attuale: / 4
ScarsoOttimo 

Componenti necessari per la realizzazione della VPN
Abbiamo necessità di avere meccanismi e protocolli per separare il traffico della rete e quello della VPN. Questa funzione è data dai protocolli di tunneling.
Bisogna avere dei meccanismi di cifratura, che non permettano a chi sniffa i pacchetti del tunnel di capirne il significato. In più sono necessarie alcune tecniche per garantire l'integrità dei dati trasferiti, in modo da permettere il riconoscimento delle modifiche. Infine sono necessari dei meccanismi di autenticazione.

Meccanismi di Tunneling
I meccanismi di tunneling consistono nell'incapsulare un pacchetto destinato ad un host in un altro pacchetto. E' possibile effettuare il tunneling a livello IP (GRE e IPsec),  che consiste nell'incapsulare pacchetti IP in pacchetti IP, oppure a livello 2 (PPTP, L2TP), che consiste nell'incapsulare pacchetti di livello 2 in pacchetti IP.
L'ordine delle intestazioni all'interno dei pacchetti non segue più il modello OSI in quanto dopo un'intestazione di livello 3 può esserci un'intestazione di livello 2 o un'altra di livello 3.

GRE (Generic Routing Encapsulation)
Per utilizzare GRE è necessario inserire nel campo protocol di IPv4 il valore 47. Un pacchetto GRE è formato da righe da 32bit.
All'interno dell'intestazione GRE sono presenti diversi campi:
-obbligatori:
--protocol indica il tipo della trama contenuta (un protocollo di livello 2/3).
--recur indica il numero massimo di incapsulamenti (deve essere 0, in pratica non può essere usato).
--flag indicano l'esistenza dei campi opzionali.
--version indica la versione
-opzionali:
--checksum controlla gli errori.
--offset.
--routing permette di effettuare il routing step by step.
--key indica la dimensione del pacchetto e il numero del tunnel
--sequence number e ack number necessary per scartare i pacchetti fuori ordini e per controller il flusso e la congestione. Questi campi non permettono il recupero di messaggi danneggiati, in quanto a queste operazioni (se richieste) sono gestite dal PPP o da un protocollo di livello superiore.
A seconda dei campi opzionali esistono altri campi aggiuntivi come la lista degli indirizzi IP, che elenca gli AS o dei router da attraversare nel caso in cui il routing step by step sia attivato.

L2TP (Layer 2 Tunneling Protocol)
E' protocollo per reti VPN dial-up, cioè una rete in cui gli host si possono connettere da postazioni diverse. L2TP è un protocollo che non è stato creato per essere installato direttamente sui terminali, ma è stato modificato solo in un momento successivo. In principio era necessario avere un collegamento diretto (punto a punto) tra l'host e una speciale macchina dell'ISP, con il compito di creare il tunnel.
E' un protocollo indipendente di livello 2, che non può fornire sistemi di autenticazione. Per questo motivo è stato introdotto il protocollo IPsec.
La creazione del tunnel avviene tra due apparecchi (il collegamento dei dispositivi con queste due macchine deve essere sicuro):
-LAC è installato sulla macchina utente o dal service provider.
-LNS ha lo scopo di tunnel end point, sistemato all'ingresso della VPN.
Esistono due tipi di messaggi:
-messaggi di dato sono composti da frame PPP all'interno di un pacchetto L2TP.
-messaggi di controllo sono composti da un'intestazione L2TP.
I pacchetti L2TP possono viaggiare all'interno di pacchetti UDP (porta 1701), FR, ATM (livello 2)…
Il pacchetto L2TP è composto dall'indirizzo di livello 2, dall'indirizzo di destinazione, dall'indirizzo IP, dall'UDP, dall'header L2TP e dai dati.
L'intestazione L2TP ha:
-flag per identificare se si tratta di un pacchetto dati o di controllo
-la lunghezza del pacchetto
-session ID e tunnel id consentono a più host, che lavorano con lo stesso LAC, di lavorare contemporaneamente, oppure di aprire più sessioni per lo stesso host. I messaggi di controllo provenienti dall'LNS al LAC viaggiano sullo stesso canale per tutte le sessioni, non hanno quindi bisogno di essere identificati.
-offset size indica la posizione dei dati all'interno del pacchetto.
-versione (l'attuale versione è 2).
-NR numero di sequenza dei messaggi di controllo, con la funzione di ACK.
-NS numero di sequenza per i messaggi dati (i pacchetti fuori ordine vengono scartati).
Per aprire una connessione L2TP è necessario creare una connessione di controllo tra il LAC e LNS e poi aprire la sessione dati.
I meccanismi di autenticazione si basano su un segreto comune tra LAC e LNS, basato su CHAP (il LAC invia una chiave di cifratura all'LNS, il quale risponde con la password codificata con la chiave). A questo punto LAC e LNS si scambiano dei local ID per aprire delle sessioni.
Le sessioni possono essere aperte dai LAC (in ingresso) oppure dall'LNS (in uscita).
L'autenticazione è fatta solo nelle fasi di inizializzazione; questo crea problemi di affidabilità dei canali aperti, in quanto è possibile iniettare pacchetti conoscendo il numero di sessione. La cifratura dei messaggi deve essere fatta con altri meccanismi.

PPTP (Point-to-point Tunneling Protocol)
PPTP è una proposta di Microsoft, Apple e altre aziende, per costruire tunnel direttamente dalla macchina utente. Successivamente esso è stato standardizzato.
All'inizio non possedeva un metodo di autenticazione molto forte, ma con l'introduzione di IPsec le cose sono migliorate.
L'inizio del tunnel avviene direttamente sulla macchina utente, mentre il termine del tunnel è dato dal PNS. L'apertura di un tunnel PPTP, come in L2TP, prevede l'apertura di un canale di controllo. I frame PPP viaggiano all'interno di pacchetti di altri protocolli.
Esistono meccanismi di autenticazione (MS CHAP) e di cifratura (MPPE). Esiste anche una versione che necessita di una struttura apposita da installare sugli ISP (PAC).
Come in L2TP, in PPTP esistono diversi tipi di messaggi:
-i dati viaggiano all'interno di pacchetti composti da intestazione di livello2+IP+GRE+PPP+dati cifrati (datagram IP o NetBUEI)+coda (CRC)
-messaggi di controllo sono composti da un'intestazione di livello 2+IP+TCP (porta 1723)+messaggi di controllo PPTP+coda (CRC). Essi sono necessari per creare il tunnel. Hanno diverse funzioni come ECHO, chiudere/aprire la connessione, notifica di errori.


blog comments powered by Disqus
 

http://sartomiki.net/modules/mod_fuofb/assets/it/find-us-on-facebook-1.png

Follow me

Amici

Chi è online

 7 visitatori online

Siti amici

Banner

Notizie flash

Stiamo lavorando per voi... A breve saranno aggiunte nuove pagine sul sito. Per il momento oltre a questo sito in costruzione puoi visitare i miei sottodomini: http://catene.sartomiki.net e http://fasi.sartomiki.net. STAY TUNED!

PUBBLICITA'