Come amministrare IPv6 sulla propria rete

Transcript

Come amministrare IPv6 sulla propria rete
Come amministrare
IPv6 sulla propria
rete
Consigli pratici per il gestore
Marco Sommani
Argomenti
  IPv6: di cosa ci dobbiamo preoccupare
•  Tipologie di indirizzi
•  Comandi utili
•  Il DHCPv6
•  I tunnel automatici
•  Come difendersi dai rogue RA
•  Strumenti di monitoraggio
2
Marco Sommani
Come amministrare IPv6 sulla propria rete
IPv6 sulle LAN: quali rischi corriamo? (1 di 2)
•  Protezione perimetrale
•  Per IPv4 usiamo le ACL dei router?
•  Nessun aumento dei rischi: si può fare lo stesso in IPv6
•  Attenzione a non bloccare gli ICMPv6 fondamentali
•  Abbiamo un firewall?
•  Se il firewall ha anche IPv6 i nostri rischi non aumentano
•  Altrimenti ne dobbiamo comprare un altro
•  Se serve un nuovo firewall, meglio evitare quelli “all’antica”, che ragionano
solo su indirizzi e porte
•  Rogue DHCP server: stesse problematiche in IPv4 e in IPv6
•  Rogue router advertisement: novità di IPv6.
•  Possono essere neutralizzati
•  Scan della rete: con IPv6 saranno un ricordo del passato
3
Marco Sommani
Come amministrare IPv6 sulla propria rete
IPv6 sulle LAN: quali rischi corriamo? (2 di 2)
•  Controllo degli indirizzi
•  Il gestore vorrebbe sempre sapere, per ogni indirizzo IP della sua rete,
quale apparato lo usa(va) e dove si trova(va)
•  Il problema è presente, e spesso sottovalutato, anche in ipv4
•  Con ipv6 il problema aumenta; come fronteggiarlo:
•  Assimilando bene i concetti dell’indirizzamento ipv6
•  Attrezzandosi con opportuni programmi di monitoring
•  Quindi finché non sono attrezzato per il monitoring è più sicuro
non attivare IPv6?
•  Sbagliato!!! IPv6 “colpisce” anche dove il gestore non lo ha attivato:
•  I tunnel automatici (6to4 e Teredo) possono trasformarsi in cavalli di Troia
•  Possiamo essere individuati se dalla nostra rete partono attacchi
attraverso un tunnel automatico ipv6?
•  Sì, perché dall’indirizzo IPv6 dell’attaccante si ricava l’indirizzo IPv4
dell’apparato su cui terminava il tunnel
4
Marco Sommani
Come amministrare IPv6 sulla propria rete
I dubbi dell’amministratore di rete
•  Come assegno gli indirizzi agli host della mia rete?
•  Configurazione manuale?
•  Non tutti gli OS la consentono
•  Configurazione via DHCPv6?
•  Non tutti gli OS la consentono
•  Configurazione via SLAAC?
•  Possibile su tutti gli OS, ma difficile da controllare
•  Non esiste una regola ottimale, anche perché sistemi operativi
diversi hanno comportamenti diversi
•  Es.: alcuni sistemi, se configurati manualmente, ignorano i RA, altri li
ascoltano ed eseguono anche la SLAAC
•  È facile obbligare un’interfaccia ad avere un dato indirizzo, ma è
difficile impedirle di acquisirne altri
•  Ogni interfaccia ha sempre anche un indirizzo link-local
•  Non sempre l’Interface-Id del link-local è derivato dal MAC
5
Marco Sommani
Come amministrare IPv6 sulla propria rete
Argomenti
•  IPv6: di cosa ci dobbiamo preoccupare
  Tipologie di indirizzi
•  Comandi utili
•  Il DHCPv6
•  I tunnel automatici
•  Come difendersi dai rogue RA
•  Strumenti di monitoraggio
6
Marco Sommani
Come amministrare IPv6 sulla propria rete
Tempo di vita degli indirizzi global-unicast
•  Per quelli assegnati manualmente è infinito
•  Per la SLAAC i RA indicano i tempi associati ad ogni prefisso e ad
ogni RA si riavviano i timer
•  Per quelli assegnati via DHCP i tempi sono indicati dal server e
rinnovati ad ogni lease
Preferred life)me Valid life)me •  Deprecated: l’indirizzo è ancora valido, ma l’host farebbe bene a
non usarlo per nuove connessioni
7
Marco Sommani
Come amministrare IPv6 sulla propria rete
Indirizzi global-scope “public”
•  Servono ad essere contattati dagli altri
•  È bene che cambino il meno possibile
•  Gli indirizzi assegnati manualmente sono public
•  dovrebbero avere il 7º bit dell’Interface-Id = 0
•  I lifetime vengono rinnovati ad ogni RA (SLAAC) o lease (DHCPv6)
•  L’Interface-Id degli indirizzi global scope costruiti via SLAAC è lo
stesso del link-local e può essere derivato:
•  dall’indirizzo link-layer  7º bit = 1
•  costruito in maniera random (Windows Vista e 7)  7º bit = 0
•  Il DHCPv6 assegna gli indirizzi scegliendoli dai pool definiti dal
gestore
•  Gli indirizzi dei pool dovrebbero avere il 7º bit dell’Interface-Id = 0
8
Marco Sommani
Come amministrare IPv6 sulla propria rete
Indirizzi global-scope “temporary”
•  Se usiamo gli indirizzi public anche per le connessioni uscenti,
facilitiamo il compito a chi vuole fare statistiche sulle nostre
abitudini
•  L’Interface-Identifier degli indirizzi temporary non è mai derivato
dall’indirizzo link-layer
•  I lifetime degli indirizzi temporary non sono rinnovati alla
scadenza
•  5 secondi prima dello scadere del preferred lifetime, l’interfaccia
acquisisce un nuovo temporary address
•  Calcolando un nuovo Interface Identifier in caso di SLAAC
•  Chiedendo un nuovo lease in caso di DHCPv6
•  Il preferred lifetime di un temporary address non dovrebbe
superare un giorno
•  Il valid lifetime non dovrebbe superare una settimana
9
Marco Sommani
Come amministrare IPv6 sulla propria rete
Comportamento default dei sistemi operativi
•  Per ogni prefisso annunciato via SLAAC con bit “auto” a 1:
•  Windows Vista e successivi attivano
•  Un indirizzo public con Interface-Identifier random
•  Almeno un indirizzo temporary (usato nelle connessioni uscenti)
•  Windows XP e i sistemi iOS (iPhone e iPad) dalla versione 4.3 attivano
•  Un indirizzo public con Interface-Id derivato dall’indirizzo link-layer
•  Almeno un indirizzo temporary (usato nelle connessioni uscenti)
•  Gli altri (inclusi i vecchi iOS) attivano
•  Un indirizzo public con Interface-Id derivato dall’indirizzo link-layer
•  Se c’è il servizio DHCPv6
•  Windows Vista e successivi richiedono
•  Un public address via DHCPv6
•  Molti comportamenti default possono essere variati, ma:
•  Gli apparati Apple con iOS e gli Android non sono configurabili
•  Il client DHCPv6 è nativo solo su Windows Vista e successivi
•  È nativo anche su iOS ma solo per i parametri diversi dagli indirizzi
10
Marco Sommani
Come amministrare IPv6 sulla propria rete
Come variare alcuni comportamenti default
•  Windows:
•  Per attivare/disattivare gli indirizzi temporary fare:
•  netsh interface ipv6 set privacy state=[enabled|disabled]
•  Di default sono abilitati con preferred-lifetime=1d e valid-lifetime=7d
•  Per attivare/disattivare la randomizzazione dell’Interface-Id
dell’indirizzo public e del link-local fare (solo Vista e successivi):
•  netsh interface ipv6 set global randomizeidentifiers=[disabled|enabled]
•  Il comando influenza anche il calcolo dell’indirizzo link-layer
•  Mac OS X:
•  L’uso degli indirizzi temporary è determinato dalla variabile
net.inet6.ip6.use_tempaddr:
•  0: non usare i temporary addresses (default)
•  1: usare i temporary addresses
•  per vedere il valore: sysctl net.inet6.ip6.use_tempaddr
•  per settarlo: sysctl –w net.inet6.ip6.use_tempaddr [0|1]
11
Marco Sommani
Come amministrare IPv6 sulla propria rete
È saggio inibire l’invio dei RA da parte dei router?
•  Solo se tutti gli apparati vengono configurati manualmente
•  DHCPv6 funziona solo in combinazione con i RA
•  È possibile attivare i RA e inibire la SLAAC annunciando i prefissi
con il bit “auto” settato a 0
•  Chi configura manualmente IPv6 senza richiedere l’indirizzo al
gestore ha buone probabilità di “farla franca”
•  Resta aperto il problema dei
tunnel automatici
•  Resta aperto il problema dei
rogue RA
•  IPv6 è pensato per
l’autoconfigurazione
(stateless o stateful), non
per gli interventi manuali
12
Marco Sommani
Come amministrare IPv6 sulla propria rete
Guida alla configurazione dei RA (1 di 2)
•  I RA (rfc2461) devono essere attivati su tutte le interfacce del router
su cui vogliamo avere host ipv6 non configurati manualmente
•  Sui link router-router sono inutili ma non dannosi
•  Parametri globali (indipendenti dai prefissi annunciati):
•  Mettere a 1 il bit “Managed” se vogliamo che gli host acquisiscano gli
indirizzi in modalità stateful (cioè via DHCPv6)
•  Mettere a 1 il bit “Other” se vogliamo che gli host acquisiscano gli altri
parametri (indirizzi DNS etc.) via DHCPv6
•  Il router-lifetime (tipicamente 1800 sec) dice per quanto tempo, dopo la
ricezione del RA, il router può essere usato come default-router
•  router-lifetime=0 permette di fare annunci senza essere usati come router
•  L’rfc4191 introduce due bit di preference, con valori Low, Medium
(default), High e Reserved
•  Se il router lo consente, mettere High
•  Sul JunOS l’opzione non è ancora implementata
•  L’rfc6106 aggiunge un’opzione per annunciare gli indirizzi dei DNS
•  Per gli altri parametri fidarsi dei valori default
13
Marco Sommani
Come amministrare IPv6 sulla propria rete
Guida alla configurazione dei RA (2 di 2)
•  Parametri associati ai prefissi annunciati:
•  Il prefisso stesso
•  Usare sempre la lunghezza default: 64
•  Il preferred- e il valid-lifetime per gli indirizzi creati con quel prefisso
•  Deve essere preferred-lifetime ≤ valid-lifetime
•  Meglio se il valid è assai maggiore del preferred
•  valid-lifetime = 0 dichiara il prefisso immediatamente invalido
•  Chi si era assegnato via SLAAC un indirizzo con quel prefisso lo deve eliminare
•  Di solito vanno bene i valori default
•  Mettere a 0 il bit “Auto” se non si vuole che il prefisso sia usato per la
SLAAC
•  Il DHCPv6 non comunica i prefissi, si limita ad assegnare indirizzi
•  Per gli altri parametri usare i valori default
•  In particolare, lasciare a 1 il flag “On-link”
•  On-link = 0 inibisce la Neighbor Discovery per il prefisso
14
Marco Sommani
Come amministrare IPv6 sulla propria rete
Argomenti
•  IPv6: di cosa ci dobbiamo preoccupare
•  Tipologie di indirizzi
  Comandi utili
•  Il DHCPv6
•  I tunnel automatici
•  Come difendersi dai rogue RA
•  Strumenti di monitoraggio
15
Marco Sommani
Come amministrare IPv6 sulla propria rete
Comandi di configurazione
•  Grazie all’autoconfigurazione (stateless o stateful), ipv6 si attiva
senza interventi da parte dell’utente
•  Su Windows XP/SP2 va dato il comando “netsh interface ipv6 install”
•  Sui sistemi operativi più recenti molti parametri ipv6 sono
configurabili usando la stessa interfaccia grafica che si usa per ipv4
•  Sui sistemi Unix, ai comandi cli classici (ifconfig, route,…) sono
stati aggiunti nuovi parametri per ipv6
•  Fare “man comando” per scoprire i parametri
•  Sui sistemi Windows (da XP/SP2 in poi) qualunque azione o
interrogazione su ipv6 può essere fatta con
•  netsh interface ipv6 ….
•  usare il “?” per conoscere tutti i parametri
16
Marco Sommani
Come amministrare IPv6 sulla propria rete
Comandi di monitoraggio
•  Sulla maggior parte dei sistemi, ai comandi ping e traceroute/
tracert è stata affiancata la versione con il “6” in fondo:
•  ping6, traceroute6/tracert6
•  Sui Windows più recenti c’è un unico comando che sceglie
automaticamente il protocollo
•  Per forzare la scelta del protocollo si usano appositi flag:
•  [ping|tracert] [-4|-6] …
•  Gli altri comandi (netstat, ifconfig…) sono stati estesi con
opportuni parametri
•  Per conoscere i mapping fra indirizzi ipv6 e indirizzi link-layer:
•  Su Linux: “ip –x neigh show”
•  Su OSX: comando “ndp” (“man ndp” per i parametri)
•  Sui Windows: “netsh interface ipv6 show neighbors”
17
Marco Sommani
Come amministrare IPv6 sulla propria rete
Argomenti
•  IPv6: di cosa ci dobbiamo preoccupare
•  Tipologie di indirizzi
•  Comandi utili
  Il DHCPv6
•  I tunnel automatici
•  Come difendersi dai rogue RA
•  Strumenti di monitoraggio
18
Marco Sommani
Come amministrare IPv6 sulla propria rete
DHCPv6 (rfc3315) e DHCPv4 (rfc2131) sono diversi
•  Non vengono fornite informazioni relative al link, come defaultrouter, prefix, prefix-length, mtu, current-hop-limit
•  queste informazioni possono essere ricavate dai router-advertisement,
anche quando non si usa la SLAAC
•  Fissità degli indirizzi:
•  DHCP Unique Identifier (DUID), conservato da ogni entità DHCP in
memoria non volatile
•  I server mantengono in memoria non volatile la cache delle
associazioni DUID – indirizzo IPv6
•  Se il pool è sufficientemente grande un indirizzo IPv6 viene sempre
riassegnato allo stesso client
•  IPv6 Prefix Option (rfc3633)
•  Distribuzione via DHCPv6 di prefissi da un router centrale a un router
periferico
•  DHCPv6 Client FQDN Option (rfc4704)
•  Il client comunica al server il suo nome a dominio e i due concordano
chi fa gli eventuali DNS Update
19
Marco Sommani
Come amministrare IPv6 sulla propria rete
DHCPv6 e Router-Advertisement
•  DHCPv6 presuppone che i router presenti sul link emettano i RA
•  Senza i RA tutti gli host devono essere configurati manualmente
•  Comportamento corretto di un host con DHCPv6 client:
•  Acquisire l’indirizzo link-local
•  Apprendere dai RA i prefissi, le loro lunghezze, l’MTU, il current-hoplimit e gli indirizzi dei router
•  Se arrivano RA con il bit “M” a 1, provare ad acquisire un indirizzo
globale via DHCPv6
•  Se arrivano RA con il bit “O” a 1, provare ad acquisire via DHCPv6 le
informazione diverse dagli indirizzi
•  Per tutti prefissi annunciati nei RA con il bit “auto” a 1, fare la SLAAC
•  Conclusioni:
•  Le scelte le fa chi configura i RA sui router
•  Se il bit “auto” di qualche prefisso è a 1, gli host con DHCPv6 client
avranno sia l’indirizzo DHCPV6 sia quelli costruiti via SLAAC
•  Se il bit “auto” di tutti i prefissi è a 0, gli host senza DHCPv6 devono
essere configurati manualmente
20
Marco Sommani
Come amministrare IPv6 sulla propria rete
Sistemi operativi e DHCPv6 client
•  Sistemi Windows
•  Su quelli precedenti a Vista non c’è
•  Su XP si può installare un client gratuito, come il dibbler-client
•  Su Vista c’è ma l’opzione FQDN non è implementata correttamente
•  Sul 7 funziona anche l’opzione FQDN
•  OSX
•  Esistono prodotti free, ma da compilare (es: wide-dhcpv6)
•  Unix vari
•  Si possono installare varie soluzioni free:
•  dibbler, wide-dhcpv6, DHCP di www.isc.org…
•  SmartPhone
•  iOS (iPhone, iPad…) acquisisce l’indirizzo via SLAAC, ma usa il DHCPv6
per le altre informazioni (DNS, dominio…)
•  Android ha solo la SLAAC
•  Il client nativo esiste su alcune stampanti
21
Marco Sommani
Come amministrare IPv6 sulla propria rete
Componenti DHCPv6
•  Anche il DHCPv6 prevede
•  I client
•  I server
•  Gli eventuali relay (non ne parliamo)
•  I messaggi fra client e server e viceversa sono:
Da client a server Da server a client SOLICIT ADVERTISE REQUEST REPLY CONFIRM RECONFIGURE RENEW REBIND RELEASE DECLINE INFORMATION-­‐REQUEST 22
Marco Sommani
Come amministrare IPv6 sulla propria rete
Tipiche transazioni DHCPv6
• 
SOLICIT – ADVERTISE – REQUEST – REPLY
È la transazione iniziale classica, con cui un client prima seleziona il suo server e poi
negozia/richiede gli indirizzi e tutti gli altri parametri
•  Semplice SOLICIT – REPLY se client e server sono configurati per il rapid-commit
• 
• 
RENEW – REPLY
• 
• 
REBIND – REPLY
• 
• 
Usata dal client per comunicare al server che smette di usare determinati indirizzi
DECLINE – REPLY
• 
• 
Usata dal client dopo un’interruzione della connettività o dopo un reboot, per
verificare la validità dei vecchi indirizzi
RELEASE – REPLY
• 
• 
Transazione con la stessa finalità della RENEW – REPLY, in cui sono invitati a
rispondere tutti i server. Usata se le precedenti RENEW restano senza risposta
CONFIRM – REPLY
• 
• 
Transazione ripetuta periodicamente per estendere il lifetime dei parametri ottenuti
via DHCP. Il client si rivolge allo stesso server che aveva fornito i parametri in
precedenza
Usata dal client per dire al suo server che uno degli indirizzi assegnati è duplicato
INFORMATION-REQUEST – REPLY
• 
Usata dai client interessati solo ai parametri diversi dagli indirizzi (server DNS, lista
domini, server NTP…)
23
Marco Sommani
Come amministrare IPv6 sulla propria rete
Indirizzamento dei messaggi DHCPv6
•  Il source-address dei messaggi è l’indirizzo link-local del mittente
•  Nota: qui e nel seguito si suppone che client e server siano sullo stesso
link (niente DHCP relay)
•  Il destination-address dei messaggi da server a client è l’indirizzo
link-local del client
•  Il destination-address dei messaggi da client a server è l’indirizzo
multicast ff02::1:2 (All-dhcp-agents)
•  In tutti i messaggi DHCPv6 è richiesto il DUID del mittente
•  In tutti i messaggi da server a client è richiesto il DUID del
destinatario
•  Il DUID del destinatario è richiesto nei seguenti messaggi da client
a server:
•  REQUEST, RENEW, RELEASE, DECLINE, SOLICIT-rapid-commit
•  Il DUID del destinatario è vietato nei seguenti messaggi da client a
server:
•  SOLICIT, REBIND, CONFIRM, INFORMATION-REQUEST
24
Marco Sommani
Come amministrare IPv6 sulla propria rete
Formato del DUID
•  Il DHCP Unique Identifier (DUID) è associato in maniera perenne ad
ogni entità DHCPv6 (client, server, relay)
•  Il DUID può essere ricavabile dall’hardware o conservato in NVRAM
•  Per esempio, può stare in un file su disco
•  Lo standard definisce i seguenti tipi di DUID
•  Tipo 1: Link-layer address plus time
•  Creato alla prima attivazione dell’entità e conservato in NVRAM; contiene:
•  il numero di secondi (mod 232) trascorsi, al momento della creazione, dalla
mezzanotte del 1 gennaio 2000 (UT)
•  il link-layer address di una delle interfacce presenti al momento della creazione
•  Tipo 2: Vendor-assigned unique ID based on Enterprise Number
•  Pensato per essere hard-coded dal costruttore
•  Contiene l’Enterprise Number del costruttore e un numero assegnato da lui
•  http://www.iana.org/assignments/enterprise-numbers
•  Tipo 3: Link-layer address
•  Contiene il link-layer address di una delle interfacce.
•  Cambia se si cambia la scheda di rete
25
Marco Sommani
Come amministrare IPv6 sulla propria rete
Per conoscere il DUID di Windows 7: “ipconfig /all”
26
Marco Sommani
Come amministrare IPv6 sulla propria rete
La Interface Association (IA)
•  Un client può chiedere indirizzi per più interfacce
•  Nei messaggi DHCPv6 le parti relative agli indirizzi sono contenute
in raggruppamenti di parametri detti Interface Association (IA)
•  Per ogni interfaccia occorre una IA diversa
•  Ogni IA è identificata da uno IAID di 32 bit, univoco sul client
•  Le IA sono di due tipi:
•  IA_NA, usata per chiedere indirizzi Public (Non_Temporary)
•  IA_TA, usata per chiedere indirizzi Temporary (raramente usata)
•  Contenuto di una IA in un messaggio DHCPv6:
•  Lo IAID
•  I timer T1 e T2 (assenti nelle IA_TA)
•  T1: secondi mancanti al RENEW
•  T2: secondi mancanti al REBIND
•  L’indirizzo con il preferred e il valid lifetime
•  può mancare nel primo messaggio del client
27
Marco Sommani
Come amministrare IPv6 sulla propria rete
Esempio di IA in un messaggio DHCPv6
28
Marco Sommani
Come amministrare IPv6 sulla propria rete
DHCPv6 e DNS
•  IPv6 è pensato per un mondo in cui
•  Gli apparati indirizzabili sono numerosissimi
•  Collegare un apparato alla rete è un’operazione frequente e banale
•  Per gli apparati “stabili” è possibile la gestione manuale del DNS
•  Per tutti gli altri conviene ricorrere ai DNS UPDATE (RFC 2136)
•  Lo stesso RFC 3315 (DHCP for IPv6) suggerisce di integrare i server
DHCPv6 con un componente in grado di inviare i DNS UPDATE
•  L’RFC 4704 (The DHCPv6 Client FQDN Option) stabilisce
•  Le modalità con cui un client propone al server il suo nome a dominio
•  Le modalità con cui client e server concordano chi fa gli eventuali
update
•  Il client nativo di Windows 7 è conforme all’RFC 4704
•  I client di Windows Vista e di alcune stampanti implementano
l’RFC 4704 in maniera errata
29
Marco Sommani
Come amministrare IPv6 sulla propria rete
Formato dell’opzione FQDN
• 
Bit S:
• 
• 
• 
Bit O:
• 
• 
• 
Inizializzato sempre a 0 dal client
Messo a 1 dal server se ha modificato il bit S
Bit N:
• 
• 
Messo a 1 dal client se vuole che il server aggiorni il record AAAA
Modificato dal server per indicare cosa ha fatto davvero
Messo a 1 dal client per dire al server di non fare updates (né AAAA né PTR)
Il client di Windows 7 mette in “Domain” il “Full computer name” specificato
nel Control Panel “System”
30
Marco Sommani
Come amministrare IPv6 sulla propria rete
Argomenti
•  IPv6: di cosa ci dobbiamo preoccupare
•  Tipologie di indirizzi
•  Comandi utili
•  Il DHCPv6
  I tunnel automatici
•  Come difendersi dai rogue RA
•  Strumenti di monitoraggio
31
Marco Sommani
Come amministrare IPv6 sulla propria rete
Pericolosità di Windows
•  Per “tunnel automatici” si intende 6to4 e Teredo
•  Prefissi 6to4: 2002::/16
•  Prefissi Teredo: 2001::/32
•  Su tutti i sistemi non Windows, l’attivazione di un tunnel 6to4 o
Teredo richiede un intervento manuale
•  Il comportamento default di Windows è
•  Non attivare tunnel se almeno un’interfaccia possiede indirizzi ipv6
global-scope
•  Altrimenti, attivare un tunnel 6to4 se almeno un’interfaccia possiede
un indirizzo ipv4 pubblico
•  Altrimenti, attivare un tunnel Teredo se ci sono interfacce con
indirizzo ipv4 ma tutti gli indirizzi sono nattati
•  Con i tunnel automatici gli utenti Windows sfuggono
inconsapevolmente ai controlli perimetrali della rete
•  6to4 può anche provocare rogue RA
32
Marco Sommani
Come amministrare IPv6 sulla propria rete
Caratteristiche di Teredo (rfc4380)
•  Il teredo-client incapsula/decapsula pacchetti ipv6 in pacchetti UDPv4
•  L’indirizzo ipv6 dell’interfaccia Teredo contiene in forma offuscata
l’indirizzo pubblico del NAT e il port-number pubblico corrispondente
al port-number UDP su cui sta in ascolto il teredo-client
•  Per costruire il suo indirizzo ipv6, il teredo-client deve scambiare
pacchetti UDP ipv4 con un teredo-server situato in zona pubblica
•  La porta UDP su cui ascolta il teredo-server per default è la 3544
•  Bloccando la porta UDP 3544 in uscita si impedisce l’attivazione dei
tunnel Teredo
•  Un computer con teredo-client attivo riceve connessioni ipv6 in
entrata anche se sta dietro un NAT
•  Chi conosce l’indirizzo ipv6 della mia interfaccia Teredo può tentare di
accedere ai miei file o al mio desktop
•  Il teredo-server default dei sistemi Windows è
•  teredo.ipv6.microsoft.com
33
Marco Sommani
Come amministrare IPv6 sulla propria rete
Caratteristiche di 6to4 (rfc3056)
•  Incapsula pacchetti ipv6 in pacchetti ipv4 con protocol-number 41
(ip6-in-ip) per collegare un’isola ipv6 con l’ipv6 globale
•  L’apparato situato nell’isola ipv6 che incapsula e decapsula i
pacchetti si chiama 6to4-router
•  Nell’isola ipv6 si usano indirizzi global-unicast con prefisso
2002::/48, dove nei 32 bit che seguono “2002” c’è uno degli
indirizzi ipv4 pubblici del 6to4-router
•  Il 6to4-router può
•  Usare il tunnel solo per se stesso (poco pericoloso)
•  Comportarsi da router annunciando prefissi 6to4 sulle reti adiacenti
•  L’eventuale blocco del protocol-number 41 impedisce il passaggio
di pacchetti ipv6 incapsulati ma non inibisce l’invio dei RA sui link
adiacenti
34
Marco Sommani
Come amministrare IPv6 sulla propria rete
Precisazioni su Windows
•  I sistemi diversi da Windows sono meno problematici perché i
tunnel automatici devono essere attivati esplicitamente
•  Teredo deve addirittura essere installato
•  Chi ha un tunnel attivo in genere sa cosa ha fatto per attivarlo e sa
come disattivarlo
•  Sui sistemi Windows (da XP SP2 in poi) l’attivazione automatica dei
tunnel si ripristina/disabilita con i comandi
•  netsh interface ipv6 6to4 set state state=[default|disabled]
•  netsh interface ipv6 set teredo [default|disable]
•  In condizioni normali un Windows con 6to4 attivo non invia RA
•  L’invio di RA può essere attivato involontariamente con interventi
che apparentemente non riguardano IPv6
•  Per esempio attivando l’Internet Connection Sharing
•  L’invio dei RA di 6to4 si ripristina/disabilita con
•  netsh interface ipv6 6to4 set routing [default|disabled]
35
Marco Sommani
Come amministrare IPv6 sulla propria rete
Argomenti
•  IPv6: di cosa ci dobbiamo preoccupare
•  Tipologie di indirizzi
•  Comandi utili
•  Il DHCPv6
•  I tunnel automatici
  Come difendersi dai rogue RA
•  Strumenti di monitoraggio
36
Marco Sommani
Come amministrare IPv6 sulla propria rete
Da dove possono arrivare i rogue RA
•  Il caso di Windows con 6to4 e Internet Connection Sharing non è
unico
•  Su qualunque sistema è possibile attivare/disattivare l’invio di RA:
•  Su Windows:
•  netsh interface ipv6 set interface name advertise=[enabled|disabled]
•  Su OSX:
•  sudo ip6config [start-rtadvd|stop-rtadvd]
•  Su Ubuntu:
•  sudo radvd ---- (killare il demone per fermarlo)
•  Sui sistemi Unix (anche OSX) il file di configurazione è /etc/radvd.conf
•  I rogue RA possono arrivare anche da AP wifi configurati male
•  es.: Apple Time Capsule, AVM FRITZ!Box,…
37
Marco Sommani
Come amministrare IPv6 sulla propria rete
Come neutralizzare i rogue RA
•  Soluzione ideale:
•  Disporre di switch che permettano di bloccare in ingresso gli ICMPv6
con Tipe=134
•  Esistono?
•  Se i router “ufficiali” permettono di configurare i flag di
“precedence”, mettere precedence=high
•  I rogue RA “involontari” usano il default, che è precedence=medium
•  Usare ramond (http://ramond.sourceforge.net/)
•  Ascolta i RA
•  Se ci sono prefissi “non ufficiali” riproduce l’annuncio con routerlifetime=0
•  Difetti di ramond
•  Non neutralizza un rogue router se i prefissi annunciati sono giusti
•  Non mette a 0 i lifetime dei prefissi
•  Nel CNR a Pisa e a Torino si lavora ad un tool di monitoraggio
(6mon) che può anche sostituire ramond superandone i limiti
38
Marco Sommani
Come amministrare IPv6 sulla propria rete
Argomenti
•  IPv6: di cosa ci dobbiamo preoccupare
•  Tipologie di indirizzi
•  Comandi utili
•  Il DHCPv6
•  I tunnel automatici
•  Come difendersi dai rogue RA
  Strumenti di monitoraggio
39
Marco Sommani
Come amministrare IPv6 sulla propria rete
Informazioni che il gestore vorrebbe avere
•  Quali indirizzi link-layer sono associati agli indirizzi ipv4 e ipv6
della propria rete
•  Dato un indirizzo link-layer, ricavare tutti gli indirizzi ipv4 e ipv6
associati
•  Dato un indirizzo link-layer, conoscere lo username associato
•  se c’è una procedura di autenticazione per accedere alla rete
•  Dato un indirizzo link-layer, scoprire a quale porta di quale switch
è collegato
•  Essere avvisati quando entrano in azione rogue DHCP server (ipv4 o
ipv6) o rogue router
•  Se possibile, neutralizzare i rogue DHCP server e i rogue router
40
Marco Sommani
Come amministrare IPv6 sulla propria rete
Dove ricavare le informazioni utili (1 di 2)
•  La maggior parte delle informazioni utili sono ricavabili scrivendo
un daemon che raccolga alcuni multicast ipv6 e broadcast ipv4:
•  Gli ARP
•  I broadcast/multicast inviati dai client DHCP/DHCPv6:
•  In ipv4 il messaggio dhcp request (broadcast da client a server) contiene
l’indirizzo ipv4 del server che ha proposto l’indirizzo
•  In ipv6 molti multicast da client a server contengono il DUID del server
•  Una volta conosciuto il DUID del server, per conoscere il suo indirizzo ipv6 linklocal e il suo indirizzo link-layer, il daemon può…
•  …inviare un messaggio DHCPv6 a ff02::1:2 specificando il DUID del rogue server:
riceverà una frame di risposta dal server
•  I messaggi Neighbor-Solicitation (ICMPv6 con type=135)
•  I messaggi Router-Advertisement (ICMPv6 con type=134)
41
Marco Sommani
Come amministrare IPv6 sulla propria rete
Dove ricavare le informazioni utili (2 di 2)
•  Per trovare la porta switch a cui è collegato un dato indirizzo linklayer si può usare un programma che
•  Chieda via SNMP ad ogni switch della rete su quale porta si trova
l’indirizzo ricercato
•  L’indirizzo di solito compare sulle tabelle di molti switch
•  Metodi per scoprire lo switch più vicino all’apparato:
•  Se si sa quali sono le porte terminali e quali quelle dei collegamenti
interswitch, lo switch più vicino è quello che ha l’indirizzo su una
porta terminale
•  Altrimenti, quello più vicino quasi certamente è quello che ha il minor
numero di indirizzi link-layer (possibilmente 1) sulla porta che
contiene anche l’indirizzo cercato
•  Al CNR di Pisa si usa l’utility “macfind”, sviluppata localmente
•  Parametri di configurazione di macfind:
•  L’indirizzo IP di ogni switch
•  La password SNMP di ogni switch
42
Marco Sommani
Come amministrare IPv6 sulla propria rete
Output di “macfind”
43
Marco Sommani
Come amministrare IPv6 sulla propria rete
Come sapere dove era collegato un indirizzo link-layer
nel passato?
•  Per essere in grado di rispondere a questa domanda, bisognerebbe
costringere chi accede alla rete ad autenticarsi (802.1x, captive
portal…)
•  È importante attrezzarsi con meccanismi di autenticazione che
lascino traccia nei log anche
•  degli indirizzi link-layer di chi si è autenticato
•  Della porta o dell’AP su cui l’utente si è autenticato
•  Se si dispone di switch con il protocollo sFlow, qualche aiuto viene
dal collector dei sample di sFlow
•  Diversamente da NetFlow, sFlow invia al collector anche le
informazioni di livello 2 (indirizzi link-layer, etc.) e l’ID della porta di
ingresso
•  Purtroppo sFlow fa solo campionamenti: un apparato poco
chiacchierone potrebbe sfuggire ai controlli
44
Marco Sommani
Come amministrare IPv6 sulla propria rete
Esempio di campioni sFlow
45
Marco Sommani
Come amministrare IPv6 sulla propria rete
Un analizzatore dei broadcast/multicast: 6mon
•  Al momento vi lavorano persone del CNR di Pisa e di Torino
•  Lo sviluppo è ancora in corso, ma c’è già un prototipo distribuibile
in forma di immagine vmware
•  Le parti ancora da sviluppare sono soprattutto:
•  Il monitor del DHCPv6, per scoprire i rogue
•  Ancora tutto da fare
•  Il monitor del DHCPv4, per scoprire i rogue
•  È già funzionante ma non è ancora integrato in 6mon
•  Le funzionalità dell’interfaccia grafica, ancora molto spartana
46
Marco Sommani
Come amministrare IPv6 sulla propria rete
Uso di 6mon (1 di 3)
47
Marco Sommani
Come amministrare IPv6 sulla propria rete
Uso di 6mon (2 di 3)
48
Marco Sommani
Come amministrare IPv6 sulla propria rete
Uso di 6mon (3 di 3)
49
Marco Sommani
Come amministrare IPv6 sulla propria rete
FINE
Marco Sommani

Documenti analoghi

ENUM “fai da te”

ENUM “fai da te” ff02::/16 Multicast con link-local scope

Dettagli

Visualizza

Visualizza ƒ Gli indirizzi Global aggregatable non hanno limitazioni nel loro campo d’azione e possono essere usati per comunicare ovunque ƒ Possono essere configurati manualmente ƒ Possono essere ottenuti au...

Dettagli

Visualizza

Visualizza Supporto di IPv6 nei Sistemi Operativi Windows NT4 SP6 Beta version Windows 2000 SP3 Windows XP SP1 Windows 2003 Server

Dettagli

Protocollo IP versione 6: vulnerabilità e attacchi

Protocollo IP versione 6: vulnerabilità e attacchi protezioni perimetrali o per verificare i percorsi attivi che un pacchetto può percorrere. Verrà presentata anche una tabella in cui saranno rimarcati i Sistemi Operativi che supportano ancora tale...

Dettagli