Università di Roma La Sapienza Facoltà di Ingegneria Corso di Progettazione di Reti e Sistemi Informatici, a.a. 2010/2011 Dott. Emiliano Casalicchio Lezione 6 19 Maggio 2011 *** Argomenti di questa lezione In questa lezione lo studente imparerà a configurare un server DNS (RFC 1035), un server SSH ed un server FTP. Si suggerisce quindi di ripassare i concetti base relativi dei relativi protocolli studiati nel corso di Reti di Calcolatori. Letture aggiuntive consigliate per il DNS sono: Manuale Bind9 http://www.bind9.net/manual/bind/9.3.2/Bv9ARM.ch01.html#id2546234 Parte introduttiva del tutorial Debian http://www.aboutdebian.com/dns.htm Ulteriori risorse: http://www.bind9.net/ http://www.root‐servers.org/ Progettazione di Reti e Sistemi Informatici, Università di Roma La Sapienza, Fac. di Ingegneria. Richiami sul DNS /00,$%&'(&' /00,$%&'(&' /00,$%&'(&' /00,$%&'(&'$ )*+,-*.& < ; /&+01(&' /&+01(&'2 3 8@< 6 8@9 45512.-,20* : 7 6? 8 8@; 9 > = !"#$%&'(&' !"#$%&'(&' !"#$%&'(&' !"#$%&'(&' )*+,-*.& 66 6< 63 6; 3"#$%&'(&' 3"#$%&'(&' 3"#$%&'(&' 3"#$%&'(&' 8@6 8@3 3"#$%&'(&' 3"#$%&'(&' 3"#$%&'(&' *"#$%&'(&' Emiliano Casalicchio, [email protected] course page: http://www.ce.uniroma2.it/courses/PRSI pag. 2 di 11 Progettazione di Reti e Sistemi Informatici, Università di Roma La Sapienza, Fac. di Ingegneria. Mappa dei 13 root servers (a‐m) e delle loro istanze. Zone vs Domain ... a zone is a point of delegation in the DNS tree. A zone consists of those contiguous parts of the domain tree for which a name server has complete information and over which it has authority. ... A zone can map exactly to a single domain, but could also include only part of a domain, the rest of which could be delegated to other name servers. ... Most of the time a zone just equates to a domain. The only times this wouldn't be true is if you set up subdomains and set up separate DNS servers to handle just those subdomains. For example, a company would set up the subdomains us.their‐ domain.com and europe.their‐domain.com and would "delegate" a separate DNS server to each one of them. In the case of these two DNS servers their zone would be just the subdomains. The zone of the DNS server for the parent their‐ domain.com (which would contain the servers www.their‐domain.com and mail.their‐domain.com) would only contain records for those few machines in the parent domain. ... Emiliano Casalicchio, [email protected] course page: http://www.ce.uniroma2.it/courses/PRSI pag. 3 di 11 Progettazione di Reti e Sistemi Informatici, Università di Roma La Sapienza, Fac. di Ingegneria. Passi base per le esperienze ed esercizi contenuti in questa lezione 1) Creare 3 macchine virtuali con sistema operativo guest linux (gia' create nelle precedenti esercitazioni). 2) disattivare interfaccia grafica linux ad es.: mv /etc/init/gdm.conf /etc/init/gdm.conf.disabled In queto modo al boot il sistema opeartivo non legge la configurazione del gestore di interfaccia grafica e parte in modalità testuale. In alternativa partire in modalità grafica e poi passare a tty1‐6 Esperienza 1 Configurazione di un Name server per risoluzione e caching, detto anche caching name server). Possiamo utilizzare queste 2 topologie di rete per il test: Internet ‐‐ NameServer oppure Internet ‐‐ NameServer ‐‐ Net1 ‐‐ Client 1. Installazione di Bind9 ad esempio apt-get install bind9 2. Analizziamo i file di configurazione in alternativa potremmo avere un solo file named.conf named.conf.options contiente l'opzione option named.conf.default-zone contiene la dichiarazione delle zone Ci sono poi i file che descrivono le zone mediante vari Resource Records (RRs) SOA, NS, MX, TXT, etc... (per un elenco completo si veda http://www.iana.org/assignments/dns‐parameters) L'amministratore di sistema può nominare questi file come ritiene più opportuno. 3. configuriamo la zona "." e la zona "127.0.0" inserendo quanto segue nel file named.conf.default‐zone Emiliano Casalicchio, [email protected] course page: http://www.ce.uniroma2.it/courses/PRSI pag. 4 di 11 Progettazione di Reti e Sistemi Informatici, Università di Roma La Sapienza, Fac. di Ingegneria. vediamo cosa contiene db.root (o root.hints) 4. definiamo ora ora il record SOA da mettere nel file db.local $TTL 3D @ IN SOA root.emiliano.casalicchio. ( 1 NS PTR ns.emiliano.casalicchio. 1 ; Serial 8H ; Refresh 2H ; Retry 4W ; Expire 1D) ; Minimum TTL ns.emiliano.casalicchio. localhost. 5) configuriamo ora il resolv.conf per far si che localhost sia il NS di default per il nostro nodo. search emiliano.casalicchio nameserver 127.0.0.1 ‐ la direttiva search indica domini che devo essere applicati a nomi di servers. ‐ la direttiva nameserver indica i NS che devono essere interrogati) 6) Facciamo partire il server named (ad esempio /etc/init.d/bind9 start|stop|restart). Possiamo controllare se ci sono stati particolari errori dal file /var/log/daemon.log vediamo cosa succede se facciamo un reverse lookup dig -x 127.0.0.1 Emiliano Casalicchio, [email protected] course page: http://www.ce.uniroma2.it/courses/PRSI pag. 5 di 11 Progettazione di Reti e Sistemi Informatici, Università di Roma La Sapienza, Fac. di Ingegneria. Se ora fossimo connessi alla rete potrei provare il funzionamento della cache mediante il commando dig. Ad esempio la prima volta che si richiede la risoluzione di un nome di dominio, ad es. dig www.cs.gmu.edu si otterranno tempi di risoluzione dell’ordine delle centinaia si millisecondi (prendete un dominio particolare che difficilmente viene richiesto (per esempio NON usate repubblica.it o uniroma1.it che molto probabilmente saranno già nella cache del vostro ISP) Ripetete poi la stessa query dig www.cs.gmu.edu otterrete dei tempi di risposta dell’ordine dei millisecondi (3‐4 msec.). Significa che la query al DNS è stata risolta utilizzando le informazioni nella cache del vostro DNS server. Esercizio1. Fare un po' di prove interrogando vari servers e confrontare risultati utilizzando: ‐ un root name server ‐ un open DNS come 8.8.8.8 o 8.8.4.4 o 208.67.222.222 Esercizio2. Ripetere l'esperienza con la topologia di rete Internet ‐‐ NameServer ‐‐ Net1 ‐‐ Client Esperienza 2 Vediamo come funziona una query ricorsiva e non. Dobbiamo utilizzare l’opzione +norec del comando dig. Considerate che anche se ho gia' il record nella cache anche se uso +noreq non prendo il dato dalla cache. Invocare il comando dig www.cs.gmu.edu +noreq viene ritornata la lista dei root servers e dei relative indirizzi IP. dig @IP-ROOT-SERVER|NOME-ROOT-SERVER www.cs.gmu.edu +noreq viene ritornata la lista dei name servers autoritativi per il top level domain. Prendetene uno e procedete come al passo precedente fino a trovare il name server autoritativo per il dominio di terzo livello (cs.gmu.edu) e per il server web (www.cs.gmu.edu) Emiliano Casalicchio, [email protected] course page: http://www.ce.uniroma2.it/courses/PRSI pag. 6 di 11 Progettazione di Reti e Sistemi Informatici, Università di Roma La Sapienza, Fac. di Ingegneria. Esercizio 4. Provare varie risoluzioni di nomi in modo ricorsivo e non ricorsivo utilizzando il comando dig e le varie opzioni. Richiedere non solo il record A di default ma anche altri record come ad esempio TXT. Esperienza 3 Configuriamo un nostro dominio (e.g emiliano.casalicchio) per risolvere i nomi della nostra intranet. Node0 (NS) ‐‐ Net1 ‐‐ Node1 \ Node2 Node0 192.168.1.8 ns.emiliano.casalicchio Node1 192.168.1.10 n1.emiliano.casalicchio Node2 192.168.1.20 mail.emiliano.casalicchio Set up zone e zone file zone "0.0.127.in-addr.arpa" { type master; file "pz/127.0.0"; }; $TTL 3D @ IN SOA admin.emiliano.casalicchio. ( 1 NS PTR ns.emiliano.casalicchio. 1 ; Serial 8H ; Refresh 2H ; Retry 4W ; Expire 1D) ; Minimum TTL ns.emiliano.casalicchio. localhost. prima faccio ripartire named $ dig -x 127.0.0.1 tutto OK inseriamo nuova zona in named.conf.default‐zones zone "emiliano.casalicchio" { type master; notify no; file "/etc/bind/db.emiliano.casalicchio"; }; Inseriamo il SOA ed id RR NS e MX in /etc/bind/db.emiliano.casalicchio Step 1: Record SOA ridotto. Emiliano Casalicchio, [email protected] course page: http://www.ce.uniroma2.it/courses/PRSI pag. 7 di 11 Progettazione di Reti e Sistemi Informatici, Università di Roma La Sapienza, Fac. di Ingegneria. Step2: Record SOA compelto. ; ; Zone file for emiliano.casalicchio ; ; The full zone file ; $TTL 3D @ IN SOA ns.emiliano.casalicchio. admin ( 199802151 ; serial, todays date + todays serial # 8H ; refresh, seconds 2H ; retry, seconds 4W ; expire, seconds 1D ) ; minimum, seconds ; NS ns ; Inet Address of name server MX 10 mail.emiliano.casalicchio. ; Primary Mail Exchanger MX 20 mail.othername.otherdomain. ; Secondary Mail Exchanger ; localhost A 127.0.0.1 ; ns A 192.168.1.8 TXT "The authoritative name server" MX 10 mail MX 20 mail.othername.otherdomain www CNAME ns ; n1 A 192.168.1.10 TXT "Node1 alias Ninfa" MX 10 mail MX 20 mail.othername.otherdomain ninfa CNAME n1 ; mail A 192.168.1.20 TXT "The mail server (imap)" MX 10 mail MX 20 mail.othername.otherdomain imap CNAME mail ricaricare il file di zona con il comando /etc/init.d/bind9 reload vediamo se la zona è stata ricaricata mediante il comando dig emiliano.casalicchio axfr (TRANSFER ZONE) ci mettiamo su nodo1/2 e facciamo un po' di query dig @192.168.1.8 (IL RESOLV.CONF LO VEDIAMO DOPO) Emiliano Casalicchio, [email protected] course page: http://www.ce.uniroma2.it/courses/PRSI pag. 8 di 11 Progettazione di Reti e Sistemi Informatici, Università di Roma La Sapienza, Fac. di Ingegneria. Configuriamo la revers zone zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/db.1.168.192"; }; $TTL 3D @ IN SOA admin.emiliano.casalicchio. ( ; 8 10 20 ns.emiliano.casalicchio. NS 1 ; Serial 8H ; Refresh 2H ; Retry 4W ; Expire 1D) ; Minimum TTL ns.emiliano.casalicchio. PTR PTR PTR ns.emiliano.casalicchio. n1.emiliano.casalicchio. mail.emiliano.casalicchio. Concludiamo configurando ad hoc il resolv.conf sui nodi della rete. Esercizio 5. Setup NS master e slave e verificare zone transfer. Esperienza 4. Configurazione server SSH sudo apt-get install openssh-server analizzare file di configurazione con l’ausilio del manuale per capire il significato delle varie opzioni. http://www.openssh.com/manual.html lanciare il demone e stopparlo. Verificare le porte su cui si trova in ascolto mediante il comando netstat -lt Esempio di esportazione del display grafico: ‐ lancire nodo2 in modalita' grafica ‐ fare connessione con nodo server ‐ tentare esportazione display KO Emiliano Casalicchio, [email protected] course page: http://www.ce.uniroma2.it/courses/PRSI pag. 9 di 11 Progettazione di Reti e Sistemi Informatici, Università di Roma La Sapienza, Fac. di Ingegneria. ‐ cambiare setting esportazione sul server, nel file /etc/sshd_config settare “X11Forwarding yes” sul client, nel file /etc/ssh_config settare ForwardAgent yes, ForwardX11 yes, ForwardX11Trusted yes ‐ riprovare ad esportare il display…ora dovrebbe funzionare!! Configurare l’accesso ad un nodo server senza inserimento della password. Va distribuita la chiave pubblica al nodo client Generazione RSA key ssh-keygen -t rsa la chiave pubblica viene scritta nel file ~/.ssh/id_rsa.pub. la chiave privata viene scritta nel file ~/.ssh/id_rsa. Non distribuite mai la vostra chiave privata!!!. chmod 755 ~/.ssh copiate il file ~/.ssh/id_rsa.pub in ~/.ssh/authorized_keys sulla macchina remota. chmod 644 ~/.ssh/authorized_keys ora, tranne al primo accesso, non vi verrà più richiesta la chiave di accesso al nodo remoto. Esperienza 6 Server ftpd apt-get install ftpd oppure apt-get install vsftp mi connetto e tutto funziona!!! Per la configurazione avanzata basta utilizzare la guida (man) Spunti per progetti d'esame Setup server FTP con controlli sul tipo di file, utenti che possono accedere, etc... Setup server SAMBA (TESI DI LAUREA), configurazione diritti, testing in ambiente intranet e internet Emiliano Casalicchio, [email protected] course page: http://www.ce.uniroma2.it/courses/PRSI pag. 10 di 11 Progettazione di Reti e Sistemi Informatici, Università di Roma La Sapienza, Fac. di Ingegneria. Riferimenti bibliografici 1. DNS HOWTO, Nicolai Langfeldt, Jamie Norrish and others http://www.yolinux.com/HOWTO/DNS‐HOWTO.html 2. Linux Networking Cookbook, O'Reilly 3. Man pages dei vari comandi Emiliano Casalicchio, [email protected] course page: http://www.ce.uniroma2.it/courses/PRSI pag. 11 di 11