argomenti della lezione - uniroma1.it

36
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

Upload: others

Post on 15-Mar-2022

2 views

Category:

Documents


0 download

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