Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni...

50
Come amministrare IPv6 sulla propria rete Consigli pratici per il gestore Marco Sommani

Transcript of Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni...

Page 1: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

Come amministrare IPv6 sulla propria rete

Consigli pratici per il gestore

Marco Sommani

Page 2: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

2

Marco Sommani

Page 3: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

3

Marco Sommani

Page 4: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

4

Marco Sommani

Page 5: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

5

Marco Sommani

Page 6: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

6

Marco Sommani

Page 7: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

7

Marco Sommani

Preferred  life)me  

Valid  life)me  

•  Deprecated: l’indirizzo è ancora valido, ma l’host farebbe bene a non usarlo per nuove connessioni

Page 8: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

8

Marco Sommani

Page 9: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

9

Marco Sommani

Page 10: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

10

Marco Sommani

Page 11: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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]

Come amministrare IPv6 sulla propria rete

11

Marco Sommani

Page 12: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

È 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”

Come amministrare IPv6 sulla propria rete

12

Marco Sommani

•  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

Page 13: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

13

Marco Sommani

Page 14: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

14

Marco Sommani

Page 15: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

15

Marco Sommani

Page 16: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

16

Marco Sommani

Page 17: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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”

Come amministrare IPv6 sulla propria rete

17

Marco Sommani

Page 18: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

18

Marco Sommani

Page 19: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

DHCPv6 (rfc3315) e DHCPv4 (rfc2131) sono diversi

•  Non vengono fornite informazioni relative al link, come default-router, 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

Come amministrare IPv6 sulla propria rete

19

Marco Sommani

Page 20: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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-hop-

limit 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

Come amministrare IPv6 sulla propria rete

20

Marco Sommani

Page 21: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

21

Marco Sommani

Page 22: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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:

Come amministrare IPv6 sulla propria rete

22

Marco Sommani

Da  client  a  server   Da  server  a  client  

SOLICIT   ADVERTISE  

REQUEST   REPLY  

CONFIRM   RECONFIGURE  

RENEW  

REBIND  

RELEASE  

DECLINE  

INFORMATION-­‐REQUEST  

Page 23: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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 •  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

•  REBIND – 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

•  Usata dal client dopo un’interruzione della connettività o dopo un reboot, per verificare la validità dei vecchi indirizzi

•  RELEASE – REPLY •  Usata dal client per comunicare al server che smette di usare determinati indirizzi

•  DECLINE – REPLY •  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…)

Come amministrare IPv6 sulla propria rete

23

Marco Sommani

Page 24: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

24

Marco Sommani

Page 25: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

25

Marco Sommani

Page 26: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

Per conoscere il DUID di Windows 7: “ipconfig /all”

Come amministrare IPv6 sulla propria rete

26

Marco Sommani

Page 27: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

27

Marco Sommani

Page 28: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

Esempio di IA in un messaggio DHCPv6

Come amministrare IPv6 sulla propria rete

28

Marco Sommani

Page 29: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

29

Marco Sommani

Page 30: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

Formato dell’opzione FQDN

Come amministrare IPv6 sulla propria rete

30

Marco Sommani

•  Bit S: •  Messo a 1 dal client se vuole che il server aggiorni il record AAAA •  Modificato dal server per indicare cosa ha fatto davvero

•  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 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”

Page 31: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

31

Marco Sommani

Page 32: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

32

Marco Sommani

Page 33: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

33

Marco Sommani

Page 34: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

34

Marco Sommani

Page 35: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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]

Come amministrare IPv6 sulla propria rete

35

Marco Sommani

Page 36: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

36

Marco Sommani

Page 37: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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,…

Come amministrare IPv6 sulla propria rete

37

Marco Sommani

Page 38: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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 router-

lifetime=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

Come amministrare IPv6 sulla propria rete

38

Marco Sommani

Page 39: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

39

Marco Sommani

Page 40: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

40

Marco Sommani

Page 41: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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 link-

local 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)

Come amministrare IPv6 sulla propria rete

41

Marco Sommani

Page 42: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

Dove ricavare le informazioni utili (2 di 2)

•  Per trovare la porta switch a cui è collegato un dato indirizzo link-layer 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

Come amministrare IPv6 sulla propria rete

42

Marco Sommani

Page 43: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

Output di “macfind”

Come amministrare IPv6 sulla propria rete

43

Marco Sommani

Page 44: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

44

Marco Sommani

Page 45: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

Esempio di campioni sFlow

Come amministrare IPv6 sulla propria rete

45

Marco Sommani

Page 46: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

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

Come amministrare IPv6 sulla propria rete

46

Marco Sommani

Page 47: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

Uso di 6mon (1 di 3)

Come amministrare IPv6 sulla propria rete

47

Marco Sommani

Page 48: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

Uso di 6mon (2 di 3)

Come amministrare IPv6 sulla propria rete

48

Marco Sommani

Page 49: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

Uso di 6mon (3 di 3)

Come amministrare IPv6 sulla propria rete

49

Marco Sommani

Page 50: Come amministrare IPv6 sulla propria rete - IIT · 10 Marco Sommani . Come variare alcuni comportamenti default ... • Sui Windows più recenti c’è un unico comando che sceglie

FINE

Marco Sommani