argomenti della lezione - uniroma1.it
TRANSCRIPT
Reti Private - NAT -1
Tunneling, reti private e NAT
Partly based on
! course slides by L. Peterson
" Princeton University
! Cisco© documentation
Reti Private - NAT -2
Argomenti della lezione
! Tunneling
" Generic Route Encapsulation
" Reti private virtuali (VPN)
! Indirizzi privati
! Network Address Translation
" Indirizzi privati e pubblici
" Esigenze principali• Riuso degli indirizzi IP
• Protezione di sottoreti da attacchi esterni
! Application gateway e firewall
Reti Private - NAT -3
Tunneling
Reti Private - NAT -4
Tunneling
! Esempio: IPv6 su IP (v4)
Router
Router
Router
Router
Rete IP v6
Rete IP v4
Rete IP v6
Incapsulamento Estrazione
Funzionalita’ IPv4/IPv6
Reti Private - NAT -5
Tunneling/2
! Per le reti IP: Tecnica perl’attraversamento di una rete IP da partedi traffico non IP (o IP con caratteristicheparticolari, v. piu’ avanti)
! Strumento principale: incapsulamentopacchetti non IP all’interno di undatagramma IP
Header IP
Header
PayloadPacchetto che attraversaLa rete IP (es. IPv6)
Reti Private - NAT -6
IP tunneling! Se usiamo una rete IP non abbiamo VC -> le reti
non sono isolate
! Tunnel IP su IP: consente collegamento virtualepunto - punto tra due nodi arbitrariamentedistanti
! Nell’esempio: R1 ed R2 sono i terminali di untunnel
IP header,Destination = 2.x
IP payload
IP header,Destination = 11.0.0.1
IP header,Destination = 2.x
IP payload
IP header,Destination = 2.x
IP payload
11.0.0.1
R1 R2InternetworkNetwork 1 Network 2
Reti Private - NAT -7
IP tunneling/cont.
! Intf1 connette allaInternetwork
! R1 incapsula i pacchettidiretti al link virtuale inpacchetti IP diretti a R2
IP header,Destination = 2.x
IP payload
IP header,Destination = 11.0.0.1
IP header,Destination = 2.x
IP payload
IP header,Destination = 2.x
IP payload
11.0.0.1
R1 R2InternetworkNetwork 1 Network 2
Intf0
VIntf1
Intf1
1
2
Default
NextHopNetNum
RT di R1
Reti Private - NAT -8
IP tunneling/cont.
! R2 estrae il pacchettoincapsulato e vede chee’ diretto alla rete 2
! Lo consegna adestinazione
IP header,Destination = 2.x
IP payload
IP header,Destination = 11.0.0.1
IP header,Destination = 2.x
IP payload
IP header,Destination = 2.x
IP payload
11.0.0.1
R1 R2InternetworkNetwork 1 Network 2
Intf0
VIntf1
Intf1
1
2
Default
NextHopNetNum
RT di R1
Reti Private - NAT -9
Perche’ il tunneling IP! Sicurezza
" Tunneling + cifratura permettono di ottenerecollegamenti sicuri su reti pubbliche
• Questa soluzione e’ spesso usata in pratica
• Corrisponde alla definizione piu’ comune di VPN
! Collegamento di router con capacita’ nondisponibili nel resto della rete" E.s. Multicast
! Attraversamento di segmenti IP da partedi pacchetti di protocolli diversi" E.s. IPv6
! IP mobile
Reti Private - NAT -10
Crittografia e tunneling
! Crittografia" Datagrammi cifrati alla sorgente e decifrati a
destinazione
! Tunneling" datagrammi cifrati incapsulati in datagrammi IP
standard come parte dati
! Unica parte visibile: intestazione deldatagramma esterno" Parte dati contiene il datagramma originario
cifrato
" Indirizzi IP sorgente e destinazione originalicifrati
Reti Private - NAT -11
Es.: Datagram da Host1 a Host2
! Datagramma D1 da Host1 a Host2
! D1 cifrato da R1 --> D2
! D2 giunge a R2 e viene decifrato --> D1
! D1 e’ consegnato a Host2
Internet
Sottorete 1
R1 R2
Host1
Host2
Sottorete 2
Cifratura Decifratura
D1
D2 D2 D1
Reti Private - NAT -12
Esempio - cont.
! H2 non e’ cifrato
! Indirizzi IP in H2 sono quelli di R1 ed R2rispettivamente
! Indirizzi di Host1 e Host2 contenuti inH1 e percio’ cifrati
Parte dati di D1H1
Cifratura
D1 cifratoH2
D2
Reti Private - NAT -13
Es.: tabella di routing di R1
! La entry di default indica che il Datagram e’inviato a Internet senza cifratura e tunneling
Internet
R1
Rete
192.5.48.0
R2R4
Rete
128.10.2.0
R3
128.10.2.0 R2
192.5.48.0 Tunnel verso R3
default Router di ISP
Destinazione Next hop
Reti Private - NAT -14
Caso di studio - GRE
! Generic Routing Encapsulation (Cisco)" RFC 1701 (prima versione)
" RFC 2784 e 2890
! “This document specifies a protocol forencapsulation of an arbitrary network layerprotocol over another arbitrary network layerprotocol.” - RFC 2784
Reti Private - NAT -15
GRE/cont.
! Bit C: se 1 i campi Checksum e Reserved1sono validi
! Reserved0: i bit 1-5 sono usati se ilreceiver implementa la RFC 1701
! Ver: deve essere 0
Reti Private - NAT -16
GRE/cont.
! Protocol type: codice che identifica il pacchettoincapsulato
! Checksum: Internet checksum su header GRE epayload (escluso checksum stesso)" Presente se C = 1
! Reserved1" Presente se C = 1
" Usato in implementazioni compliant con RFC 1701
Reti Private - NAT -17
Payload - IPv4
! Da RFC 2784" “When a tunnel endpoint decapsulates a GRE packet
which has an IPv4 packet as the payload, thedestination address in the IPv4 payload packet headerMUST be used to forward the packet and the TTL of thepayload packet MUST be decremented. Care should betaken when forwarding such a packet, since if thedestination address of the payload packet is theencapsulator of the packet (i.e., the other end of thetunnel), looping can occur. In this case, the packetMUST be discarded.”
! Ovviamente si puo’ avere IPv4 su IPv4. Tale e’ adesempio il caso di reti private che usanotunneling su IP (v. piu’ avanti)" Esempio: tunneling compliant con RFC 1701
Reti Private - NAT -18
Estensioni
! Insieme di opzioni presenti nella primaproposta (RFC 1701)
" Valgono quando flag C = 1
! Possibilita’ di specificare route (sequenzedi router da attraversare)
! Possibilita’ di cifratura
" Campo Key
! Numeri di sequenza
! Checksum
Reti Private - NAT -19
Reti private
! Rete privata: gruppo di nodi (server, hostrouter) inaccessibili al traffico di altrigruppi
! Implementazione tipica: affitto di lineetra i nodi della rete privata
! Vantaggi potenziali
" Riuso degli indirizzi
" Riservatezza
Reti Private - NAT -20
Rete completamente isolata
! In questo caso la rete e’ completamenteinaccessibile dall’esterno
Linea dedicata
Rete privata
Reti Private - NAT -21
Reti ibride
! Linee dedicate connettono i diversigruppi di nodi che formano la rete privata
! Indirizzi IP pubblici
! Alcuni o tutti i gruppi sono connessi alresto di Internet
! Possibilta’ di riservatezza. Es.:" Traffico privato su linee dedicate
" Traffico da/verso il resto di Internet su lineecondivise
Reti Private - NAT -22
Reti ibride - esempio
! La Sottorete 1 puo’ comunicare con la Sottorete 2 inmodo riservato usando la linea dedicata
! L’accesso a Internet avviene attraverso i router R1 e R2
! La rete usa indirizzi IP validi
Internet
Linea privata dedicata
Sottorete 1Sottorete 2
R1 R2
Reti Private - NAT -23
Reti virtuali private (VPN)
! Reti completamente private o ibride costose" Es.: affitto o installazione linee dedicate
! Uso di Internet per la connessione tra sottoretinon offre riservatezza
! Rete virtuale privata (VPN)" Non usa linee dedicate
" Traffico da/verso nodi della rete privata e’ separato daltraffico di altre reti in modo “virtuale”
• Ad esempio cifratura
! Esistono diverse soluzioni" Soluzione piu’ diffusa: uso di cifratura e tunneling
Reti Private - NAT -24
Esempio - circuiti virtuali
! Nella figura (a) sono mostrate duereti private fisiche
! Nella figura (b) sono mostrate lecorrispondenti reti private virtuali
! Si usano circuiti virtuali (es. ATM oFrame-Relay)
! I pacchetti della rete X nonpossono essere intercettatidalla rete Y se non esistealmeno un VC comune traesse
Corporation X private network
Corporation Y private network
Physical links
Physical links
Virtual circuits
(a)
(b)
C
A B
K L
M
K L
M
C
A B
Reti Private - NAT -25
Indirizzamento privato
Reti Private - NAT -26
Indirizzi privati
! La specifica CIDR prevede alcuni blocchidi indirizzi riservati all’uso su inter-retiprivate non direttamente connesse aInternet
! Indirizzi non instradabili
" Un datagram destinato a un indirizzo privatoviene riconosciuto da un router di Internet
Reti Private - NAT -27
Indirizzi privati - cont.
! Blocchi di indirizzi privati" 10.0.0.0/8
" 172.16.0.0/12
" 192.168.0.0/16
" 169.254/16 (Link-local addresses)• Usati quando non e’ disponibile un server DHCP
! Piu’ sottoreti di Internet possono usarequesti blocchi di indirizzi, purche’ nonsiano accessibili dall’esterno
! Una VPN spesso usa indirizzi privati per inodi interni
Reti Private - NAT -28
! Le due sottoreti della VPN usano blocchi diindirizzi privati
! R1 ed R2 hanno bisogno di due indirizziglobablmente validi per il tunneling
VPN con indirizzi privati
Internet
R1 R2
Internet
10.1.0.0/16
10.2.0.0/16
10.2.0.110.1.0.1223.190.16.1 220.128.3.2
Reti Private - NAT -29
Vantaggi/svantaggi
! Servono meno indirizzi globali
! Problema: gli host delle sottoreti localinon hanno accesso a Internet
" Per avere accesso a Internet serve unindirizzo IP globale
! Soluzioni
" Application gateway
" NAT: Network Address Translation -traduzione degli indirizzi di rete
Reti Private - NAT -30
Network Address Translation
Reti Private - NAT -31
NAT - Network AddressTranslation
! Associazione di indirizzi pubblici aindirizzi privati
! Il NAT permette un accesso a livello IP
! Requisiti
" Singola connessione a Internet
" Almeno un indirizzo IP valido
! L’uso di Application Gateway permetteagli host l’accesso a determinati servizima non a livello IP
Reti Private - NAT -32
Motivazioni e storia
! Proposto per la prima volta nel 1994 inrisposta alla penuria di indirizzi IP" Idea: ad ogni istante, soltanto un
sottoinsieme dei nodi della rete internacomunica verso l’esterno
! Il NAT e’ ormai usato con molte finalita’" Realizzazione di reti non visibili all’esterno
" Sicurezza
Reti Private - NAT -33
NAT/cont.! Uscire dallo spazio di indirizzamento
privato non e’ un problema…
! Il problema e’ il percorso inverso
Reti Private - NAT -34
Funzionamento di base! Pool di indirizzi globali assegnati al NAT
! Mappati su quelli privati quando serve
" Pacchetti provenienti dall’esterno e diretti aun indirizzo globale non mappato -->scartati
Reti Private - NAT -35
NAT statico
! Associazione statica tra un indirizzo globale e unoprivato
! Usato quando un dispositivo deve essereaccessibile dall’esterno
! La presenza del NAT router offre protezione
Reti Private - NAT -36
NAT dinamico
! Associazione dinamica tra un indirizzo globale euno privato
! Il NAT ha a disposizione un pool di indirizzi globali
! Allo stesso indirizzo privato possono essereassociati indirizzi pubblici diversi nel tempo
Reti Private - NAT -37
NAT dinamico/cont.
! Associazioni (o binding o mapping)create dinamicamente
! Scadenza binding determinata da timer
Reti Private - NAT -38
NAT dinamico/1 indirizzo globale
Traduzione per i Datagram da/verso 10.1.0.2
! IP sorgente di D1: 10.1.0.2 --> 223.190.16.1
! IP destinazione di D2: 223.190.16.1 --> R
! D.: come fa R a capire che D2 e’ diretto a 10.1.0.2?
Internet
R
Internet
10.1.0.2
10.1.0.1 223.190.16.1
Router NAT
D1
D2
Reti Private - NAT -39
Problemi implementativi
! Tutti i pacchetti in arrivo ad R da Internethanno lo stesso indirizzo di destinazione(es.: 223.190.16.1)
! Come distinguere la destinazioneall’interno della rete locale?
! Es.: D2 e’ la risposta a D1, quindi ladestinazione reale di D2 e’ 10.1.0.2
! Soluzioni" Tabelle
" NAT multi-indirizzo
" NAT con mappatura delle porte
Reti Private - NAT -40
Tabelle di traduzione NAT
! Servono ad instradare datagrammi iningresso all’host interno corretto" Si ricordi che tutti i datagrammi in arrivo al
router NAT hanno lo stesso IP di destinazione
! Si basano sulla seguente assunzione:" Se l’host interno H invia un datagramma
all’host di Internet A allora i datagrammiprovenienti da A sono diretti a H
! Funziona se al piu’ 1 host interno puo’inviare datagrammi allo stesso hostglobale
Reti Private - NAT -41
Tabelle NAT - esempio
! 10.1.0.2 comunica con225.12.3.28
! 10.1.0.3 comunica con225.12.3.25
Internet
RInternet
10.1.0.2
Router NAT
225.12.3.25
225.12.3.2810.1.0.3
225.12.3.28 10.1.0.2
225.12.3.25 10.1.0.3
Provenienza Dest. host
Tabella di traduzione di R
Reti Private - NAT -42
Tabelle NAT - cont.
! Inizializzazione delle tabelle NAT
" Manuale
" Datagram in uscita: la prima volta che R riceveun datagram da 10.1.0.2 per 225.12.3.28 creal’entry (225.12.3.28, 10.1.0.2 ) nella tabellaNAT - soluzione piu’ usata
" Inizializzazione basata sui nomi di dominio
! Svantaggio principale: al massimo 1macchina locale puo’ accedere a unastessa macchina su Internet
Reti Private - NAT -43
NAT multi-indirizzo
! L’interfaccia esterna del router NAT hapiu’ indirizzi globali associati
! Gli indirizzi globali sono assegnati arotazione come indirizzi sorgente deidatagrammi uscenti
! K indirizzi globali permettono fino a Kconnessioni di host interni con la stessamacchina su Internet
Reti Private - NAT -44
Es.: NAT multi-indirizzo (K=2)
! 10.1.0.2 e 10.0.0.4comunicano con225.12.3.28
! 10.1.0.3 comunicacon 225.12.3.25
Internet
RInternet
10.1.0.2Router NAT
225.12.3.25
225.12.3.2810.1.0.3
10.1.0.4
10.1.0.1 223.190.16.1
223.190.16.2
225.12.3.28 10.1.0.2
225.12.3.28 10.1.0.4
Provenienza Dest. host
Tabella di traduzione di R
IP global dest.
223.190.16.1
223.190.16.2
225.12.3.25 223.190.16.1 10.1.0.3
Reti Private - NAT -45
NAT con mappatura delle porte
! Il router NAT individua le destinazioni(interne) dei datagrammi provenienti daInternet anche in base al protocollo ditrasporto
! Usato quando i datagrammi trasportanosegmenti TCP o UDP
! Usa anche i numeri di porta
! Necessita’ di estendere le entry dellatabella di traduzione NAT
Reti Private - NAT -46
Es.: Mappatura delle porte
! 10.1.0.1 e 10.1.0.5 hanno ciascuno unaconnessione HTTP verso 128.10.19.20
! Gli altri host hanno connessioni TCP verso altremacchine non mostrate in figura
Internet
RInternet
10.1.0.5Router NAT
128.10.19.2010.1.0.1
10.1.0.3
10.1.0.6
223.190.16.110.1.0.2
Reti Private - NAT -47
Esempio - tabella NAT
! Tabella NAT" Le prime due righe corrispondono alla figura precedente
" Manca colonna protocollo di trasporto (TCP in tutti i casi)
1400780128.210.1.5127410.1.0.3
1401221207.200.75.122660010.1.0.6
1401080128.10.19.20238610.1.0.1
1400380128.10.19.202102310.1.0.5
PortaNAT
Portaesterna
Indirizzo esternoPortaprivata
Indirizzoprivato
Reti Private - NAT -48
Esempio - cont.
! Il router NAT mantiene un numero di portaNAT distinto per ciascuna connessione
" Due host locali potrebbero scegliere lo stessonumero di porta privata
! La macchina 128.10.19.20 individua le dueconnessioni corrispondenti alle prime duerighe della tabella precedente cosi’:
(223.190.16.1, 14003, 128.10.19.20, 80)
(223.190.16.1, 14010, 128.10.19.20, 80)
Reti Private - NAT -49
Visione di insieme
! Binding vale per la durata di un timerassociato
! Fino a 65536 sessioni per ogni indirizzoesterno
Reti Private - NAT -50
Comportamento NAT
! Possono aversi differenze notevoli tra lediverse soluzioni proposte
" Persino tra soluzioni diverse di uno stessoproduttore
! Binding - chi lo puo’ usare?
" Simmetrico
" Full-cone
" Restricted-cone
" Port-restricted-cone
" Puo’ essere diverso tra UDP e TCP
Reti Private - NAT -51
NAT simmetrico! Mapping determinato da indirizzo/porta di destinazione
! Pacchetti provenienti dall’esterno filtrati in base aindirizzo/porta
! Soltanto pacchetti provenienti da indirizzi esterni filtratipossono passare
Reti Private - NAT -52
NAT full-cone! Pacchetti provenienti dall’esterno passano
qualora la coppia indirizzo/porta didestinazione sia un indirizzo del pool assegnatoal NAT attualmente in uso
Reti Private - NAT -53
Port-restricted-cone! Pacchetti provenienti dall’esterno passano
qualora la coppia indirizzo/porta didestinazione sia attualmente in uso e l’indirizzosorgente sia quello associato alla coppiaconsiderata nel binding NAT
Reti Private - NAT -54
Interazione con altri protocolli
! Il NAT interagisce con i protocolli di stratisuperiori e con ICMP
! Il NAT deve:" Modificare gli header IP
" Modificare i numeri di porta TCP e UDP
" Ricalcolare i checksum (perche’ gli headercambiano)
" Gestire esplicitamente messaggi ICMP (es.ping)
" Traduzione di numeri di porta in sessioni FTP
Reti Private - NAT -55
Aspetti da approfondire
! Binding
" NAT binding behaviour
" Port binding behaviour
" Binding timer refresh
" Filtering
! Interazione con altri protocolli
! Riferimento di base:" http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj
_7-3/anatomy.html (v. programma)
Reti Private - NAT -56
Firewall
Reti Private - NAT -57
Firewall
! Router con funzionalita’ aggiuntive collocato trauna rete privata e il resto di Internet
! Inoltra/filtra i pacchetti che lo attraversano
! Permette di avere politiche di sicurezzacentralizzate
! Spesso integrato con NAT
Rest of the Internet Local site
Firewall
Reti Private - NAT -58
Componenti di un firewall
! Packet-filtering router
! Application level gateway (proxy)
! Circuit level gateway
! Spesso ma non necessariamente presentitutte insieme
Reti Private - NAT -59
Packet filtering router
Picture from IBM© Redbook on TCP/IP
! Filtraggio basato su header pacchetti" IP source/destination
" UDP/TCP Source/destination port
" ICMP message type
" Payload (UDP, TCP, IP tunnel…)
Reti Private - NAT -60
Esempio - indirizzi IP enumeri di porta
! Filter-Based Solution" Il firewall ha una tabella di filtraggio
" Tipicamente ogni riga e’ una 4-pla (SourceIP,SourcePort, DestIP, DestPort)
• ( 192.12.13/24, *, 128.7.6.5, 80 )
• (*,*, 128.7.6.5, 80 )
" default: inoltro o no?
Rest of the Internet Local site
Firewall
Reti Private - NAT -61
Application Gateway
Picture from IBM© Redbook on TCP/IP
! Un proxy per ogni applicazione
! Proxy si comporta come un server verso il clientlocale e come un client verso il server remoto
Reti Private - NAT -62
Application Gateway/cont.
Picture from IBM© Redbook on TCP/IP
! Si puo’ disabilitare traffico IP tra interno ed esterno ma…
! … possono interagire con l’esterno soltanto le applicazionipresenti nel proxy
Reti Private - NAT -63
Esempio - FTP
Picture from IBM© Redbook on TCP/IP
! Bisogna modificare il Sw FTP" E’ necessario implementare il passaggio per un proxy
Reti Private - NAT -64
FTP/cont.
Picture from IBM© Redbook on TCP/IP
! Funzionamento in modalita’ attiva" Possibili attacchi - quali?
Reti Private - NAT -65
Una soluzione…
Picture from IBM© Redbook on TCP/IP
! Passive mode o Firewall-friendly FTP
Reti Private - NAT -66
Circuit Level Gateway
! Si tratta in pratica di un proxy a livello ditrasporto (UDP o TCP)
! Permette il funzionamento di tutte leapplicazioni che rispettano le specifiche alivello di trasporto" Esempio: si decide di permettere tutto e solo
il traffico TCP e, per UDP, soltanto quello DNS
" Tutte le applicazioni basate su TCPfunzionano senza modifiche e cosi’ pure ilDNS
! Non fa packet filtering
Reti Private - NAT -67
Firewall
Tipi di firewall
Reti Private - NAT -68
Packet filtering
Picture from IBM© Redbook on TCP/IP
! Economico
" Semplicemente un router che fa filtering
! Regole: di solito tutto il traffico che non e’ esplicitamenteconsentito e’ vietato
Reti Private - NAT -69
Dual-homed
Picture from IBM© Redbook on TCP/IP
! Almeno due interfacce di rete (e relativi indirizzi IP)
! Tutto cio’ che non e’ permesso e’ vietato
! Non e’ possibile traffico IP diretto tra interno ed esterno
! Es.: usiamo un proxy firewall
Reti Private - NAT -70
Screened host
! Application GW (bastion) e packet filter
! Server sulla stessa subnet del bation GW
! Accesso al server dall’esterno soltanto attraverso bastion GW" Come si implementa questa politica?
" Come si scherma il server dal traffico proveniente dall’ interno?
Reti Private - NAT -71
DeMilitarized Zone
! Sia il traffico proveniente dall’interno che quelloproveniente dall’esterno devono passare perBastion GW
! Massimo grado di sicurezza
Reti Private - NAT -72
Riferimenti! Tunnel
" Rif. 1, 4.1.8
" GRE della Cisco, RFC 2784 e 2890:http://tools.ietf.org/html/rfc2784 (rfc2890)
" Panoramica sulle reti private virtuali:http://www.vpnc.org/vpn-technologies.html
! NAT" Rif. 3, 21.3
" http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_7-3/anatomy.html
! Firewall: Rif. 4, 21.3 (argomento trattato moltobene)
! Nota: tutti i riferimenti dati costituisconomateriale integrante del corso