NAT e proxy

Transcript

NAT e proxy
Connessione di reti private ad Internet
Fulvio Risso
1
Connessione di reti private ad Internet
Diffusione di reti IP private
Utilizzo di indirizzi privati
Gli indirizzi privati risolvono il problema dell’unicità
della destinazione
Non risolvono il problema dell’indirizzo di ritorno
Due soluzioni principali
2
NAT/PAT
Application-level Proxy
Network Address Translator
Principio di funzionamento
Sostituzione dell’indirizzo sorgente privato con quello pubblico del
gateway in uscita verso Internet
Sostituzione dell’indirizzo destinazione pubblico con quello privato
dell’host in ingresso verso la rete privata
Rete pubblica
Rete privata
Da 10.1.1.1
a 20.2.2.2
10.1.1.1
3
10.3.3.3
Da 20.3.3.3
a 20.2.2.2
20.3.3.3
20.2.2.2
NAT in presenza di più host privati
Mapping “uno a uno” tra indirizzi privati e indirizzi
pubblici
Metodo poco efficiente; difficoltà di riuso degli indirizzi (timeout?)
Potenzialmente richiete tanti indirizzi pubblici quanti host privati
Vanifica il risparmio di indirizzi promesso dal NAT
Permette la traduzione interno-esterno e viceversa
Rete privata
Rete pubblica
10.1.1.1
10.1.1.2
10.1.1.3
4
10.3.3.3
20.3.3.3
20.3.3.4
20.3.3.5
20.2.2.2
Port Address Translator
Rimappa sia indirizzi che porte
Rete pubblica
Rete privata
10.1.1.1 (1000)
10.1.1.2 (1010)
10.3.3.3
20.3.3.3
20.2.2.2
10.1.1.3 (1000)
5
Private network
Public network
10.1.1.1 (1000)
20.3.3.3 (2000)
10.1.1.2 (1010)
20.3.3.3 (2001)
10.1.1.3 (1000)
20.3.3.3 (2002)
PAT
Non funziona
Nel caso in cui il protocollo non abbia la porta (es. ICMP, IPSec)
6
Spesso vengono implementate soluzioni ad hoc
Nel caso in cui sia necessario avere una porta predeterminata
NAT e IPSec
Problematico nel caso di Authentication Header (AH), dal
momento che gli indirizzi IP sono parte del calcolo della
checksum
Funziona nel caso di Encrypted Security Payload (ESP), anche se
la porta non è in chiaro
Tipologie di mapping
7
Esistono numerose tipologie di mapping, a seconda
dell’implementazione del NAT/PAT
NAT simmetrici
Full-cone
...
NAT + PAT (1)
Permette un mapping degli indirizzi N:1 sfruttando
l’informazione delle porte
Riutilizzo degli indirizzi pubblici
Il traffico esterno viene percepito come generato da un unico
host con molte sessioni
Viene percepita come una misura che aumenta la sicurezza
Commercialmente la soluzione viene indicata genericamente
come “NAT”
Molto leggero dal punto di vista computazionale
8
Difficilmente presenta problemi di scalabilità
NAT + PAT (2)
Problematiche
Funziona solamente in modalità client-server
No connessioni rete privata – altra rete privata
Difficoltà a risalire all’identità del mittente
Il responsabile di eventuali problemi è il proprietario del NAT
Necessità di attivare un logging per sessione
Non lavora a livello applicativo
9
Es. Problemi con FTP, VoIP
Se un applicazione include indirizzi all’interno della busta applicativa, la
traduzione non va a buon fine
Es. payload DNS, SIP, FTP
Garbage collection
Sempre problematico (timeout di inattività delle sessioni?)
In alcuni casi la connessione cade a causa di lunghi periodi di inattività
Benefici del NAT / PAT
10
NAT e PAT permettono di:
Accedere alla Internet pubblica senza richiedere indirizzi IP
registrati
Interconnettere spazi di indirizzamento sovrapposti
Evitare la rinumerazione degli host
Ridurre il consumo di indirizzi ufficiali
Migliorare la sicurezza della rete “nascondendo” gli indirizzi reali
degli host
NAT e spazi di indirizzamento sovrapposti
Problematica comune nel caso di
Acquisizioni e/o unioni di aziende
Extranet
Cambiamento di ISP
Necessità di nascondere /modificare gli indirizzi
Es. nel caso di policy (es. route optimization, security/filtering,
Rete privata
Rete privata
management)
Da 10.1.1.1
a 20.4.4.4
10.1.1.1
11
10.3.3.3
Da 20.3.3.3
a 20.4.4.4
20.3.3.3
20.4.4.4
Da 20.3.3.3
a 10.1.1.1
10.3.3.3
10.1.1.1
Spazi di indirizzamento sovrapposti e DNS
La problematica viene spesso
configurazione ad hoc del DNS
DNS per i client di az2
www.az1.com
10.1.1.1
www.az1.com
20.3.3.3
www.az2.com
20.4.4.4
www.az2.com
10.1.1.1
DNS
Da 10.1.1.1
a 20.4.4.4
12
con
DNS per i client di az1
Rete privata
10.1.1.1
risolta
10.3.3.3
Da 20.3.3.3
a 20.4.4.4
20.3.3.3
20.4.4.4
una
Rete privata
Da 20.3.3.3
a 10.1.1.1
10.3.3.3
10.1.1.1
Proxy Server
Web client
Proxy
Web Server
Internet
TCP SYN for HTTP
TCP SYN, ACK
TCP ACK
HTTP GET
Proxy
TCP SYN for HTTP
TCP SYN, ACK
TCP ACK
HTTP GET
Proxy
HTTP Reply
13
HTTP Reply
Proxy Server
Il client deve essere configurato con l’indirizzo del proxy server
Le applicazioni utilizzate dal client devono essere modificate per
poter utilizzare un proxy
La maggior parte dei web browser hanno incorporato il software
necessario per l’utilizzo di un server proxy
Ad esempio, nel caso di una richiesta HTTP il client, dopo aver
instaurato una connessione TCP con il proxy, invia un messaggio di
GET che comprende l’URL completo
Sarà quindi il proxy, dopo averne risolto il nome, a comunicare
direttamente con il server Web
Il proxy fa normalmente cashing delle informazioni
Il proxy può mettere in atto politiche di sicurezza
14
Senza Proxy Server
GET /pub/WWW/TheProject.html HTTP/1.0
Web client
www.w3.org
3
4
1
DNS query
DNS response
Internet
2
DNS Server
15
Caratteristiche di un proxy server
Vantaggi
Controllo molto più accurato (esattamente ciò che l’applicativo
client riceverà)
Possibilità di implementare controlli user-based
16
Es. controllo su attachment mail, oppure oggetti web
Autenticazione “personale”, con relative policy di accesso alla
rete
Nel NAT, al massimo si possono avere controlli IP-based
Possibilità di fare caching
Svantaggi
(Molto) maggiore carico computazionale
Spesso richiede configurazione ad hoc sul client
Necessita di un modulo per ognuna delle applicazioni supportate
Con Proxy Server
GET http://www.w3.org//pub/WWW/TheProject.html HTTP/1.0
GET /pub/WWW/TheProject.html HTTP/1.0
Web client
4
1
5
6
Internet
2
Proxy
3
DNS Server
17
www.w3.org
Protezione delle reti: Router vs. Proxy
Packet-Filtering
Routers
OSI
Model
Proxy
Servers
Application
+ Low Cost
+ High Performance
+ (Usually) Not UNIX
+ Transparent
Presentation
Session
Transport
- Client Addresses Exposed
- Stateless —> Spoofable
- Error-Prone Rulesets
Network
Data Link
Physical
18
+ Stateful
+ Client Addresses Hidden
- Costly
- Low Performance
- Shares UNIX Problems
- Intrusive on Client Side
Packet Filter
Web client
Web Server
Packet Filter
Internet
TCP SYN for HTTP
TCP SYN, ACK
19
Permit
Permit
TCP ACK
Permit
HTTP GET
Permit
TCP SYN for HTTP
TCP SYN, ACK
TCP ACK
HTTP GET