1 / 94

Seminario per il corso di Reti di calcolatori e sicurezza

D omain N ame S ystem DNS is a name resolution protocol. It converts host names to IP addresses and vice-versa. Seminario per il corso di Reti di calcolatori e sicurezza corso di laurea specialistica in Economia Informatica Docente Prof. Stefano Bistarelli Studente Bruno Marien AA2004/05.

dori
Download Presentation

Seminario per il corso di Reti di calcolatori e sicurezza

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DomainNameSystemDNS is a name resolution protocol. It converts host names to IP addresses and vice-versa Seminario per il corso di Reti di calcolatori e sicurezza corso di laurea specialistica in Economia Informatica Docente Prof. Stefano Bistarelli Studente Bruno Marien AA2004/05

  2. Esercizi e seminari • Scoprire per quali messaggi DNS usa la porta 53 e il TCP (invece che l’UDP) • Seminario su configurazioni del DNS • Seminario su DNSSEC (due persone) dopo che abbiamo fatto crittografia (novembre) • www.dnssec.net

  3. From: "Stefano Bistarelli" <bista@sci.unich.it> To: "Bruno" <brunomarien@yahoo.it> Date: Tue, 12 Oct 2004 12:48:16 +0200 Devi parlare di quello non fatto a lezione. Le slide fino alla 15 devono essere solo 1 slide di introduzione. Mi pare ancora molto nebuloso. Fai vedere configurazione di resolver (su window e linux) e del nameserver (su linux e se vuoi su window2000) parla anche del dynamic update dns e differenze con dhcp

  4. Quindi: • Introduzione (appena più di 1 slide) • La configurazione • del resolver e • del nameserver • Dynamic Update DNS e DHCP

  5. 1. Introduzione: la scatola nera • Uomo chiede alla macchina: linguaggio ‘umano’, hostname mnemonico. • Macchina fornisce hostname ad un servizio chiamato resolver • Resolver restituisce l’indirizzo IP • Macchina esegue il sevizio richiesto utilizzando l’indirizzo IP Schema del DNS

  6. L’organizzazine dei nomi di dominio – concetti chiave • DNS è un database gerarchico e distribuito che contiene record di risorse con diversi campi • Resolver (client): query (forward e inverse) • Name Server (locale, assoluti, root, cache) • Concetto di ‘Zona’!! (non è dominio) • Resource Record: campi (owner, Type, Class, TTL, Data)

  7. I tipi RR più comuni

  8. Altri tipi meno comuni o emergenti

  9. Vocabolario • Resolver e nameserver • Nameserver assoluto primario • Nameserver assoluto secondario • Nameserver cache / forwarder • File di configurazione • File di zona

  10. 2. La configurazione del DNS 2.1. La configurazione del resolver

  11. La configurazione del Resolver2.1.1. Windows • Start > Pannello di controllo > Connessioni di rete > LAN > Generale > Protocollo internet (TCP/IP) > Generale • Scelta: automatica o manuale (fornito dall’amministratore di rete / ISP; preferito, alternativo) • > Avanzate, DNS (lista, suffissi e limitazione della risolutizione dei nomi per nomi non qualificati) Configurazione DNS > Resolver > Windows

  12. Il resolver • I processi in corso: svchost.exe • Dove risiede? Lo scopriamo con: Start > Panello di Controllo > Strumenti di amministrazione >Servizi > Client DNS [dx proprietà] • Attivarlo (avvio di Windows): C:\Windows\System32\svchost.exe –k NetworkService (netsvcs per DHCP) Configurazione DNS > Resolver > Windows > processo

  13. La configurazione del Resolver2.1.2. Linux • File /etc/resolv.conf dice quali nameserver devono essere usati dal resolver domain alei.it nameserver 172.18.9.1 nameserver 172.2.0.1 search alei.com alei.org alei.net options timeout 3 options attempts 3 Configurazione DNS > Resolver > Linux > etc/resolv.conf

  14. Esempio domain alei.it /* identifica il nome del dominio a cui appartiene la propria macchina e il server dns.alei.it */ nameserver 172.18.9.1 /* Indirizzo IP del DNS primario */ nameserver 172.2.0.1 /* Indirizzo IP di un eventuale DNS secondario */ search alei.com alei.org alei.net /* elenca domini che vengono aggiunti a nomi di host per ricerche DNS. Può generare traffico inutile e ritardi */ options timeout 3 options attempts 3 Configurazione DNS > Resolver > Linux > Esempio

  15. Vedere il contenuto del resolver locale (cache) • Ipconfig /displaydns • Ipconfig /flushdns (pulisce la cache) • (Ipconfig /all) Configurazione DNS > Resolver > Ipconfig

  16. 2. La configurazione del DNS 2.2. La configurazione del nameserver

  17. Configurazione del Name Server2.2.1. Linux • Il file etc/named.conf • Cache / forwarding nameserver • Nameserver assoluto • Altri parametri • I file di zona in var/named/zones/ • Aggiornamenti • Controllo Configurazione DNS > Nameserver > Linux

  18. 2.2.1.1. /etc/named.conf • /etc/named.conf (BIND 8 e superiori) contiene i parametri di configurazione organizzato in sessioni: • affermazioni {...} e • commenti /*...*/// # • Sicurezza: bind gira come root. Usare un utente con minor privilegi e mettere bind in un chroot, un ambiente in cui il processo può lavorare con una propria directory root, per esempio: /var/named/ quindi: /var/named/etc/named.conf; /var/named/var/run/named.pid; var/named/zones/; var/named/zones/slave/ Comando di partenza: named –t /var/named –c /etc/named.conf Configurazione DNS > Nameserver > Linux > named.conf

  19. Un primo esempio acl "reteaz" {172.18.9.0/28; 10.0.0.0/8;}; options {directory "/var/named"; pid-file "named.pid"; allow-query {“reteaz"; };}; zone "." { type hint; file "root.hint"; };  zone "0.0.127.in-addr.arpa" { type master; file "localhost.rev"; notify no;}; Configurazione DNS > Nameserver > Linux > named.conf

  20. Sezioni di named.conf: acl acl: access control list (nome simbolico per una lista di indirizzi IP). Predefinito: none, any, localhost, localnets. acl“fidati” {172.18.9.0/28; 131.13.3.3;}; // fidati: rete interna meno sottozona e altra rete acl“secondari” {172.18.22.5; 131.13.3.5;}; // secondari: due host, nameserver assoluti secondari acl“diffidati” {155.111.222.0/24;}; // diffidati: rete intera sospetta Configurazione DNS > Nameserver > Linux > named.conf > acl

  21. Sezioni di named.conf: options options: fornisce informazioni globali sul server e valori di default di altre sezioni (es. directory dei file). Esempio options {blackhole {diffidati;}; allow-query {any;}; allow-recursion {fidati;}; allow-transfer {secondari;}; } Configurazione DNS > Nameserver > Linux > named.conf > options

  22. Altri parametri: forwarders {172.18.9.22;}; forward {first | only;}; controlla il comportamento di forwarders: first: inoltrare prima di risolvere in proprio only : solo inoltrare, non risolvere in propio Configurazione DNS > Nameserver > Linux > named.conf > options

  23. notify {yes | no | explicit;} listen-on {10.0.1.1;}; Specifica l’interfaccia di rete sulla quale il programma è in attesa di query (qui interfaccia della rete interna). Default: tutte le interfaccie. statistics-file Specifica un posto per i file statistici. Default:/var/named/named.stats Configurazione DNS > Nameserver > Linux > named.conf > options

  24. Sezioni di named.conf: zone zone: diversi tipi di file di configurazione: • zona assoluto primario: type master • zona assoluto secondario: type slave • root: type hint • cache, intermedio, inoltro:type stub, type forward, type delegation-only Configurazione DNS > Nameserver > Linux > named.conf > zone

  25. L’importanza del nome della zona nella voce zone “nomedellazona” {....} nel file named.conf per i file di zona: @ (valore di default) $ ORIGIN (valore di default) nomi non assoluti (non finiscono con un punto!!!) Dopo il nome della zona si può anche inserire la classe della zona che di solito è IN e viene spesso ommesso Esempio: zone“esempio.com” IN {type master; file “esempio.com.db”; }; Configurazione DNS > Nameserver > Linux > named.conf > zone

  26. Altre opzioni per zone: allow-query allow-transfer allow-update file masters notify zone-statistics Configurazione DNS > Nameserver > Linux > named.conf > zone

  27. named.conf per solo cache /* file di configurazione per solo cache */ acl"reteaz" {172.18.9.0/28; 10.0.0.0/8;}; options {directory "/var/named"; pid-file "named.pid"; allow-query {“reteaz"; };}; zone "." {type hint; file "root.hint"; }; zone "0.0.127.in-addr.arpa" { type master; file "localhost.rev"; notify no;}; Configurazione DNS > Nameserver > Linux > named.conf > cache

  28. named.conf per assoluto /* Server assoluto è simile al cache, ma aggiunge delle zone*/ options {directory "/var/named"; pid-file "named.pid"; allow-query{any;}; recursion no;}; Configurazione DNS > Nameserver > Linux > named.conf > assoluto

  29. zone "." { type hint; file"root.hint"; };  zone "0.0.127.in-addr.arpa" { type master; file"localhost.rev"; notify no;}; zone "localhost" { type master; file"localhost.db"; }; Configurazione DNS > Nameserver > Linux > named.conf > assoluto

  30. /*zona associazione laureati in economia informatica per cui è il server assoluto primario*/ zone "alei.it" {type master; file“alei.it.db"; allow-transfer {172.18.22.5; 131.13.3.5;};}; /*zona associazione laureati in economia ambientale per cui è un server assoluto secondario*/ zone "aleam.it" {type slave; file“aleam.it.bk"; masters {172.18.9.32;};}; /* zona inversa per alei.it*/ zone “9.18.172.in-addr.arpa" {type master; file“alei.it.rev"; notify no;}; Configurazione DNS > Nameserver > Linux > named.conf > assoluto

  31. Altre sezioni in named.conf controls: usato per definire canali di controllo per rndc (più avanti). key: definisce chiavi da usare per autenticazione e autorizzazione trusted-keys: definisce chiavi per DNSSEC logging: specifica di cosa il server tiene traccia (logging) e dove memorizza queste informazioni. Una sola volta per named.conf Configurazione DNS > Nameserver > Linux > named.conf > altro

  32. server: opzioni di configurazione per singoli server (esempio più avanti con aggiornamento) include “nomefile” permette di includere informazioni sensibili (per esempio chiavi) contenuti in file separati con accesso ristretto (percorso assoluto) view: definisce delle viste (diverse a secondo del server o indirizzi IP: sicurezza) Configurazione DNS > Nameserver > Linux > named.conf > altro

  33. 2.2.1.2. I file di zona • root.hint file con le definizioni dei root nameserver • file con le definizioni locali (localhost.db) • Costruiamo insieme • alei.it.db file per risoluzione diretta • alei.it.rev (localhost.rev è analogo) file per risoluzione inversa (reverse) • aleam.it.bk è ottenuto tramite zone-transfer Configurazione DNS > Nameserver > Linux > File di zona

  34. var/named/root.hint • file con le definizioni dei root nameserver • scaricare dalla rete: ftp://ftp.rs.internic.net/domain/named.root ftp://ftp.nic.it/pub/DNS/named.root • qualche volta chiamato named.root o db.root Configurazione DNS > Nameserver > Linux > File di zona > root

  35. ; formerly NS.INTERNIC.NET ; . 3600000 IN NS A.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 ; ; formerly NS1.ISI.EDU ; . 3600000 NS B.ROOT-SERVERS.NET. B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201 ; ; formerly C.PSI.NET ; . 3600000 NS C.ROOT-SERVERS.NET. C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12 ; ; formerly TERP.UMD.EDU ; . 3600000 NS D.ROOT-SERVERS.NET. D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90 ; ; formerly NS.NASA.GOV ; . 3600000 NS E.ROOT-SERVERS.NET. E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10 ; ; formerly NS.ISC.ORG ; . 3600000 NS F.ROOT- Configurazione DNS > Nameserver > Linux > File di zona > root

  36. var/named/alei.it.db alei.it. 86400 IN SOA alei.it. master.alei.it ( 2004102601 ; numero di serie 21600 ; refresh per slave 6 ore anche 6H 3600 ; retry 10 min anche 10M 3600000 ; expire slave 1000 ore anche 41D o 6W 900 ) ; min neg caching (max 3 ore) • Ogni zona ha esattamente un record soa: indica che i dati sono assoluti per la zona • Il nome di dominio in cima è proprietario di questo SOA • Valori in SOA: nome del nameserver assoluto; email amministratore, numero di serie da incrementare dopo ogni cambiamento, parametri per il tempo Configurazione DNS > Nameserver > Linux > File di zona > alei.it

  37. alei.it. 43200 IN NS ns.tecweb.unich.it. alei.it. IN NS ns.alei.aruba.com. IN NS ns.free.ac.be. services IN NS s.alei.it. services IN NS b2b.bald.biz. • I record NS indicano il nome (non indirizzo IP) dei diversi nameserver assoluti della zona (uno primario e almeno uno secondario, disolocati,...) non va mai riferito ad un RR di tipo CNAME • notate le ‘omissioni’ in riga 2, 3 e 4; nomi assoluti e relativi (services è una sottozona) • services (services.alei.it) è una sottozona di alei.it con un proprio nameserver assoluto su s.alei.it. e b2b.bald.biz. Configurazione DNS > Nameserver > Linux > File di zona > alei.it

  38. ns.tecweb.unich.it.IN A 172.18.9.12 ns.alei.aruba.com. IN A 122.15.15.3 ns.free.ac.be. IN A 131.13.3.5 s.alei.it. IN A 172.18.9.55 b2b.bald.biz. IN A 187.12.50.67 Configurazione DNS > Nameserver > Linux > File di zona > alei.it

  39. www 43200 IN CNAME fabio.alei.it. ftp IN CNAME ftp.alei.it. pop IN CNAME mail.alei.it smpt IN CNAME mail.alei.it @ IN MX 0 mail.alei.it. 50 rescue.alei.it. 10 bruno.alei.it. Configurazione DNS > Nameserver > Linux > File di zona > alei.it

  40. localhost IN A 127.0.0.1 mail IN A 172.18.9.7 ftp IN A 172.18.9.22 ftp IN A 172.18.9.21 rescue IN A 131.22.14.1 bruno IN A 172.18.9.1 fabio IN A 172.18.9.2 claudia IN A 172.18.9.3 marianna IN A 172.18.9.4 stefano IN A 172.18.9.5 s.alei.it. IN A 172.18.55.2 quest’ultimo è un ‘glue’RR perché il server che cerchiamo sta nel sottodominio di alei.it Configurazione DNS > Nameserver > Linux > File di zona > alei.it

  41. scorciatoie $ORIGIN alei.it. $TTL 86400; 24 ore default TTL per RR @ IN SOA alei.it. master.alei.it ( 2004101801 ; numero di serie 21600 ; refresh 6 ore 3600 ; retry 10 min 3600000 ; expire 1000 ore 900 ) ; negative caching ; max 3 ore NS ns.tecweb.unich.it. Configurazione DNS > Nameserver > Linux > File di zona

  42. $GENERATE è una direttiva per la generazione automatica di insiemi di RR (A, CNAME, NS e PTR) che differiscono tra loro soltanto per un numero progressivo $TTL 3H $ORIGIN alei.it. $GENERATE 10-30/2 PC$ CNAME PC$.membri equivale a inserire in un file di zona: PC10.alei.it. 10800 IN CNAME PC10.membri.alei.it. PC12.alei.it. 10800 IN CNAME PC12.membri.alei.it. ... PC30.alei.it. 10800 IN CNAME PC30.membri.alei.it. Configurazione DNS > Nameserver > Linux > File di zona

  43. /var/named/localhost.rev $TTL 86400 ; $ORIGIN 0.0.127.IN-ADDR.ARPA. @ IN SOA localhost. root.localhost. ( 2004102200 ; Serial 3h ; Refresh 15 ; Retry 1w ; Expire 3h ) ; Minimum IN NS localhost. 1 IN PTR localhost. Configurazione DNS > Nameserver > Linux > File di zona > localhost.rev

  44. var/named/alei.it.rev $TTL 1d $ORIGIN 9.18.172.in-addr.arpa. @ IN SAO alei.it. master.alei.it ( 2004010301 86400 3600 864000 86400 ) alei.it. 43200 IN NS ns.tecweb.unich.it. alei.it. IN NS ns.alei.aruba.com. IN NS ns.free.ac.be. 21 IN PTR ftp.alei.it. 7 IN PTR mail.alei.it. 22 IN PTR ftp.alei.it. 1 IN PTR bruno.alei.it. 2 IN PTR fabio.alei.it. 3 IN PTR claudia.alei.it. 4 IN PTR marianna.alei.it. 5 IN PTR stefano.alei.it. Configurazione DNS > Nameserver > Linux > File di zona > alei.it.rev

  45. 2.2.1.3. Aggiornamento Distinguere: • aggiornamento named.conf: amministratore • aggiornamento file di zona assoluto primario: • manuale • dinamico: allow-update • aggiornamento file di zona assoluto secondario: notify; allow-notify, zone-transfer: axfer e ixfer • aggiornamento della cache: TTL Configurazione DNS > Nameserver > Linux > Aggiornamento

  46. Aggiornare primario • Master zonefile: manuale (amministratore di zona), numero seriale • Aggiornamento dinamico (default: disattivato) zone “alei.it” {type master; file “alei.it.db”; allow-update{172.18.22.5;};}; Configurazione DNS > Nameserver > Linux > Aggiornamento

  47. Notify (RFC 1996) è un meccanismo che permette ad un nameserver primario di dare un avviso ai nameserver secondari (NS oppure also-notify) dei cambiamenti apportati ai file di zona. Il secondario verficherà il numero di serie: se diverso inizia il trasferimento. options { notifyyes_or_no | explicit; }; Configurazione DNS > Nameserver > Linux > Aggiornamento

  48. Transaction SIGnatures (TSIG) per la comunicazione sicura tra server, usando delle chiavi: zone transfer, notify, messaggi di query recursive, dynamic update (non solo in base a indirizzo IP, ma anche con una chiave). keyhost1-host2.{algorithm hmac-md5; secret "La/E5CjG9O+os1jq0a2jdA==";}; /* da inserire nel named.conf di host1 e host2 */ server 10.1.2.3 {keys {host1-host2.;};}; /* nel named.conf di host1 con 10.1.2.3 indirizzo IP dell’host2 e analogo per il contrario */ allow-update {key host1-host2. ;}; /* uso di chiavi oltre indirizzi IP in affermazioni di tipo ‘allow-qualcosa’ Configurazione DNS > Nameserver > Linux > Aggiornamento

  49. Meccanismo dell’aggiornamento dinamico • RFC 2136: aggiungere, modificare, cancellare RR o insiemi di RR nel file assoluto primario • Cambiamenti registrati in file alei.it.db.jnl • Server periodicamente (15’) scarica (dump) il contenuto completo della zona aggiornata sul file di zona • Server che riparte rilegge file .jnl e incorpora tutti gli aggiornamenti posteriori all’ultimo dump • Cambiamenti da trasferimenti incrementali di zona in ingresso trattati nello stesso modo • Non aggiornare manualmente! Configurazione DNS > Nameserver > Linux > Aggiornamento

  50. Attenzione non cambiare manualmente /etc/named.conf o i file di zona se si usa Bind Configuration Tool: ogni cambiamento manuale verrà sovrascritto la volta successiva che viene usato Bind Configuration Tool Configurazione DNS > Nameserver > Linux > Aggiornamento

More Related