Come amministrare IPv6 sulla propria rete - iit.cnr.it · 6 Marco Sommani . Tempo di vita degli...
Transcript of Come amministrare IPv6 sulla propria rete - iit.cnr.it · 6 Marco Sommani . Tempo di vita degli...
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
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
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
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