TELNET [RFC 854,855 1983] NOTA: un RFC (Request For Comment) è un documento pubblico sottoposto alla comunità Internet al fine di essere valutato. Il contenuto di un RFC rappresenta uno standard de facto nella comunità Internet. Tutti gli RFC possono essere reperiti al sito dell'internet Engineering Task Force (http://www.ietf.org) In questi lucidi sono evidenziati i primi RFC. Molti protocolli sono stati estesi e descritti in RFC successivi. 1
TELNET telnet <macchina remota> Dalla macchina client ci si collega sulla macchina remota (server) sulla porta 23 I caratteri digitati sul Network Virtual Terminal vengono inviati al server che si occupa di rispedire indietro ogni carattere che viene visualizzato sullo schermo del client I comandi vengono eseguiti sulla macchina remota in modo trasparente all'utente 2
TELNET Il server telnet deve gestire più connessioni contemporaneamente Inoltre si devono gestire macchine eterogenee che possono inviare comandi diversi tra loro. Es. CR, LF, CR-LF Per questo motivo è stato definito un formato NVT che risolve le ambiguità 3
SSH Telnet non è sicuro e dovrebbe esser evitato a favore del protocollo SSH (Secure Shell, 1998) che ha reso obsoleto il protocollo telnet SSH offre tutte le funzioni di telnet ma con dati cifrati ed un'autenticazione a chiave pubblica che assicura l'identità del server remoto [vedi corso di Sicurezza] I client telnet sono ancora usati occasionalmente per "parlare" con altri servizi, per esempio SMTP e HTTP 4
SSH SSH prevede due meccanismi di autenticazione - mediante username/password - mediante chiave asimmetrica Dopo l'autenticazione client e server si scambiano una chiave simmetrica (chiave di sessione) per cifrare i dati Su forza4.educ.disi.unige.it useremo ssh con username/password 5
FTP File Transfer Protocol [RFC 765, 1980] 6
FTP Utilizzato per lo scambio dei file in rete Possiede una funzionalità anonima oppure richiede username/password al client È stato abbandonato in favore di protocolli per il trasferimento dati più user friendly (HTTP) 7
FTP Usa il modello client/server: il client inizia il trasferimento il server è l'host remoto user at host FTP user interface FTP client local file system file transfer FTP server remote file system 8
Server FTP Non è possibile stabilire una connessione FTP verso una qualsiasi macchina: il server deve essere opportunamente configurato per accettare le connessioni >>> ftp elios.disi.unige.it ftp: connect: Connection refused ftp> Le macchine Linux o Windows Server spesso hanno il servizio FTP già attivo I client FTP sono disponibili su quasi tutti i sistemi operativi 9
FTP: due connessioni separate FTP usa due connessioni TCP separate, una connessione di controllo (control connection) una connessione per lo scambio dei dati (data connection) Si dice che FTP spedisce le informazioni di controllo out-of-band 10
FTP: porte 21 e 20 CLIENT SERVER Trasferimento Dati Processo di controllo Processo di controllo Trasferimento Dati socket Sistema operativo socket 21 20 socket Sistema operativo socket Internet 11
FTP: porte 21 e 20 TCP control connection port 21 FTP client TCP data connection port 20 FTP server Il client FTP contatta il server FTP sulla porta 21 Il client FTP invia i comandi sulla connessione di controllo 12
FTP: porte 21 e 20 TCP control connection port 21 FTP client TCP data connection port 20 FTP server Sistema di tipo comando-risposta; ad ogni comando fa sempre seguito una successiva risposta Dopo la fase di autenticazione si possono utilizzare tutti gli altri comandi del protocollo 13
FTP: porte 21 e 20 TCP control connection port 21 FTP client TCP data connection port 20 FTP server Quando un server FTP riceve una richiesta di download/upload apre una nuova connessione sulla porta 20 La connessione sulla porta 21 è invece persistente, fino a quando non si invia il comando QUIT 14
FTP: porte 21 e 20 TCP control connection port 21 FTP client TCP data connection port 20 FTP server Il server deve mantenere lo stato del client durante tutta la durata della connessione Il server associa la connessione di controllo con uno specifico account e tiene traccia della directory corrente 15
FTP: comandi telnet ftpserver 21 USER <username> PASS <password> sulla porta 20 LIST restituisce l elenco dei file nella directory remota RETR <pathname> recupera il file dall host remoto STOR <pathname> memorizza il file sull host remoto 16
FTP: codici di stato 331 Username OK, password required 125 data connection already open; transfer starting 425 Can t open data connection 452 Error writing file 17
FTP: esempio 1 C: telnet pianeta.di.unito.it 21 S: Trying 130.192.239.1... C: client S: server Connected to pianeta.di.unito.it. Escape character is '^]'. 220 ProFTPD 1.2.9rc2 Server (Dipartimento di Informatica Ftp Server (TLS enabled)) C: USER marina S: 331 Password required for marina. C: PASS ******** S: 230 User marina logged in. C: LIST S: 425 Unable to build data connection: Invalid argument C: QUIT S: 221 Goodbye. Connection to pianeta.di.unito.it closed by foreign host. 18
FTP: esempio 2 C: ftp -d pianeta.di.unito.it C: client S: server S: Connected to pianeta.di.unito.it. 220 ProFTPD 1.2.9rc2 Server [pianeta] Name (pianeta.di.unito.it:ribaudo): C: marina S: ---> USER marina 331 Password required for marina. Password: C: ******** 19
FTP: esempio 2 S: ---> PASS password qui 230 User marina logged in. C: ftp> ls S: ---> PORT 130,251,61,19,158,15 200 PORT command successful ---> NLST 150 Opening ASCII mode data connection for file list public_html testi varie 226 Transfer complete. 256 bytes received in 0.49 seconds (0.51 Kbytes/s) ftp> 20
FTP: porta sul client S ---> PORT 130,251,61,19,158,15 Indirizzo IP del client (elios) + Numero della porta alta sul client 158*256 + 15 = 40463 marina> netstat pianeta.ftp elios.disi.unige.it.40462 pianeta.ftp-data elios.disi.unige.it.40463 21
FTP: porte 21 e 20 client N>1023 [PORT host-e-n+1] server 21 info di controllo N+1 dati 20 22
FTP: problemi Lo schema precedente è detto FTP attivo Il client indica al server con il comando PORT una porta alta sulla quale intende ricevere i dati Il comando PORT viene inviato ad ogni richiesta Un firewall sul client può bloccare questa operazione perchè la vede come un'operazione da parte di un sistema esterno verso una porta alta di un client 23
FTP passivo Il client invia al server il comando PASV per dirgli che si trova in passive mode In questa modalità il client apre entrambe le connessioni (controllo e dati) Il client invia il comando PASV sulla porta 21 ad ogni richiesta Il server risponde inviando il comando PORT host-e-porta P (P>1023) che il client userà per il trasferimento dati 24
FTP attivo/passivo Active FTP commandi: client >1023 - server 21 dati : client >1023 - server 20 Passive FTP commandi: client >1023 - server 21 dati : client >1023 - server >1023 25
FTP: problemi Username, password e dati viaggiano in chiaro SFTP e SCP usano tunnel SSH per garantire sicurezza nella trasmissione Esiste anche un'altra versione sicura di FTP nota con l'acronimo FTPS Sul server del corso useremo SFTP... 26
Autenticazione SFTP >>> sftp ribaudo@elios.disi.unige.it Connecting to elios.disi.unige.it... The authenticity of host 'elios.disi.unige.it (130.251.61.19)' can't be established. DSA key fingerprint is d1:6c:78:a9:7e:62:d7:05:6d:d2:8b:76:81:fe:12:f8. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'elios.disi.unige.it,130.251.61.19' (DSA) to the list of known hosts. Password authentication ribaudo's password: sftp> ls 27
DNS Domain Name System [RFC 883, 1983] 28
DNS The Domain Name System is a hierarchical distributed database. It stores information for mapping Internet host names to IP addresses and vice versa, mail routing information, and other data used by Internet applications. Clients look up information in the DNS by calling a resolver library, which sends queries to one or more name servers and interprets the responses 29
DNS Gli host su Internet e i router possono essere identificati mediante un indirizzo IP (32 bit) (130.251.152.39) un nome logico (forza4.educ.disi.unige.it) Il DNS si occupa del mapping tra nomi logici e indirizzi IP 30
DNS Protocollo del livello Application usato dagli host per risolvere i nomi Caratterizzato da domande (query) e risposte (reply) Viene usato da altre applicazioni per tradurre i nomi logici forniti dall utente in indirizzi IP Nota: l'operazione di conversione di un nome in un indirizzo IP è detta risoluzione DNS. La conversione da indirizzo IP in nome è detta risoluzione inversa. 31
DNS Sulla macchina client gira la parte client del DNS, cioè quella che inizia il meccanismo di interrogazione (query) per ottenere un indirizzo IP Il DNS usa i servizi che UDP fornisce a livello di trasporto Porta 53 32
DNS http://www.disi.unige.it Resolver DNS Name server telnet 130.251.61.252 80 Connessione TCP Indirizzo IP 33
Perchè non centralizzare il DNS? Problema di tolleranza ai guasti Impensabile con l attuale volume di traffico Non può essere vicino a tutti gli host che hanno bisogno di questo servizio Difficile da mantenere aggiornato does not scale! 34
DNS: gerarchia dei domini root com edu gov int mil net org au... it... zw top level = organizzazioni = relativi a nazioni gnu. unige unito www. www.gnu.org disi dima www www www.disi.unige.it 2 o livello 3 o livello 4 o livello NOTA: nella gerarchia dei domini esistono due gerarchie diverse, una geografica e una per organizzazione. 35
DNS: gerarchia dei domini I nomi dei domini non possono superare 255 caratteri, ogni elemento non può superarne 63 Parti di uno spazio dei nomi sono dette zone Il realtà tutti i nomi terminano con. (es. wikipedia.org.) e dopo l'ultimo punto si fa riferimento alla DNS root zone 36
DNS name server Non esiste un unico server che conosce il mapping di tutti i nomi logici negli indirizzi IP corrispondenti Il protocollo considera 1) local name server Ogni ISP, ogni azienda, ogni università ha il suo local name server Le richieste al DNS passano prima attraverso il local name server 37
DNS name server 2) authoritative name server forniscono mapping di gruppi di host nello stesso dominio (zone) e possono definire nuovi server autoritativi per sotto-domini 3) top level domain name server amministrano i domini di alto livello (com,org,net,edu,gov,it,uk,fr,...) per i quali sono autoritativi 4) root name server contengono gli IP degli authoritative e dei top level domain name server, (o sanno a chi chiedere) 38
DNS: root name server a NSI Herndon, VA c PSInet Herndon, VA d U Maryland College Park, MD g DISA Vienna, VA h ARL Aberdeen, MD j NSI (TBD) Herndon, VA k RIPE London i NORDUnet Stockholm m WIDE Tokyo e NASA Mt View, CA f Internet Software C. Palo Alto, CA b USC-ISI Marina del Rey, CA l ICANN Marina del Rey, CA 13 root name server 39
DNS: root name server Alcuni root name server sono di tipo anycast con molte repliche distribuite in vari paesi tra cui l'italia Le rischieste vengono quindi instradate sul server più "vicino" o "migliore" La risoluzione dei nomi procede dall'alto verso il basso 40
DNS: root name server Quando un root name server riceve una richiesta da un local name server Se conosce il mapping tra nome logico e indirizzo IP lo restituisce Altrimenti interroga il top level domain server di competenza che a sua volta interroga l authoritative name server ottiene il mapping lo restituisce 41
Esempio: query ricorsive root name server 3 2 7 6 top level domain server per edu local name server dns.eurecom.fr 4 1 8 5 authoritative name server dns.umass.edu query reply surf.eurecom.fr gaia.cs.umass.edu 42
Esempio: query iterative Il server contattato non restituisce un indirizzo IP ma il nome di un altro server: non conosco questo nome, prova a chiedere a questo server local name server dns.eurecom.fr 1 2 8 surf.eurecom.fr 3 4 5 7 root name server 6 query iterativa top level domain per edu authoritative name server dns.cs.umass.edu query reply gaia.cs.umass.edu 43
In realtà DNS: caching Tutti i name server conoscono almeno un root name server ma questo modo di risolvere i nomi non è efficiente I name server conservano nella memoria cache i mapping che ricevono Grazie al meccanismo del caching i local name server possono evitare di interrogare i root name server ogni volta che necessitano di un indirizzo IP 44
In realtà DNS: caching Quando un name server restituisce una risposta che ha in cache avverte che non è un server autoritativo per quel dato restituisce l'informazione sul server autoritativo Se è importante l'efficienza, il richiedente userà l'ip appena ricevuto Se è importante la precisione, il richiedente contatterà il server autoritivo per verificare la validità dell'ip ricevuto 45
In realtà DNS: caching Per stabilire la validità di un dato in cache si usa il TTL (Time To Live) In genere il TTL vale 1 o 2 giorni (espressi in secondi) Si possono specificare TTL lunghi per quei dati che cambiano raramente 46
DNS: formato dei messaggi [RFC 1035,sec.4] numero a 16 bit per identificare la richiesta (la risposta usa lo stesso numero) query o reply query ricorsiva codici di errore 47
DNS: formato dei messaggi Name, Type per una query in un messaggio ci possono essere più query record in risposta ad una query record per i server autoritativi 48
DNS: resource record RR: (Name, Value, Type, TTL) TTL (Time to Live) Intero a 32 bit, determina la durata (in secondi) della validità di una risorsa in cache 49
DNS: resource record RR: (Name, Value, Type, TTL) Type: Name: Value: A host indirizzo IP 50
DNS: resource record RR: (Name, Value, Type, TTL) Type: Name: Value: NS dominio (es. unige.it) nome del name server autoritativo per il dominio (serve per il routing delle query) 51
DNS: resource record RR: (Name, Value, Type, TTL) Type: Name: Value: CNAME è l'alias del nome canonico es. dida.disi.unige.it è un alias di anakin.disi.unige.it è il nome canonico 52
DNS: resource record RR: (Name, Value, Type, TTL) Type: Name: Value: MX alias del mail server nome canonico del mail server 53
DNS: Esempio 1 (lookup) >>> nslookup > server ns2.csita.unige.it Default server: ns2.csita.unige.it Address: 130.251.200.1#53 > set q=a > google.com Server: ns2.csita.unige.it Address: 130.251.200.1#53 Non-authoritative answer: Name: google.com Address: 64.233.167.99 Name: google.com Address: 64.233.187.99 Name: google.com Address: 72.14.207.99 C: client S: server 54
DNS: Esempio 2 (reverse lookup) >>> nslookup 150.178.21.9 C: client S: server Server: 83.103.25.250 Address: 83.103.25.250#53 ** server can't find 9.21.178.150.in-addr.arpa.: NXDOMAIN 55
DNS: Esempio 2 (reverse lookup) >>> nslookup 83.103.25.250 Server: 83.103.25.250 Address: 83.103.25.250#53 C: client S: server Non-authoritative answer: 250.25.103.83.in-addr.arpa name = 83-103-25-250.ip.fastwebnet.it. Authoritative answers can be found from: 25.103.83.in-addr.arpa nameserver = dns1.fastweb.it. 25.103.83.in-addr.arpa nameserver = dns2.fastweb.it. dns1.fastweb.it internet address = 213.140.2.12 dns2.fastweb.it internet address = 213.140.2.2 56
Attacchi al DNS Il DNS è un punto critico della rete Un server DNS malevolo potrebbe infatti dare risposte scorrette facendo credere ad un'applicazione software o ad un utente di essere su un certo sito mentre in realtà è da un'altra parte (DNS cache poisoning) Sono state proposte versioni sicure del DNS (che non vedremo) 57
Traffico generato dal DNS È davvero notevole e inoltre si presta a molti errori Fairly often, as in millions of times per second worldwide, somebody looks up a domain name in DNS that isn t there. Maybe this is a user at a Web browser making a typographical error, or maybe there s a broken link on a Web site, or maybe a hardware or software error is causing nonexistent names to go into DNS requests. One way or another, the answer is generally supposed tobe NXDOMAIN (sometimes written as RCODE=3)... [What DNS is not, Vixie, 2009] 58