gallo - dns - Progress in Training

Transcript

gallo - dns - Progress in Training
Marco Gallo (Consortium GARR)
Istruzioni teoriche e pratiche sul DNS
Corsi Intensivi dedicati agli APM, Catania, 19/06/2015
Elenco degli Argomenti
§  Principi di base del DNS §  Il DNS su IPv6 e configurazione su BIND §  Alterna<ve a BIND per la ges<one del DNS #2
Perché il DNS
#3
DNS: concetti base
§  Definizione tecnica: protocollo che perme@e di aggiornare e interrogare un database che sia… §  distribuito geograficamente §  dinamicamente consistente e coerente nei da< che amministra §  in grado di ges<re vari <pi di records e da< §  Dal punto di vista opera<vo: §  è il protocollo u<lizzato ogni giorno da tuC coloro che tramite Internet accedono a determinate risorse o servizi in rete; §  se il DNS non funziona mol< altri servizi su Internet sme@ono di funzionare #4
A cosa serve il DNS
§  Il DNS perme@e di associare un nome Human-­‐readable ad un host, più semplice da ricordare rispe@o ad un indirizzo IP. §  L'univocità nella determinazione dell’host a@raverso tale sistema è garan<ta mediante l’adozione di una stru@ura gerarchica “a domini” per la quale ciascun host appar<ene ad un dato dominio “registrato” ufficialmente in un database distribuito. §  Es: www.garr.it individua una macchina il cui nome è www appartenente al dominio garr che è a sua volta parte del dominio globale it #5
DNS: caratteristiche principali
Il DNS consente ad ogni organizzazione che ha accesso ad Internet di: §  amministrare la relazione tra nomi ed indirizzi del proprio dominio in maniera autonoma ed indipendente §  risolvere i nomi fuori del proprio dominio accedendo alle informazioni ges<te da altre organizzazioni #6
DNS: come è strutturato
§  Suddivisione gerarchica in domini §  Stru@ura ad albero rovesciato §  Località dell’informazione §  ogni nodo de<ene un database con le informazioni del proprio dominio e interroga gli altri nodi quando deve trovare le informazioni non locali §  Basato sul modello client/server §  Le informazioni possono essere o@enute tramite interrogazioni ad una delle foglie dell’albero #7
Risoluzione diretta e inversa
§  Nel protocollo standard DNS vengono individuate e dis<nte 2 <pologie di risoluzioni: §  Risoluzione dire@a: §  Corrispondenza nome host – indirizzo IP §  Risoluzione inversa: §  Corrispondenza indirizzo IP – nome host #8
Protocolli di trasporto del DNS
§  Queries : §  UDP porta 53 §  Risposte : §  Dim. < 512 bytes : UDP porta 53 §  Dim. > 512 bytes : TCP porta 53 §  Trasferimen< di zona : §  TCP porta 53 #9
DNS: principali componenti
§  tre componen< principali: §  spazio dei nomi (namespace) e informazioni associate (Resource Record -­‐ RR) §  nameservers (nodi che mantengono una parte del database globale) §  resolvers (client per l’interrogazione del nameserver) §  Aumento delle prestazioni di risposta sul DNS a@raverso l’adozione di meccanismi di caching delle informazioni. §  database in memoria RAM #10
Classificazione dei name
server : Nameserver primari e
secondari
§  Un nameserver si definisce primario (master) quando possiede i file delle informazioni (“file di zona”) e pertanto in ogni zona vi sarà un solo nameserver primario (accesso in le@ura e scri@ura alle info del database) §  Un nameserver si definisce secondario (slave) quando acquisisce, dal nameserver primario (quindi ha una copia in sola le@ura) , i da< rela<vi alla zona mediante una procedura automa<ca denominata “zone-­‐transfer” §  i parametri che regolano il funzionamento della procedura sono contenu< in uno specifico record del nameserver primario (record Start Of Authority -­‐ SOA) §  E’ necessario valutare a@entamente il numero e la dislocazione dei nameserver secondari in modo da ridurre il più possibile il rischio che problemi di connessione possano impedire la risoluzione dei nomi di un dominio (configurazione fault tolerant) #11
Meccanismo di risoluzione nel
namespace root
§  Un nome a dominio viene analizzato da destra verso sinistra, chiedendo a ciascun nameserver di fornire informazioni soltanto sull'elemento che si trova a sinistra dell'ul<mo punto. §  TuC i nomi a dominio esisten< su Internet in realtà terminano con un “.” (punto): §  garr.it. §  La stringa vuota che segue il punto finale è chiamata dominio radice (DNS root zone); #12
Ruolo dei root nameserver
§  I root nameserver sono i server responsabili (autorita<vi) delle informazioni rela<ve al dominio "."; §  Possiedono l'elenco dei server responsabili per ognuno dei domini di primo livello riconosciu<, e lo forniscono in risposta a ciascuna richiesta. §  Contengono anche le informazioni per la risoluzione inversa (risoluzione indirizzo-­‐nome) §  La lista aggiornata dei root-­‐server è mantenuta da InterNIC §  3p://3p.rs.internic.net/domain/named.root §  3p://3p.nic.it/pub/DNS/named.root #13
I root nameserver
#14
I root nameserver
#15
21 Oct 2002: Root Server Denial of Service Attack
§  Natura dell’a0acco: §  A@acco di <po denial of service venne lanciato contro i 13 root nameservers §  Le dimensioni dell’a@acco furono dai 50 ai 100 Mbits/sec per root nameserver con un volume complessivo di a@acco di circa 900 Mbits/sec §  Impa0o dell’a0acco: §  Alcuni root nameserver vennero resi irraggiungibili da diverse par< dell’Internet Globale, molte query valide dire@e ai root nameserver non giunsero a des<nazione #16
Root nameserver replicati
§  La ISC (Internet Sonware Consor<um ) ha ado@ato un sistema che perme@e di replicare i Root Name Server in modo da renderli più accessibili a località fisicamente lontane dai 13 Root Server globali. §  Presuppos<: §  Configurare NS cloni da un master/primary server che contengano gli stessi da< (files); §  che u<lizzino lo stesso indirizzo IP (metodo Anycast). §  Le repliche dei root nameserver sono state installate in pun< nevralgici di Internet §  Presso il NAMEX a Roma, la MIX a Milano ed altri Internet Exchange §  Presso MIX: repliche di I-­‐root, K-­‐root e J-­‐root di cui sia I che K rispondono anche in IPv6 §  Presso NAMEX: repliche di F.root, J.root di cui F risponde anche in IPv6 §  Vantaggi per gli ISP afferen< agli Internet Exchange: tempi di risposta più bassi per le richieste rivolte ai root NS. §  h@p://www.root-­‐servers.org/ #17
L’albero dei nomi
“.“
COM
EDU
BERKELEY
AI
PREP
MIT
US
STANFORD
LCS
XX
IT
GARR
NOC
VX
EU
LIR
FIAT
DIR
DXGARR
FI
UK
ARPA
LAZIO
IN-ADDR
COMUNE
REGIONE
PCGARR81
#18
Il Reverse Lookup
#19
Perché fare Reverse DNS
§  Corrispondenza tra indirizzi IP e nomi a dominio. §  u<lizzato da tools per troubleshoo<ng sulla rete come traceroute o ping. §  Necessario per alcune applicazioni, in primo luogo la posta ele@ronica. §  Mol< mail-­‐server rifiutano posta la cui sorgente non ha un rDNS configurato. §  Il reverse di un indirizzo IPv4 è espresso, nel dominio “in-­‐
addr.arpa”, da una sequenza di bytes in ordine inverso, rappresenta< come numeri decimali separa< da un punto #20
L’albero per la risoluzione
inversa
“.“
ARPA
IN-ADDR
.....
128
146
.....
.....
193
195
.....
48
8
65
1
69
.....
.....
48.146.in-addr.arpa dominio
65.48.146.in-addr.arpa sottodominio
69.65.48.146.in-addr.arpa macchina
254
#21
Il meccanismo di Delega
#22
Il concetto di delega
§  La ges<one del DNS dei domini (figli) può essere delegata ad altre organizzazioni. §  Questo significa che chi definisce e crea un dominio non necessariamente ne deve dire@amente ges<re il DNS ma può delegare tale aCvità. §  Un’organizzazione di grande dimensioni è probabile che abbia un dominio is<tuzionale ed un numero elevato di so@odomini. Ges<re i so@odomini può diventare oneroso, sopra@u@o se ques< sono distribui< geograficamente. §  La decentralizzazione della responsabilità amministra<va è o@enuta a@raverso il meccanismo della delega #23
Le zone e i nameserver
la stru@ura gerarchica dello spazio dei nomi si rifle@e nella relazione tra i nameserver il meccanismo della delega di autorità si basa sui seguen< principi: §  ogni nameserver di un dominio, per essere conosciuto nel DNS, deve essere stato registrato dal nameserver del dominio di livello superiore. Questo crea la delega §  una volta delegata l'autorità su una zona, il nameserver “padre” perde ogni possibilità di modificare le informazioni dei resource records contenu< nella zona delegata §  i nameserver delega< possono essere più d'uno (è consigliato averne almeno due, in alcuni casi è addiri@ura obbligatorio), ma uno solo è quello che possiede la vera autorità perché ges<sce i files contenen< le informazioni #24
Classless Delegation
§  Problema:
in alcuni contesti è necessario suddividere l’uso di una classe di indirizzi
su più domini e garantire una corretta risoluzione inversa e gestione
amministrativa autonoma ai vari domini
§  Soluzioni:
Reti in classe B: si procede normalmente alla delega delle singole
subnet equivalenti ciascuna ad una rete in classe “C”
Reti in classe C: è possibile effettuare la delega della risoluzione inversa anche
di “parti” di una rete (RFC 2317)
#25
Risoluzione Inversa di subnet:
approccio “classless” (1)
§ 
Si crea un nuovo “point of delegation” aggiungendo un ulteriore
livello nell’albero IN-ADDR.ARPA
Esempio: suddivisione della 192.0.2.0/24 in due sottoreti /25:
192
192
0
0
2
2
1
2
254
0
1
2
128
129
130
255
#26
Risoluzione Inversa di subnet:
approccio “classless” (2)
Configurazione lato “zona figlio” § 
aggiungere a named.conf la zona reverse per la subnet classless zone " 128-­‐26.148.205.193.in-­‐addr.arpa " { type master; file "/etc/bind/26-­‐148.205.193.rev"; }; §  creare in /etc/namedb il file di zona di reverse per la subnet classless #vi /etc/bind/26-­‐148.205.193.in-­‐addr.arpa.rev 26-­‐128.148.205.193.rev @ IN SOA dns.bo.ingv.it. postmaster.bo.ingv.it. ( 2007100401 86400 3600 604800 86400 ) @ IN NS fox.inoa.it. @ IN NS ns1.garr.net. ……… 13o IN PTR fox.inoa.it. ... #27
Risoluzione Inversa di subnet:
approccio “classless” (3)
Configurazione lato “zona padre” § 
modificare named.conf con direLva slave per la zona come segue: zone "148.205.193.in-­‐addr.arpa" { type master; file "master/net/148.205.193.soa"; allow-­‐transfer { 193.206.141.42; }; allow-­‐query { any; }; }; zone "128-­‐26.148.205.193.in-­‐addr.arpa" { type slave; file "slave/net/128-­‐26.148.205.193.for"; masters { 193.205.148.130; }; allow-­‐query { any; }; allow-­‐transfer { none; }; }; #28
Risoluzione Inversa di subnet:
approccio “classless” (4)
Configurazione file di zona lato “zona padre” aggiungere la zona IP classless reverse delegated per la subnet nella /24 esistente (modello da RFC2317 -­‐ h@p://www.iez.org/rfc/rfc2317.txt) : $TTL 86400 ; 1 day @ IN SOA ns1.garr.net. staff-­‐dns.garr.net. ( 2009111805 ; serial 28800 ; refresh (8 hours) 7200 ; retry (2 hours) 1209600 ; expire (2 week) 7200 ; minimum (2 hours) ) NS ns1.garr.net. NS ns2.garr.net. ; 128-­‐26 NS fox.inoa.it. NS ns1.garr.net. ; 129 CNAME 129.128-­‐26 130 CNAME 130.128-­‐26 131 CNAME 131.128-­‐26 132 CNAME 132.128-­‐26 133 CNAME 133.128-­‐26 134 CNAME 134.128-­‐26 135 CNAME 135.128-­‐26 136 CNAME 136.128-­‐26 137  CNAME 137.128-­‐26 ……………………………………………………. #29
Il processo di risoluzione dei nomi
#30
Risoluzione dei nomi
§  Se il nome desiderato non è nella zona (o nella cache) del NS interrogato, si innesca il processo di risoluzione dei nomi §  La richiesta di risoluzione ripercorre l’albero fino alla radice e lo ridiscende fino ad arrivare ad un NS autorita<vo la cui zona con<ene il nome in ques<one e quindi anche gli RR §  La risposta, opportunamente salvata in tuC i cache intermedi, viene infine passata dal resolver all’utente che aveva effe@uato la richiesta #31
Query "recursive" o "non-recursive"
§  Se un name server riceve una query per un dominio che non ges<sce dire@amente sono possibili due opzioni: 1.  Il name server può rispondere al client indicando un altro name server che sia in grado di rispondere in modo appropriato. 2.  Il name server può cercare di risolvere in modo completo la richiesta a@raverso una serie di richieste agli altri name servers, fino ad aver completato la risoluzione della richiesta. #32
Formato del pacchetto DNS [RFC 1035]
§  I dati del DNS vengono scambiati tra i nameserver mediante un
pacchetto, il “message”, che presenta la seguente struttura:
§  Il formato del “message” è diviso in cinque sezioni, alcune delle
quali sono vuote in alcuni casi
Header
Question
Answer
Authority
Additional
Include campi con informazioni di controllo
La query ad un certo nome
I RR per il nome richiesto
I RR degli NS autoritativi
RR che gestiscono informazioni addizionali
#33
Formato dell’Header [RFC 1035]
•  Query ID: identificativo a 16 bits assegnato dal
resolver che genera la query. Campo copiato;
nella risposta corrispondente e serve al match
tra domanda e risposta alla query fatta;
•  QR: Campo a 1 bit che specifica se il messaggio
è una domanda(0) o una risposta (1);
•  OPcode: campo a 4 bits specifica il tipo di
query. Di solito settato a zero che significa
risposta standard;
•  AA: Risposta autoritativa solo valido nelle
risposte, 1 bit;
• TC: troncamento, specifica che il message è
stato troncato perché’ troppo lungo, 1 bit;
•  RD: Recursion Desired, predispone il nameserver a gestire la query in maniera ricorsiva, 1 bit;
•  RA: Recursion Available, indica che la gestione ricorsiva della query è disponibile sul nameserver, 1 bit;
•  Z: riservato ad usi futuri. Deve essere zero in tutte le domande e risposte, 1 bit;
•  RCODE: definisce l’esito della risposta (no error, format error…), 4bits;
•  QDCOUNT: indica il numero di entries nella sezione Question, 16bits;
•  ANCOUNT: indica il numero di RR presenti nella sezione Answer 16bits;
•  NSCOUNT: specifica il numero di NS indicati nella sezione Autority 16bits;
•  ARCOUNT: indica il numero di RR nella sezione Additional 16bits;
#34
Il processo di risoluzione dei nomi
query per www.iat.cnr.it
2
referral al NS per it.
Default
Nameserver
(cache vuota)
query for www.iat.cnr.it
3
referral al NS per cnr.it
root
nameserver
it.
“.“
IT
COM
nameserver
query for www.iat.cnr.it
4
referral al NS per iat.cnr.it
cnr.it
nameserver
CNR
UNIPI
query: www.iat.cnr.it
1
6
RESOLVER
applicazione
utente
5
iat.cnr.it
RR per www.iat.cnr.it
nameserver
IAT
BO
www
#35
La sicurezza del Domain Name System
#36
Gli attacchi al DNS
§  Gli a@acchi più comuni sono : §  Denial of service §  Cache corrup<on (DNS Poisoning) §  Acquisizione di informazioni non autorizzate §  Modifica dei da< (dynamic update) #37
Attacchi: denial of service
Descrizione: §  Questo <po di a@acco mira ad impedire il funzionamento del name server (‘denial of service’). Tipicamente vengono condoC inviando al server DNS viCma delle query artefa@e che provocano in primo luogo la saturazione del collegamento del nameserver e in alcune vecchie versioni di Bind accessi erra< ai da< in memoria o a volte il crash del processo named. §  L’a@accante lancia l'a@acco da sistemi (zombis) su cui acquisisce il controllo non autorizzato mediante worm. §  Vengono sfru@a< NS con recursion aperta. §  Viene fa@o uso di amplificatori per aumentare il volume del traffico dell’a@acco. §  Viene “spoofato” l’indirizzo sorgente del traffico. #38
Attacchi: denial of service
(1) L’a@accante comanda gli zombies ad iniziare l’a@acco Nameserver viCma (10.10.1.1) (5) I DNS con recursion aperta inviano le risposte di 4000byte all’NS viCma (2) TuC gli zombies inviano query per un determinato RR del dominio abcd.it ad NS con recursion aperta ed indicando come sorgente l’IP della viCma (10.10.1.1) (3) NS aper< chiedono per RR di abcd.it (4) L’NS di abcd.it risponde con paccheC DNS da 4000byte Nameserver di abcd.it compromesso #39
Denial of service: contromisure
§  Applicare regole (rate-­‐limit) che filtrano paccheC DNS par<colarmente grandi (>512 bytes) §  Non consen<re traffico proveniente da NS con recursion abilitata §  Abilitare la recursion solo per un numero ristre@o di host §  Mantenere aggiornato BIND §  Definire ACL (sul router) che consenta traffico in uscita solo se i paccheC contengono un IP sorgente appartenente alla propria LAN. #40
Attacchi: cache corruption (DNS poisoning)
Descrizione: §  Non richiede grandi disponibilità di risorse di rete §  U<lizzando i meccanismi di caching del named, combinato con l’esecuzione di queries ricorsive, un name server può essere forzato a conta@are server diversi da quelli richies<. §  Mira a modificare la cache dei nameserver in modo da modificare l'associazione indirizzo IP/nome del server. Ciò consente di rindirizzare un nome a dominio web (ad esempio www.garr.it) verso un indirizzo IP diverso da quello vero. §  La tecnica consiste nell'ingannare un nameserver facendogli credere di ricevere delle informazioni auten<che, quando, in realtà sono informazioni create ad arte per modificarne il comportamento. Le informazioni ricevute vengono conservate nella cache del DNS a@accato per un certo periodo di tempo (TTL) e diffondono l'effe@o dell'a@acco a tuC gli uten< del DNS. Più il dominio a@accato è conosciuto (famoso) più grande sarà l’impa@o dell’a@acco. #41
Attacchi: cache corruption (DNS
poisoning)
Master nameserver di abcd.it id777 er IP p
y
r
e
(1)Qu .abcd.it w
di ww
(3) Quale è L’IP di www.abcd.it? (4) L’IP di www.abcd.it è 172.16.3.2 Local nameserver Falso www.abcd.it (172.16.3.2) Vero www.abcd.it (192.168.1.23) #42
Cache Poisoning: contromisure
§  Mantenere aggiornato BIND §  Disabilitare la ricorsione (oppure restringere l’accesso al nameserver solo alle macchine ‘di fiducia’) §  Configurare, quando possibile, DNSSEC #43
DNSSEC
§  Descri@o nel RFC 2065 §  Il DNS Security Extensions aggiunge funzionalità di sicurezza al DNS §  Pensato per proteggere i propri nameserver da a@acchi specifici come il DNS Cache Poisoning §  Auten<cazione dell’origine dei da< DNS e verifica dell’integrità dei da<. §  Il DNSSEC controlla le risposte ad ogni livello della gerarchia dello spazio dei nomi. I nameserver di ogni livello garan<scono per i nameserver di livello superiore a@raverso quella che è conosciuta come una "chain of trust", catena di fiducia. #44
Come funziona DNSSEC
§  Si basa sulla cri@ografia composta da due chiavi: privata e pubblica §  ZSK: Zone Signing Key — u<lizzata per firmare i RR all’ interno del file di zona. §  KSK: Key Signing Key — u<lizzata per firmare la chiave ZSK. §  Funzionamento è analogo a quello del DNS: il resolver invia una query ad un nameserver per un determinato RR. §  Il nameserver interrogato, se non autorita<vo del RR richiesto, innesca il processo di risoluzione richiedendo, oltre alle informazioni sul RR, anche la chiave DNSSEC associata alla zona §  La chiave consente al nameserver di verificare che le informazioni ricevute siano o meno iden<che al RR presente sul nameserver autorita<vo rela<vo al nome per il quale è stata fa@a la query §  Se nel corso del processo di risoluzione la risposta alla query risulta inviata dal nameserver autorita<vo del RR richiesto e non è stato modificato durante il transito, avviene la risoluzione. #45
I TLD e DNSSEC
§  A@ualmente non tuC i TLD (Top Level Domain) supportano DNSSEC §  Supportato dal ccTLD .eu ma non dal .it (probabilmente entro fine 2015) §  Elenco dei TLD che supportano DNSSEC: h@p://stats.research.icann.org/dns/tld_report/ §  Per verificare se un TLD supporta DNSSEC: # dig +short DNSKEY {TLD} §  Se il TLD non supporta DNSSEC il comando res<tuirà un output vuoto. #46
Il DNS su IPv6
#47
DNS: obiettivo/esigenza
§  Dare dei nomi ai calcolatori §  Associare un nome Human-­‐readable ad un host, più semplice da ricordare di un indirizzo §  IP. … Se in IPv4 questo era (è) l’obiettivo
§  In IPv6 diventa un’esigenza…
2001:0b00:0c18:0001:0290:27ff:fe17:fc1d
§  Un indirizzo è formato da 8 campi di 16 bits ciascuno (128
in tutto), ogni campo è separato da “:” ed espresso in
notazione esadecimale
#48
Le Notiva’ introdotte nel DNS con IPv6
§  L’utilizzo di IPv6 non modifica i meccanismi di base del Domain
Name System
§  Per gestire la risoluzione degli indirizzi IPv6 sono stati introdotti:
§  un nuovo resource record per associare un indirizzo IPv6 ad un nome
§  un (due) nuovo dominio per la risoluzione inversa degli indirizzi IPv6
#49
Risoluzione diretta e inversa
§  Anche con IPv6, nel protocollo standard DNS, vengono individuate
e distinte 2 tipologie di risoluzioni:
§  Risoluzione diretta:
§  Corrispondenza nome host – indirizzo IPv6
§  Risoluzione inversa:
§  Corrispondenza indirizzo IPv6 – nome host
#50
Domini di reverse-lookup: ip6.arpa o ip6.int?
§  L’RFC 1886 indica l’ip6.int come dominio da utilizzare per la
mappatura del reverse lookup in IPv6.
§  L’RFC 3152 invece dice di usare l’ip6.arpa.
§  Poiche’ l’architettura gerarchica del DNS già usava il “.arpa” per
IPv4, l’ip6.arpa e’ stato preferito all’ip6.int (deprecato dall’IETF I
Giugno 2006 – RFC 4159) come dominio per il reverse in IPv6
#51
Il reverse DNS lookup
§  Il reverse di un indirizzo IPv6 è espresso, nel dominio “ip6.arpa ”,
da una sequenza di otto cifre esadecimali scritte in ordine inverso;
numeri e lettere sono separati da un punto
#52
Risoluzione diretta e inversa di un indirizzo IPv6
nell’albero dei nomi
Indirizzo IP◊ Nome
arpa
in-addr
193
0 ...
206
com
net
apnic
ip6
194
Nome ◊ Indirizzo IP
root
it
ripe
garr
whois
1.0.0.2
ns1
infn
lnf
... 255
0.6.7.0
141
142
193.206.141.38
f.f.f.f
ns1.garr.net
38
2001:760:ffff:ffff::aa
193.206.141.38 è 38.141.206.192.in-addr.arpa.
a.a.0.0.0.0.0.0.0.0.0.0.0.0.0.0.f.f.f.f
2001:760:ffff:ffff::aa
à
ns1.garr.net
a.a.0.0.0.0.0.0.0.0.0.0.0.0.0.0.f.f.f.f.f.f.f.f.0.6.7.0.1.0.0.2.ip6.arpa
#53
Configurazione del DNS per IPv6 su BIND 9
#54
IPv6 e BIND9
§  Il trasporto IPv6 è supportato. La gestione del trasporto IPv6 è stato
particolarmente trattato e migliorato su BIND a partire dalla versione 9.2
§  Versioni precedenti di BIND (dalla 4 alla 8) rispondevano a query IPv6
solo su trasporto IPv4
§  BIND9 può eseguire e ricevere query su IPv6 così come rispondere
agli strumenti di lookup per eseguire query su IPv6 per il
troubleshooting
#55
Installare BIND con IPv6 attivo
§  Scaricare la versione più recente di BIND in /usr/src
§  Decomprimere il pacchetto
§  tar –xzf bind-9.x.y.tar.gz
§  cd bind-9.x.y
§  Anche se il trasporto di IPv6 è ormai nativo su BIND lo si può
esplicitamente specificare al momento dell’installazione:
§  ./configure –enable-ipv6
§  Naturalmente se per qualche ragione si vuole disabilitare il trasporto
IPv6:
§  ./configure –disable-ipv6
§  Infine compilare e installare come root:
§  make
§  su
§  make install
#56
Opzioni da linea di comando
§  Su BIND9 è possibile disabilitare uno dei due stack (v4/v6) anche se
sono entrambi attivi di default.
§  named -6
§  Indica al processo named di utilizzare solo IPv6
§  named -4
§  Fa in modo che named utilizzi solo IPv4
§  Le due opzioni si escludono a vicenda.
#57
Query ricorsive
§  Per abilitare le query ricorsive sul proprio DNS agli host
su cui è stato configurato un indirizzo IPv6
appartenente alla propria /48, su named.conf si
configura:
options {
allow-recursion {
2001:760:1010::/48;
}
}
#58
Update dalla loopback
§  Con l’allow-update è possibile definire una lista di IP
abilitati a sottomettere update di una determinata zona.
§  Per consentire update provenienti dalla loopback IPv4 o IPv6
options {
allow-update { ::1; 127.0.0.1; };
};
§  L’istruzione allow-update può essere configurata anche in
una zona o in una view oltre che tra le options.
#59
Specifici controlli IPv6 su BIND
§  BIND dispone di controlli specifici riguardanti il suo funzionamento
su IPv6.
§ 
§ 
§ 
§ 
§ 
listen-on-v6
transfer-source-v6
alt-transfer-source-v6
avoid-v6-udp-ports
query-source-v6
#60
Accettare query IPv6
§  Per rendere operativo il nameserver ad accettare query IPv6 (non
abilitato di default), nelle options del named.conf si configura
quanto segue:
options {
listen-on-v6 { any; };
};
§  Prima di BIND 9.3.0 l’istruzione listen-on-v6 accettava solo any o
none come argomenti. Ora e’ possibile, mediante il comando port,
configurare anche una porta alternativa alla 53:
options {
listen-on-v6 port 1055 { any; };
};
#61
transfer-source-v6
§  Istruzione valida solo per le zone di tipo slave
§  E’ possibile individuare quale indirizzo IPv6 il nameserver slave andrà
ad utilizzare, su connessione TCP, come indirizzo sorgente per il
trasferimento di zona:
options {
transfer-source-v6 2001:760:2521:1:210:4bff:fe10:d24;
};
§  E’ possibile specificare anche la porta sorgente:
options {
transfer-source-v6 2001:760:2521:1:210:4bff:fe10:d24 port 53;
};
§  Oltre che in configurazione globale all’interno delle options questa istruzione
può essere specificata anche in una zona o all’interno delle view
#62
alt-transfer-source-v6
§  Istruzione che ha effetti solo per zone di tipo slave.
§  Specifica un indirizzo IPv6 sorgente o numero di porta alternativo
per lo zone-transfer, nel caso quello di default fallisse
alt-transfer-source-v6 ( ipv6_address | * ) [ port ( integer | * )];
§  E’ indispensabile che l’istruzione
use-alt-transfer-source
sia configurata su “yes”
§  Oltre che in configurazione globale all’interno delle options questa
istruzione può essere specificata anche in una zona o all’interno
delle view
#63
avoid-v6-udp-ports
§  Abilita il nameserver a non usare specifiche porte UDP su traffico
IPv6
§  L’istruzione viene configurata per evitare che il nameserver vada ad
utilizzare una porta in modo randomico che però potrebbe essere
bloccata da un firewall o da un router
options {
avoid-v6-udp-ports { 6000;7000;8000;};
};
#64
query-source-v6
§  Predispone l’indirizzo IP e/o un determinato numero di porta ad
essere utilizzato come sorgente per qualunque query in uscita che
il nameserver trasmette su IPv6.
§  E’ un’istruzione che potrebbe essere utilizzata in una view o tra le
global options
options {
query-source-v6 2001:760:0:2::13;
};
options {
query-source-v6 * port 54321;
};
§  L’asterisco sta ad indicare l’IP di default del server
#65
Definizione del reverse della
loopback IPv6
§  Per definire il reverse name della loopback IPv6 del proprio
nameserver, sul named.conf si dovrà configurare la seguente zona:
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA" {
type master;
file "master/net/localhost-v6.rev";
};
§  In master/net/localhost-v6.rev vi sara’ il file di zona con le
informazioni sul reverse name della loopback IPv6 del nameserver
#66
Utilizzo delle view con IPv6
§  L’istruzione view specifica diversi ambiti di visibilità delle zone
rispetto a porzioni di network
➜ 
acl "internal" {
2001:760:1010::/64;
::1;
};
view "internal" {
match-clients { internal; };
recursion yes;
zone “intranet.prova.it" {
type master;
file "intranet.prova.it.int";
allow-transfer { any; };
};
};
view "external" {
match-clients { any; };
recursion no;
zone "prova.it " {
type master;
file " prova.it.ext";
allow-transfer { none; };
};
};
➜  Le query provenienti da host appartenenti alla /64 indicata nell’acl
internal intercettano la view internal
#67
Configurazione delle zone in IPv6
§  Tre azioni:
§  Rendere i propri nameserver autoritativi per la risoluzione diretta e
inversa su IPv6.
§  Aggiungere i Resource Records nei file di zona (sia AAAA che PTR)
§  Aggiornare le deleghe
#68
Azione 1: configurazione di una zona
master e una slave
§  Nel named.conf del master:
zone “prova.it" {
type master;
file "master/dom/prova-it.soa";
allow-query { any; };
allow-transfer { 90.148.80.2;
2001:760:1010::8; };
};
§  Nel named.conf dello slave:
zone "prova.it " {
type slave;
file "slave/dom/prova-it.for";
masters {
90.148.80.1;
2001:760:1010::7;
};
allow-query { any; };
allow-transfer { none; };
};
#69
Azione 1: configurazione di una zona di
reverse IPv6 master e di una slave
§  Configurazione per la 2001:760:1010::/48
Nel named.conf del master:
zone “0.1.0.1.0.6.7.0.1.0.0.2.ip6.arpa" {
type master;
allow-query { any; };
file "master/ipv6/2001.760.1010.soa";
allow-transfer {
90.148.80.2;
2001:760:1010::8;
};
};
Nel named.conf dello slave:
zone “0.1.0.1.0.6.7.0.1.0.0.2.ip6.arpa" {
type slave;
file "slave/ipv6/2001.760.1010.soa";
masters {
90.148.80.1;
2001:760:1010::7;
};
allow-query { any; };
};
#70
Azione2: aggiungere i records nei file di zona
per risoluzione diretta e inversa
§  Aggiungere i records NS e qualunque altro record necessario nel
file di zona di “prova.it”
§  Verificare la versione del Serial nel record SOA ed aggiornarlo
§  Eseguire un rndc reload “prova.it”
§  Fare una verifica dei log sia sul nameserver master che sullo slave
#71
AAAA e A6: la guerra dei records
§  Lungo dibattito in IETF sulla scelta tra il record AAAA e A6.
§  Entrambi gli approcci sono validi
§  AAAA è semplice concettualmente
§  A6 più flessibile ma assai complicato [RFC 2874] .
§  La decisione venne presa in favore dell’ottimizzazione del criterio
di risoluzione di nomi e indirizzi
§  Vennero scelti AAAA e PTR
§  A6 ancora attivo e supportato da BIND ma solo SPERIMENTALE
#72
Il Record AAAA (quad A)
§  Record Address IPv6 [RFC 3596]
§  Gestisce la risoluzione diretta dei nomi associati ad un indirizzo
IPv6
§  $ORIGIN prova.it
§  www
IN
AAAA
2001:760:1010::3
§  Equivalente al record A utilizzato in IPv4
#73
Configurazione del file di zona
per prova.it
$ORIGIN .
prova.it
IN SOA ns1.prova.it. staff-dns.prova.it. (
2008011101 ; serial
86400
; refresh (1 day)
7200
; retry (2 hours)
2592000
; expire (4 weeks 2 days)
345600
; minimum (4 days)
)
$TTL 86400
NS
NS
$ORIGIN prova.it.
srv1
srv2
www
ns1
ns1.prova.it.
ns2.prova.it.
IN
IN
IN
IN
IN
IN
IN
IN
A
AAAA
A
AAAA
A
AAAA
A
AAAA
10.0.0.1
2001:760:1010::1
10.0.0.2
2001:760:1010::2
10.0.0.3
2001:760:1010::3
10.0.0.4
2001:760:1010::7
#74
Il Record PTR
§  Record Pointer IPv6 [RFC 1035]
§  Gestisce la risoluzione inversa di un indirizzo IPv6 associando un
indirizzo ad un nome
$ORIGIN 1.0.0.0.8.1.c.0.0.0.b.0.e.f.f.3.ip6.arpa
d.1.c.f.7.1.e.f.f.f.7.2.0.9.2.0
IN
PTR
www.6net.garr.it
§  Lo stesso tipo di record utilizzato per IPv4
§  Un nuovo modello di top level usato per IPv6:
§  da ip6.int (deprecato dall’IETF I Giugno 2006)
§  a ip6.arpa
#75
Configurazione del file di zona
di reverse
$TTL 3d @ IN SOA 0.1.0.1.0.6.7.0.1.0.0.2.ip6.arpa. hostmaster.prova.it. ( 200905260 ; Serial number (YYYYMMdd) 24h
; Refresh <me 30m
; Retry <me 2d
; Expire <me 3d
; Default TTL ) IN NS ns1.prova.it. IN NS ns2.prova.it. ; IPv6 PTR entries ; Subnet #1 $ORIGIN 0.0.0.0.0.1.0.1.0.6.7.0.1.0.0.2.ip6.arpa. 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR srv1.prova.it. 2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR srv2.prova.it. 3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR www.prova.it. 7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR ns1.prova.it. 8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR ns2.prova.it. #76
Azione3: aggiornamento delle deleghe
§  Nel caso di domini .it o .eu: aggiornare le deleghe presso il
Registro ed EURid
§  E’ compito del GARR-NIC fornire al Registro e ad EURid i dati sui
nameserver autoritativi verso cui configurare le deleghe.
§  Nel caso della zona di reverse della /48
(0.1.0.1.0.6.7.0.1.0.0.2.ip6.arpa), aggiornare il file di zona di
reverse della /32
§  E’ compito del GARR-LIR provvedere all’aggiornamento del file di zona
di reverse della 2001:760::/32 aggiungendo i records NS relativi ai
nameserver autoritativi della zona di reverse della /48
#77
Esempi di delega IPv6: 2001.760.soa
$TTL 86400
@
; 1 day
IN SOA ns1.garr.net. staff-dns.garr.it. (
2009052401 ; serial
21600
; refresh (6 hours)
3600
; retry (1 hour)
1814400 ; expire (3 weeks)
10800
; minimum (4 days)
)
NS
ns1.garr.net.
NS
ns2.garr.net.
NS
ns.ripe.net.
; Reverse INFN Roma3
;
2.0.0.4
NS
gw6.roma3.infn.it.
NS
ns1.garr.net.
;
; Reverse INFN - MI
;
2.0.0.2
NS
dsmicc.mi.infn.it.
NS
secdns.mi.infn.it.
;
; Reverse Uni-Fi
;
5.0.c.2
NS
dns.ipv6.unifi.it.
#78
Configurazione DNS per l’accesso a
Google over IPv6
§  GARR ha attivato il servizio GOOGLE OVER IPV6 per i
propri utenti.
§  Tutti gli utenti che usano IPv6 sulla rete GARR
potranno, digitando www.google.com, accedere a
Google usando IPv6.
§  Per poter usufruire del servizio occorre accedere a
Google da una rete
§  con bassa latenza
§  che abbia path ridondati verso Google mediante peering diretti
#79
Come funziona il servizio Google
over IPv6
§  Normalmente se un resolver DNS richiede un indirizzo
IPv6 per accedere al sito di Google non lo riceve…
§  Invece un resolver abilitato al servizio Google over IPv6
riceverà in risposta un indirizzo IPv6 e permetterà
l’accesso al web di Google in IPv6
#80
Come usare il servizio Google over IPv6
§  Per poter utilizzare il servizio occorre configurare il proprio DNS
affinché possa risolvere i domini google.com, google.it e
gmail.com in IPv6 usando i server DNS abilitati (ns1.garr.net e
ns2.garr.net) .
§  La parte di configurazione da aggiungere è la seguente:
zone "google.com" IN {
type forward;
forwarders { 2001:760:ffff:ffff::aa; 2001:760:ffff:ffff::ba; };
};
zone "google.it" IN {
type forward;
forwarders { 2001:760:ffff:ffff::aa; 2001:760:ffff:ffff::ba; };
};
zone "gmail.com" IN {
type forward;
forwarders { 2001:760:ffff:ffff::aa; 2001:760:ffff:ffff::ba; };
};
#81
Utility di supporto nella gestione
di un nameserver in IPv6
§  nslookup §  host §  dig L’RFC 1713 descrive un insieme di tools che possono essere u<li per il debugging della configurazione di un nameserver §  Rndc §  named-­‐checkconf §  named-­‐checkzone #82
Alternative a BIND per la gestione del
DNS
#83
DNS software
§  BIND-­‐DLZ §  PowerDNS §  Djdbns §  h@p://cr.yp.to/djbdns.html §  h@p://www.djbdnsrocks.org/ #84
ISC BIND – integrazione con
databases: BIND-DLZ
§  BIND-­‐DLZ (Dynamically Loadable Zones) §  h@p://bind-­‐dlz.sourceforge.net/ §  Introdo@o per abilitare in BIND il supporto per diversi backends (MySQL, PostgreSQL, LDAP) #85
BIND-DLZ: Installazione di MySQL su
nodo1
§  Installazione e configurazione con MySQL backend §  Installare mysql-­‐server (apt-­‐get –y install mysql-­‐server o yum –y install mysql-­‐server) # node1_mysql> CREATE DATABASE dns; # node1_mysql> GRANT ALL ON dns.* TO 'dns_admin'@'localhost' IDENTIFIED BY ‘dns_admin'; # node1_mysql> GRANT REPLICATION SLAVE ON *.* TO 'replicator_dns'@'slave.iltuodominio.it' IDENTIFIED BY ‘replicator_dns'; #86
BIND-DLZ: creazione della tabella e
indici
node1# mysql -­‐u dns -­‐p -­‐S /var/run/mysqld/mysql.sock CREATE TABLE dns.resource_records ( id int(11) unsigned NOT NULL auto_increment, zone varchar(255) NOT NULL, @l int(11) NOT NULL default '86400', type varchar(255) NOT NULL, host varchar(255) NOT NULL default '@', mx_priority int(11) default NULL, data text, primary_ns varchar(255) default NULL, resp_contact varchar(255) default NULL, serial bigint(20) default NULL, refresh int(11) default NULL, retry int(11) default NULL, expire int(11) default NULL, minimum int(11) default NULL, PRIMARY KEY ( id ) ); USE dns; CREATE INDEX host_index ON resource_records( host ); CREATE INDEX type_index ON resource_records( type ); CREATE INDEX zone_index ON resource_records( zone ); node1_mysql> USE dns; node1_mysql> DESCRIBE resource_records; node1_mysql> SHOW INDEX FROM resource_records; #87
BIND-DLZ: Installazione di MySQL su
nodo2
# node2# mysql -­‐u root -­‐p -­‐S /var/run/mysqld/mysql.sock # node2_mysql> CHANGE MASTER TO -­‐> master_host='master.iltuodominio.it', -­‐> master_user='replicator_dns', -­‐> master_password=‘replicator_dns'; # node2_mysql> START SLAVE; #88
BIND-DLZ: installazione di BIND con
backend MySQL
node1# cd /path/to/source node1# tar xzf bind-­‐9.4.1-­‐P1.tar.gz node1# cd bind-­‐9.4.1-­‐P1 node1# ./configure -­‐-­‐with-­‐dlz-­‐mysql=yes -­‐-­‐
prefix=/usr/local/named && make && make install #89
BIND-DLZ: configurazione del named.conf
§ 
Aggiungere a named.conf dlz "Mysql zone" { database "mysql {host=localhost dbname=dns user=dns_admin pass=dns_admin ssl=false port=3306 socket=/var/run/mysqld/mysql.sock} {SELECT zone FROM resource_records WHERE zone = '%zone%'} {SELECT @l, type, mx_priority, IF(type = 'TXT', CONCAT('\"',data,'\"'), data) AS data FROM resource_records WHERE zone = '%zone%' AND host = '%record%' AND type &lt;&gt; 'SOA' AND type &lt;&gt; 'NS'} {SELECT @l, type, data, primary_ns, resp_contact, serial, refresh, retry, expire, minimum FROM resource_records WHERE zone = '%zone%' AND (type = 'SOA' OR type='NS')} {SELECT @l, type, host, mx_priority, IF(type = 'TXT', CONCAT('\"',data,'\"'), data) AS data, resp_contact, serial, refresh, retry, expire, minimum FROM resource_records WHERE zone = '%zone%' AND type &lt;&gt; 'SOA' AND type &lt;&gt; 'NS'}"; }; #90
Non si scrivono I RR nei file di zona ma…
§  Occorre fare gli inserimen< nel DB da CLI o usando una GUI di mysql (sempre necessario reload e modifica del serial) #91
PowerDNS
§  Differenze rispe@o a BIND §  PRO §  Proge@ato per elevata efficienza e scalabilità (ISP) §  Supporto backend mul<pli (files, databases, ldap) §  Non necessario reload quando si modifica zona/aggiunge/rimuove record §  Ges<one automa<ca dell’aggiornamento dei serial §  Ges<one piu’ flessibile delle deleghe di amministrazione delle zone (tramite GUI poweradmin un amministratore di un dominio può vedere/editare solo le sue zone) §  CON §  No caching NS na<vo per risoluzione nomi Internet (richiede demone ad-­‐hoc => powerdns-­‐recursor) §  PowerDNS può usare come resolver Internet sia BIND che PowerDNS recursor #92
PowerDNS – modi di operazione
§  h@ps://doc.powerdns.com/md/authorita<ve/modes-­‐of-­‐opera<on/ §  PowerDNS puo’ essere configurato come: §  Na<ve replica<on (default) §  La replica dei domini fra DNS autorita<vi viene affidata interamente al backend (es mysql master/slave): no dire@e no<fiche dal DNS master al DNS slave (vedi BIND no<fy) §  Master (OFF) §  Autorita<vo per la zona ne de<ene I records nel backend no<ficando I cambiamen< agli slaves §  Deve essere abilitato aggiungendo la direCva master nel file di conf §  Slave §  Autorita<vo per la zona con<ene una replica dei records trasmessi dal master nel backend §  Deve essere abilitato aggiungendo la direCva slave nel file di conf §  Supermaster §  Autorita<vo per la zona, configura automa<camente gli slaves per quelle zone #93
Files di configurazione di
PowerDNS
§  pdns.conf: principale file di configurazione di PowerDNS, vengono incluse tu@e le istruzioni che regolano il comportamento del nameserver §  pdns.local: file in cui vengono incluse le credenziali dell’amministratore di PowerDNS, le informazioni su quale backend u<lizzare. #94
GUI per PowerDNS
§  Webmin (Perl, ISC BIND) §  PRO: §  All-­‐in-­‐one package (abilita web server su porta 10000) §  CON: §  Security bugs richiedono opportune ACL nell’accesso alla GUI §  Poweradmin #95
Poweradmin
§  Strumento per la ges<one di PowerDNS mediante interfaccia WEB §  Scri@o in PHP §  Pieno supporto per ogni <po di zona §  Supporto ad IPv6 §  Realizzato su licenza GPL #96
Requisiti di Installazione
§  PowerDNS, le versioni dalla 2.1 fino alla 2.9.20 sono stabili, la 2.9.20 è stata testata. §  MySQL o PostgreSQL. Varie versioni di MySQL 4 e 5 sono funzionan<, La 5.0.32 è stata testata. §  Un webserver. Apache 2.2.3 testato. §  PHP. Almeno la versione 5.2.0. Necessita delle estenzioni per mysql o pgsql. §  Moduli session, ge@ext, mcrypt di PHP. §  PEAR e’ I suoi packages PEAR::MDB2 (2.4.1 testato) e PEAR::MDB2_Driver_mysql (testata versione 1.4.0) o PEAR::MDB2_Driver_pgsql. §  Dovrebbe essere installato anche GNU ge@ext. Testata versione 0.16.1. #97
Passaggi per l’installazione
manuale
§ 
Prima di installare Poweradmin creare un backup dell’a@uale database PowerDNS (nel caso fosse già in uso) § 
Dopo aver scaricato il pacche@o Poweradmin da web, decomprimerlo nella directory in cui si intende me@ere in produzione il sonware. § 
Aggiungere un’utenza SQL per PowerDNS che abbia I permessi per eseguire query del <po SELECT, INSERT, DELETE, UPDATE e CREATE. § 
Importare la stru@ura del database di Poweradmin all’interno del database di PowerDNS. § 
Definire una configurazione. Fare il copy di "inc/config-­‐me.inc.php" in "inc/config.inc.php " e aggiungere nel file tuC i parametri richies<. § 
Rimuovere la directory install/ dalla directory di Poweradmin § 
Accedere con il browser all’interfaccia web con username " admin " e password " admin " . § 
Cambiare la password di admin #98
Installare PowerDNS e
Poweradmin su Ubuntu
§  Poiché occorrerà eseguire una serie di comandi con privilegi di root eseguiamo da subito il comando: # sudo su #99
Installazione di MySQL
§  Per procedere con l’installazione di MySQL digi<amo il comando # apCtude install mysql-­‐server mysql-­‐client §  Verrà richiesta la password per l’utenza di root MySQL # New password for the MySQL "root" user: pwd # Repeat password for the MySQL "root" user: pwd §  Si fa l’edit del file my.cnf per la configurazione di base, per definizione dell’istanza MySQL del database che verrà u<lizzato da PowerDNS. # vi /etc/mysql/my.cnf [...] §  Eseguire il restart di MySQL # /etc/init.d/mysql restart §  Verifica sul networking: # netstat -­‐tap | grep mysql §  L’output del comando dovrebbe essere simile a questo: # netstat -­‐tap | grep mysql tcp 0 0 *:mysql *:* LISTEN 6724/mysqld #100
Installare PowerDNS
§  Per installare PowerDNS digi<amo il comando: #apCtude install pdns-­‐server pdns-­‐backend-­‐mysql §  Ci conneCamo a MySQL: # mysql -­‐u root –p §  Digitare la password di root di MySQL e creare il database per PowerDNS: > CREATE DATABASE powerdns; §  Per creare un’utenza con tuC I permessi per il database di PowerDNS: > GRANT ALL ON powerdns.* TO 'power_admin'@'localhost' IDENTIFIED BY 'power_admin_password'; §  Una volta defini< i privilegi facciamo il reload di tuC i privilegi per rendere opera<ve le modifiche: > GRANT ALL ON powerdns.* TO 'power_admin'@'localhost.localdomain' IDENTIFIED BY 'power_admin_password'; FLUSH PRIVILEGES; §  Sos<tuire power_admin_password con la password che vogliamo #101
Installare PowerDNS
§  Mediante i seguen< comandi indichiamo quale database usare e creiamo le tabelle che occorrono per PowerDNS: >USE powerdns; > CREATE TABLE domains ( id INT auto_increment, name VARCHAR(255) NOT NULL, master VARCHAR(128) DEFAULT NULL, last_check INT DEFAULT NULL, type VARCHAR(6) NOT NULL, noCfied_serial INT DEFAULT NULL, account VARCHAR(40) DEFAULT NULL, primary key (id) ); #102
Installare PowerDNS
§  Occorre un indice per la tabella domains. Al fine di creare un vincolo che consenta a tuC i valori associa< all'indice di essere dis<n< creiamo uno UNIQUE INDEX per la tabella domains: >CREATE UNIQUE INDEX name_index ON domains(name); §  Creiamo la tabella per i Resource Records: > CREATE TABLE records ( id INT auto_increment, domain_id INT DEFAULT NULL, name VARCHAR(255) DEFAULT NULL, type VARCHAR(6) DEFAULT NULL, content VARCHAR(255) DEFAULT NULL, ol INT DEFAULT NULL, prio INT DEFAULT NULL, change_date INT DEFAULT NULL, primary key(id) ); #103
Installare PowerDNS
§  Creiamo gli indici per i vari <pi di records nella tabella dei Records: > CREATE INDEX rec_name_index ON records(name); CREATE INDEX nametype_index ON records(name,type); CREATE INDEX domain_id ON records(domain_id); Creiamo la tabella per le funzionalità di supermaster di PowerDNS > CREATE TABLE supermasters ( ip VARCHAR(25) NOT NULL, nameserver VARCHAR(255) NOT NULL, account VARCHAR(40) DEFAULT NULL ); §  Infine usciamo da MySQL: > quit; #104
Configurazione di PowerDNS
§  Occorre configurare PowerDNS in modo che u<lizzi MySQL come backend # vi /etc/powerdns/pdns.conf Aggiungere la linea launch=gmysql al file pdns.conf: [...] ################################# # launch # # launch= launch=gmysql [...] #105
Configurazione di PowerDNS
§  Fare l’edit del file pdns.local e scrivere le seguen< righe: # vi /etc/powerdns/pdns.d/pdns.local # gmysql-­‐host=127.0.0.1 gmysql-­‐user=power_admin gmysql-­‐password=power_admin_password gmysql-­‐dbname=powerdns §  Infine eseguire il restart del processo di PowerDNS: # /etc/init.d/pdns restart #106
Installare Poweradmin
§  Poiche’ Poweradmin è scri@o in PHP occorre installare un server web e PHP: # apCtude install apache2 libapache2-­‐mod-­‐php5 php5 php5-­‐
common php5-­‐curl php5-­‐dev php5-­‐gd php-­‐pear php5-­‐imap php5-­‐mcrypt php5-­‐mhash php5-­‐ming php5-­‐mysql php5-­‐xmlrpc geoext §  Poweradmin necessita in oltre dei seguen< paccheC PEAR # pear install DB # pear install pear/MDB2#mysql §  Eseguire il restart di Apache #/etc/init.d/apache2 restart #107
Installare Poweradmin
§  Ora che i prerequisi< per Poweradmin sono disponibili possiamo procedere all’installazione scaricando il sonware: # cd /tmp # wget hops://www.poweradmin.org/download/
poweradmin-­‐2.1.4.tgz §  Quindi installare nella directory /var/www/poweradmin come segue: # tar xvfz poweradmin-­‐2.1.4.tgz # mv poweradmin-­‐2.1.4 /var/www/poweradmin # touch /var/www/poweradmin/inc/config.inc.php # chown -­‐R www-­‐data:www-­‐data /var/www/poweradmin/ #108
Installare Poweradmin
§  Apriamo un browser e lanciamo l’installer di Poweradmin da interfaccia web e scegliamo la lingua: #109
Installare Poweradmin
§  Cliccare su Go to step 3 per procedere con l’installazione #110
Installare Poweradmin
§  Inseriamo i da< per il database. Vanno inseri< i da< per l’utente root di MySQL, non quelli crea< prima per powerdns! #111
Installare Poweradmin
§  A questo punto creiamo le credenziali per l’accesso dell’utente MySQL power_admin che è stato creato nei preceden< passaggi. §  Possono essere inseri< anche i nameserver che verranno u<lizza< come primario e secondario per le nostre zone #112
Installare Poweradmin
§  A questo punto l’Installer suggerirà di eseguire una query MySQL per limitare I diriC all’utente power_admin. Questo non occorre perché è stato già fa@o in uno dei preceden< passaggi. #113
Installare Poweradmin
§  Fare Click su Go to step 7 #114
Installare Poweradmin
§  L’installazione a questo punto è conclusa ma per ragioni di sicurezza è bene cancellare la directory install: # rm -­‐fr /var/www/poweradmin/install/ §  Dopo aver rimosso la directory di installazione ci si può conne@ere la prima volta con utenza “admin” e password “secret” e cambiare le credenziali una volta connessi #115
Utilizzare Poweradmin
§  Si procede con il login a Poweradmin… #116
Utilizzare Poweradmin
§  Questo è come si presenta l’interfaccia web di Poweradmin #117
Utilizzare Poweradmin
§  Per creare una zona master cliccare su Add master zone e inserire il nome a dominio. §  In questa schermata è possibile inserire dire@amente anche l’IP del webserver e del record MX. §  Se si abbandona la schermata senza senza fare click sulla checkbox della voce Create zone without applying records-­‐template, Poweradmin creerà automa<camente alcuni record NS, A ed MX per quella zona. #118
Utilizzare Poweradmin
§  Facendo Click su Go to List zone è possibile visualizzare la zona creata con 8 record già defini< da Poweradmin. Per visualizzare i record cliccare sull’icona di edit #119
Utilizzare Poweradmin
§  Ques< sono i records crea< automa<camente che potranno essere cancella< o modifica<. #120
Utilizzare Poweradmin
§  E’ anche possibile creare i record uno per uno manualmente lasciando vuo< i campi degli indirizzi e facendo click su check Create zone without applying records-­‐template #121
Utilizzare Poweradmin
§  Per questa seconda zona creata ci sarà un solo record (il SOA). Facendo click sull’icona di edit della zona mydomain.com… #122
Utilizzare Poweradmin
§  … Si arriva a questa schermata da cui è possibile aggiungere un nuovo record facendo click su Add record #123
Utilizzare Poweradmin
§  Per esempio un record NS: #124
Utilizzare Poweradmin
§  Oppure un record A o quello che ci occorre: #125

Documenti analoghi

Ed.Scuole - GALLO - DNS

Ed.Scuole - GALLO - DNS §  Per  gesDre  la  risoluzione  degli  indirizzi  IPv6  sono  staD  introdoF:   §  un  nuovo  resource  record  per  associare  un  indirizzo  IPv6  ad  u...

Dettagli

Protocollo DNS - Cremona

Protocollo DNS - Cremona non rispetta gli spazi e i tab di formattazione, impedendo il corretto funzionamento del server DNS. Per completezza è necessario configurare anche il “reverse lookup” ovvero al possibilità di otte...

Dettagli