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

Post on 14-Jul-2018

217 views 1 download

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

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

Come amministrare IPv6 sulla propria rete

2

Marco Sommani

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

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

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

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

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

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

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

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

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

È 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

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

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

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

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

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

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

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

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

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

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  

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

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

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

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

Come amministrare IPv6 sulla propria rete

26

Marco Sommani

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

Esempio di IA in un messaggio DHCPv6

Come amministrare IPv6 sulla propria rete

28

Marco Sommani

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

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”

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

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

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

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

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

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

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

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

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

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

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

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

Output di “macfind”

Come amministrare IPv6 sulla propria rete

43

Marco Sommani

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

Esempio di campioni sFlow

Come amministrare IPv6 sulla propria rete

45

Marco Sommani

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

Uso di 6mon (1 di 3)

Come amministrare IPv6 sulla propria rete

47

Marco Sommani

Uso di 6mon (2 di 3)

Come amministrare IPv6 sulla propria rete

48

Marco Sommani

Uso di 6mon (3 di 3)

Come amministrare IPv6 sulla propria rete

49

Marco Sommani

FINE

Marco Sommani