Marco Gallo (Consortium GARR) Istruzioni teoriche e pratiche sul DNS

Documenti analoghi
Corso di recupero di sistemi Lezione 8

(Domain Name System) DNS (Domain Name System) Architettura del DNS DNS. A.Lioy - Politecnico di Torino (2013) B-1. Antonio Lioy < lioy@polito.

Laboratorio di Reti Esercitazione N 2-DNS Gruppo 9. Laboratorio di Reti Relazione N 2. Mattia Vettorato Alberto Mesin

Realizzazione di un servizio DNS su piattaforma Linux e Solaris con ISC BIND master / /24

20. DNS: Il Domain Name System

ARP (Address Resolution Protocol)

Lezione 11 Livello Applicativo bind (DNS)

Manuale per la configurazione di AziendaSoft in rete

Guida all amministrazione VPH Webmin/Virtualmin

GERARCHIE RICORSIVE - SQL SERVER 2008

Introduzione al Dns. Loredana Pillitteri. Semplificazione della gestione e delega amministrativa Pisa - CNR - ISTI dicembre 2003

Guida Tecnica. Come visionare da internet anche dietro un IP dinamico i dvr Brahms.

SOSEBI PAPERMAP2 MODULO WEB MANUALE DELL UTENTE

SIEMENS GIGASET S685 IP GUIDA ALLA CONFIGURAZIONE EUTELIAVOIP

DynDNS tra Client e server Linux Ubuntu (Client e server 8.04 LTS)

PIATTAFORMA DOCUMENTALE CRG

SIEMENS GIGASET S450 IP GUIDA ALLA CONFIGURAZIONE EUTELIAVOIP

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

Interconnessione di reti

SIEMENS GIGASET C450 IP GUIDA ALLA CONFIGURAZIONE EUTELIAVOIP

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Area Clienti Tiscali Hosting e Domini

01/05/2013 Istruzioni per l installazione

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

Corso di Amministrazione di Reti A.A. 2002/2003

2.1 Installazione e configurazione LMS [4]

Network Services Location Manager. Guida per amministratori di rete

Access Control List (I parte)

Esercitazione 05. Sommario. Packet Filtering [ ICMP ] Esercitazione Descrizione generale. Angelo Di Iorio (Paolo Marinelli)

1) GESTIONE DELLE POSTAZIONI REMOTE

Dal protocollo IP ai livelli superiori

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

SIEMENS GIGASET S450 IP GUIDA ALLA CONFIGURAZIONE EUTELIAVOIP

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Domain Name System. Gerarchia nomi simbolici

Sistemi avanzati di gestione dei Sistemi Informativi

Maschere di sottorete a lunghezza variabile

INDIRIZZI IP ARCHITETTURA GENERALE DEGLI INDIRIZZI IP FORME DI INDIRIZZI IP CINQUE FORME DI INDIRIZZI IP

EasyDNS2. Manuale d uso L EVOLUZIONE DEI SERVIZI DOMAIN NAME SYSTEM

GateManager. 1 Indice. tecnico@gate-manager.it

Manuale Utente MyFastPage

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

SOMMARIO... 3 INTRODUZIONE...

Installazione di GFI Network Server Monitor

INSTALLAZIONE DI JOOMLA! Guida alla installazione di Joomla!

MANUALE PARCELLA FACILE PLUS INDICE

Nuovo server E-Shop: Guida alla installazione di Microsoft SQL Server

FRANCESCO MARINO - TELECOMUNICAZIONI

Guida alla registrazione on-line di un DataLogger

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?

DNS (Domain Name System) Gruppo Linux

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 3 a lezione a.a. 2009/2010 Francesco Fontanella

Il Web Server e il protocollo HTTP

Dal sito: Articolo recensito da Paolo Latella

2 Configurazione lato Router

Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica.

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Procedura di abilitazione alla Rete di Lombardia Integrata

Fate doppio click sul file con nome postgresql-8.0.msi e impostate le varie voci come riportato nelle immagini seguenti:

Corso BusinessObjects SUPERVISOR

Guida all impostazione. Eureka Web

Domini Virtual Server

Firewall e NAT A.A. 2005/2006. Walter Cerroni. Protezione di host: personal firewall

Apache 2, PHP5, MySQL 5

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

DNSSEC. a real, working and optimized implementation. Samuele Racca samuele.racca@polito.it. Politecnico di Torino TOP-IX

Online Help StruxureWare Data Center Expert

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

Mac Application Manager 1.3 (SOLO PER TIGER)

Domain Name System: DNS

Client - Server. Client Web: il BROWSER

Configurazione WAN (accesso internet)

OwnCloud Guida all installazione e all uso

CONTENUTI 1. INTRODUZIONE CONCETTI BASICI SU EQUINOX CMS XPRESS ACCESSO A EQUINOX CMS XPRESS PAGINA D INIZIO...

ALTRO. v (Maggio 2015)

Reti di Calcolatori. Vantaggi dell uso delle reti. Cosa è una rete? Punto di vista logico: sistema di dati ed utenti distribuito

CONFIGURARE IL DISPOSITIVO DI TELEASSISTENZA

Dispensa di database Access

Aggiungere le funzionalità ACN in Iatros

Come si può vedere, la regola è stata fatta in modo da spostare tutti i messaggi di Spam nella cartella del cestino.

ISTRUZIONI INSTALLAZIONE PMANGO

Manuale utente Volta Control

Reti di Calcolatori. Il Livello delle Applicazioni

Console di Amministrazione Centralizzata Guida Rapida

PORTALE CLIENTI Manuale utente

Guida alla registrazione on-line di un NovaSun Log

SIP-Phone 302 GUIDA ALLA CONFIGURAZIONE EUTELIAVOIP

Il web server Apache Lezione n. 3. Introduzione

Livello di applicazione. Reti di Calcolatori. Corso di Laurea in Ingegneria Informatica. Livello di applicazione DNS A.A.

NOTE TECNICHE DI CONFIGURAZIONE. Giugno 2009

IRSplit. Istruzioni d uso 07/10-01 PC

Configurazione avanzata di XAMPP

Guida di Pro Spam Remove

CONTENT MANAGEMENT SY STEM

STAMPA UNIONE DI WORD

Cimini Simonelli - Testa

Studi di Settore. Nota Operativa 22/4/2013

Transcript:

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. EDU COM US EU IT UK ARPA BERKELEY MIT STANFORD GARR FIAT FI LAZIO IN-ADDR AI LCS NOC LIR DIR COMUNE REGIONE PREP XX VX DXGARR 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 254 48.146.in-addr.arpa dominio 65.48.146.in-addr.arpa sottodominio 69.65.48.146.in-addr.arpa macchina #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 137 CNAME 136.128-26 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

uery "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] 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; 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; #34

Il processo di risoluzione dei nomi query per www.iat.cnr.it 2 referral al NS per it. root nameserver. Default Nameserver (cache vuota) query for www.iat.cnr.it 3 referral al NS per cnr.it query for www.iat.cnr.it 4 referral al NS per iat.cnr.it it. nameserver cnr.it nameserver IT CNR COM UNIPI 1 RESOLVER applicazione utente query: www.iat.cnr.it 6 5 RR per www.iat.cnr.it iat.cnr.it nameserver IAT www BO #35

a 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 (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 Nameserver vicma (10.10.1.1) (5) I DNS con recursion aperta inviano le risposte di 4000byte all NS vicma (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 (3) Quale è L IP di www.abcd.it? id777 (1)Query per 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 root Nome Indirizzo IP arpa com net it in-addr ip6 apnic ripe garr infn 0... 194 1.0.0.2... 255 193 whois 206 0.6.7.0 141 142 f.f.f.f ns1.garr.net 38 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 ns1 lnf 193.206.141.38 2001:760:ffff:ffff::aa ns1.garr.net 2001:760:ffff:ffff::aa à 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 ns1.prova.it. NS ns2.prova.it. $ORIGIN prova.it. srv1 IN A 10.0.0.1 IN AAAA 2001:760:1010::1 srv2 IN A 10.0.0.2 IN AAAA 2001:760:1010::2 www IN A 10.0.0.3 IN AAAA 2001:760:1010::3 ns1 IN A 10.0.0.4 IN AAAA 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

NS 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

IND-DLZ: Installazione di MySQL su odo1 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

IND-DLZ: creazione della tabella e ndici 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

IND-DLZ: Installazione di MySQL su odo2 # 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

IND-DLZ: installazione di BIND con ackend 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

IND-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 <> 'SOA' AND type <> '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 <> 'SOA' AND type <> 'NS'}"; }; #90

on 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

iles di configurazione di owerdns 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

UI 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

assaggi per l installazione anuale 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