Infrastrutture e Protocolli per Internet Laboratorio 1



Documenti analoghi
Infrastrutture e Protocolli per Internet Laboratorio 1

Reti di Comunicazione e Internet

Re# di Comunicazione e Internet

Politecnico di Milano Re# di Comunicazione e Internet

Fondamenti di Internet e Reti. Antonio Capone, Matteo Cesana, Ilario Filippini, Guido Maier

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

Reti di Telecomunicazione Lezione 7

Protocolli applicativi: FTP

Web e HTTP. path name. host name Realizzato da Roberto Savino.

OSOR. Applicazioni di Rete

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

Telematica II 13. Posta Elettronica

Parte II: Reti di calcolatori Lezione 9

Network Troubleshooting 101

Teoria di un server di posta. Corso GNU/Linux Avanzato Torino,

Parte II: Reti di calcolatori Lezione 7

url uniform resource locator

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

SMSPortal. SMS-Gateway interfaccia SMTP. Versione , 2005, 2006 SMSPortal. Digitel Mobile Srl Via Raffaello, Pescara (Italy)

Reti di Calcolatori PROTOCOLLO FTP. File. File Transfer Protocol Modello FTP Operazioni FTP Comandi del protocollo Esempi di Client FTP avanzati

Reti di Calcolatori PROTOCOLLO FTP

INFORMATICA DISTRIBUITA. lez 6 World Wide Web (cont)

Il Protocollo HTTP e la programmazione di estensioni Web

Protocolli per il Web. Impianti Informatici. Protocolli applicativi

Modulo 1: Posta elettronica

TECN.PROG.SIST.INF. Livello APPLICAZIONE - TELNET. Roberta Gerboni

PROTOCOLLI APPLICATIVI PER INTERNET

Reti di Calcolatori:

Protocollo HTTP. Alessandro Sorato

Vediamo un esempio di spedizione e ricezione di , puntualizzando i passaggi.

1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/ Lato client

Esempi di applicazioni internet. WEB Trasferimento File Posta Elettronica Sistema dei nomi di dominio (DNS)

appunti delle lezioni Architetture client/server: applicazioni client

Reti di Calcolatori. Master "Bio Info" Reti e Basi di Dati Lezione 2

Sicurezza delle applicazioni web: protocollo HTTP

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Esercitazione. Formato di compitini e compiti: domande ed esercizi "closed book" G. Ferrari - Reti di calcolatori.

INFORMATICA DISTRIBUITA. lez 5 World Wide Web (cont)

Architetture Web Protocolli di Comunicazione

Le Reti Informatiche

Reti di Calcolatori. Il Livello delle Applicazioni

Protocolli strato applicazione in Internet

Bibliografia: Utenti e sessioni

Sicurezza delle applicazioni web: protocollo HTTP

Cognome Nome Matricola Tempo a disposizione per lo svolgimento: 1 ora e 20 min Avvertenza: Si usi lo spazio dopo ogni quesito per lo svolgimento.

Posta Elettronica e Web

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

FTP. Appunti a cura del prof. ing. Mario Catalano

- Corso di computer -

Il client deve stampare tutti gli eventuali errori che si possono verificare durante l esecuzione.

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Oreste Signore, Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, Pisa

Protezione della posta elettronica mediante crittografia

PRESENTAZIONE DI UN SMS AL GATEWAY

Architetture Applicative Il Web

Outlook Express 6 Microsoft Internet Explorer, Avvio del programma Creare un nuovo account

Posta elettronica DEFINIZIONE

Reti di Telecomunicazione Lezione 6

. SMTP, POP, IMAP. mail server. smtp [RFC 821] Tre componenti: user agent mail server simple mail transfer protocol: smtp

Servizi di rete e web. Prof. Maurizio Naldi A.A. 2015/16

Programmazione in Rete

ftp://ftp.bluegold.it

Protocolli applicativi basati su TCP/IP

Il Web Server e il protocollo HTTP

Configurazione di Outlook Express

il trasferimento di file

Programmazione in Rete

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica).

Protocolli per le . Impianti Informatici. Protocolli applicativi

Il livello delle applicazioni. Si trattano qui i servizi proposti agli utenti dalle reti

Scenari esemplificativi di utilizzo delle Mailing List

Siti web centrati sui dati (Data-centric web applications)

Esercizio 2. Client e server comunicano attraverso socket TCP

Livello applicazione: Sessioni HTTP, FTP, Posta Elettronica

Cenni di programmazione distribuita in C++ Mauro Piccolo

ProgettoSMS. Manuale Gateway FTP Text

10110 Reti di Calcolatori IL LIVELLO APPLICAZIONI: DNS, FTP

Applicazioni web centrati sui dati (Data-centric web applications)

LABORATORIO DI TELEMATICA

SMS-Bulk Gateway interfaccia HTTP

Configurazione di un nuovo account di posta in Outlook Express

Infrastrutture e Protocolli per Internet Risposte alle domande dei Laboratori

1. Manuale d uso per l utilizzo della WebMail PEC e del client di posta tradizionale

Dal protocollo IP ai livelli superiori

Winlink2000 RMS Packet (Radio Mail Server)

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Reti di Telecomunicazione Lezione 8

Applicazioni di rete. La posta elettronica nell'architettura TCP/IP. Indirizzi reali e virtuali. Indirizzi RFC-822. Dai domini postali agli host

HTTP adaptation layer per generico protocollo di scambio dati

Manuale di configurazione del client di posta Microsoft Outlook COME LEGGERE LA CASELLA PEC

Information overflow. Posta elettronica. Condizioni generali Ogni utente ha un indirizzo. Formato del messaggio (SMTP)

Introduzione alle applicazioni di rete

IFInet Secure Webmail

Lezione 1 Introduzione

Internet. Internet. Internet Servizi e Protocolli applicativi. Internet. Organizzazione distribuita

Consiglio Nazionale delle Ricerche Area di Ricerca di Bologna Istituto per le Applicazioni Telematiche di Pisa

Configurazione account di posta elettronica certificata per Microsoft Outlook Express

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione

Lucidi a cura di Andrea Colombari, Carlo Drioli e Barbara Oliboni. Lezione 4

Application Layer FTP, SMTP, POP3, IMAP. Ricapitolando. FTP: File Transfer Protocol [RFC 959] porta 80

Transcript:

Advanced Network Technologies Laboratory Infrastrutture e Protocolli per Internet Laboratorio 1 Stefano Napoli Alberto Pollastro Politecnico di Milano

Laboratori Responsabili di Laboratorio: Stefano Napoli Ufficio: Viale Rimembranze di Lambrate, 14 3 piano rialzato Tel: 9614 mail: napoli@elet.polimi.it Alberto Pollastro Ufficio: Viale Rimembranze di Lambrate, 14 3 piano rialzato Tel: 9614 mail: pollastro@elet.polimi.it Homepage del Corso: www.elet.polimi.it/upload/capone/infrastrutture www.elet.polimi.it/upload/cesana/teaching/ipi2007 2

Agenda dei Laboratori Lezione 1: Protocolli Applicativi Lezione 2: Introduzione a Packet Tracer Lezione 3: Introduzione a IOS Lezione 4: Routing Lezione 5: Esercizi di ricapitolazione 3

Protocolli Applicativi HTTP FTP SMTP POP3 Fonte: http://it.wikipedia.org/wiki/iso/osi 4

HTTP Generalità Protocollo fondamentale del World Wide Web (WWW) RFC 1945 (HTTP/1.0) RFC 2068 e RFC 2616 (HTTP/1.1) Protocollo Client-Server Completamente testuale Protocollo Stateless (ma il server può implementare tecniche per mantenere lo stato quali i cookies, le sessioni, campi nascosti nei form, URL redirection,...) Utilizza la Porta 80 5

HTTP Scambio di Messaggi HTTP Il client invia una richiesta contenente un metodo al server Il server risponde alla richiesta Il protocollo è interamente testuale! 6

HTTP Richieste HTTP Le richieste sono composte da tre parti: Riga di richiesta (request line) Intestazione (header) Corpo del messaggio (body) Nella riga di richiesta si trovano i metodi HTTP: GET POST HEAD PUT DELETE TRACE OPTIONS CONNECT 7

HTTP Header delle Richieste HTTP Gli header forniscono informazioni sul contenuto della richiesta Seguono il formato: Header: valore From: pippo@disney.it Host: www.google.it User-Agent: Mozilla/5.0 Accept-Language: en-us, it-it Keepalive: 300 Accept: text/xml I messaggi HTTP possono contenere un body che segue gli header Quando c'è il body, ne vengono specificate le proprietà negli header 8

HTTP Risposte HTTP La struttura delle risposte è analoga a quella delle domande. La riga di richiesta prende il nome di Status Line. I messaggi contenuti nella status line sono identificati da un codice: 1xx: informazione 2xx: successo 3xx: redirezione (richiesta è corretta, è stata rediretta ad un altro server) 4xx: errore lato client (richiesta errata) 5xx: errore lato server (c'è un problema interno del server) I messaggi sono accompagnati da un testo human readable La status line è seguita da un insieme di header Nel body della risposta si trovano tipicamente i contenuti richiesti al web server (pagina HTML, immagini, filmati...) 9

HTTP Risposte HTTP: Status Codes Riportiamo alcuni esempi tipici di status code di HTTP L'elenco completo è definito nell'rfc 2616 ( http://www.w3.org/protocols/rfc2616/rfc2616-sec10.html ) 301 Moved Permanently: la risorsa è stata spostata in un'altra locazione in maniera permanente 304 Not Modified: la risorsa non è stata modificata dall'ultima volta, non serve reinviarla 400 Bad Request: il server non è in grado di capire la richiesta 404 Not Found: la risorsa richiesta non è disponibile (ad es., è stata richiesta una pagina inesistente) 500 Internal Server Error: c'è stato un errore interno nel server (ad es.,un errore di connessione al db) 10

HTTP Download di una pagina HTTP (1) Scarichiamo una pagina col protocollo HTTP usando telnet dal server web a disposizione nell'aula (l'indirizzo IP potrebbe essere diverso da quello riportato negli esempi). 1) Ci connettiamo al server web sulla porta 80 myhost$ telnet 192.168.0.98 80 Trying 192.168.0.98... Connected to 192.168.0.98. Escape character is '^]'. 2) Richiediamo una pagina web (è necessaria una riga vuota alla fine della richiesta: dare 2 [INVIO] ) GET /testpage.html HTTP/1.0 3) La pagina viene scaricata e la connessione viene chiusa 11

HTTP Analisi della Risposta HTTP/1.1 200 OK Date: Wed, 26 Mar 2008 08:53:44 GMT Server: Apache/2.2.3 (Debian) Last-Modified: Wed, 26 Mar 2008 08:49:41 GMT ETag: "9c3f1-417-26541340" Accept-Ranges: bytes Content-Length: 1047 Connection: close Content-Type: text/html; charset=utf-8 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> [...] </html> 12

HTTP Download di una pagina HTTP (2) È stata scaricata la pagina, ma non gli elementi non HTML che la compongono: in questo caso, mancano le immagini! Dal codice HTML leggiamo che si chiamano img/logo_poli_small.png e img/logo-antlab.png 4) Ci connettiamo ancora al server web myhost$ telnet 192.168.0.98 80 [...] 5) scarichiamo la prima immagine GET /img/logo_poli_small.png HTTP/1.0 (ovviamente l'immagine è un file binario, per cui compariranno a monitor un insieme di caratteri) 13

HTTP Esercizi Provare ad ottenere dal web server un messaggio di risposta con la Status Line 400 Bad Request Provate a richiedere al web server il file testpage.php invece che testpage.html: che risposta da il server? WEB SERVER: 192.168.0.168 Le risposte 3xx prevedono che il browser compia ulteriori azioni. In particolare, 302 FOUND indica al browser che la risorsa è presente in un'altra locazione: The document has moved <a href="http://127.0.0.1/errors/redirect.html" In questo caso gli amministratori del sito reindirizzano gli utenti che cercano pagine php ad una pagina di errore particolare 14

HTTP Keep Alive È possibile rendere persistente una connessione HTTP, in modo che tutti i messaggi passino sulla stessa connessione! HTTP/1.0 Non c'è una specifica indicazione. Si usa l'header: Sia nella richiesta che nella risposta. Connection: Keep-Alive La connessione viene chiusa dal client oppure, dopo un timeout, dal server HTTP/1.1 La connessione viene mantenuta aperta di default. L'header Connection: Keep-Alive non ha significato. La connessione viene chiusa con l'header: Connection: Close 15

HTTP Download di una pagina HTTP/1.1 Scarichiamo una pagina usando HTTP/1.1 1) Ci connettiamo al server web sulla porta 80 myhost$ telnet 192.168.0.98 80 2) Richiediamo una pagina web GET /testpage.html HTTP/1.1 3) Usando HTTP/1.1, c'è un header obbligatorio (Host), che contiene il nome del dominio Host: 192.168.0.98 16

HTTP Download di una pagina HTTP/1.1 (2) La pagina viene scaricata, ma la connessione rimane aperta! 4) Scarichiamo allora la prima immagine: GET /img/logo_poli_small.png HTTP/1.1 Host: 192.168.0.98 5) Scarichiamo la seconda immagine, chiudendo la connessione: GET /img/logo_antlab.png HTTP/1.1 Host: 192.168.0.98 Connection: Close La connessione ha un timeout, scaduto il quale viene chiusa! 17

HTTP GET Condizionato Per risparmiare banda, HTTP/1.1 prevede l'uso di GET condizionato: GET /testpage.html HTTP/1.1 Host: 192.168.0.98 If-Modified-Since: Fri, 16 Mar 2007 13:59:59 GMT Il server risponde col messaggio 200 OK e invia la pagina se essa è stata modificata dopo il 16/03/2007, altrimenti risponde con un 304 Not-Modified: HTTP/1.1 304 Not Modified Date: Fri, 16 Mar 2007 13:59:59 GMT 18

FTP Generalità Protocollo di condivisione file tra host RFC 959 Protocollo Client-Server Completamente testuale Opera direttamente sul filesystem del sistema Connessione di controllo: porta 21 19

FTP Comandi FTP (1) Comandi necessari a comunicare via FTP: Connessione al server sulla porta 21 (connessione di controllo): myhost$ telnet ftp.elet.polimi.it 21 Autenticazione: USER <nomeutente> PASS <password> QUIT Informazioni: HELP STAT < NULL nome_file> SYST Lista più completa di comandi: http://www.nsftools.com/tips/rawftp.htm 20

FTP Comandi FTP (2) PWD CWD LIST QUIT Movimenti: Setup: MODE <Stream Block Compressed> PASV PORT a1, a2, a3, a4, p1, p2 * Manipolazione: RETR STOR DELE Modalità di impiego: Protocollo con 2 connessioni (2 telnet) I comandi vengono dati su connessione di controllo I trasferimenti avvengono sulla connessione dati * IP del server a cui connettersi: a1.a2.a3.a4 - PORT a cui connettersi: p1*256 + p2 21

FTP Sessione d'esempio Shell 1 Shell 2 $ telnet ftp.elet.polimi.it 21 USER Anonymous PASS Server PASV 227 Entering Passive Mode (131,175,120,33,46,204) 46*256+204 = 11980 CWD /outgoing/matteo.cesana/ $telnet ftp.elet.polimi.it 11980 LIST -rw-r--r-- 1 620 620 826322 Mar 26 13:03 gnome_is_people.png -rw-r--r-- 1 620 620 35147 Mar 26 13:03 gpl.txt PASV 227 Entering Passive Mode (131,175,120,33,420,21) $telnet ftp.elet.polimi.it 107541 RETR gpl.txt GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 [...] 22

FTP Esercizi Loggarsi sul server FTP messo a disposizione in laboratorio (l'indirizzo di tale server verrà fornito durante il laboratorio stesso USER anonymous, PASS <anything> ) Scoprire il sistema operativo del server Scoprire informazioni generali sul server Provare a scaricare un'immagine Provare l'altro metodo di connessione, PORT: funziona? (per aprire una porta TCP si può usare il tool netcat: nc -l -p PORT ) 23

SMTP Generalità Protocollo di trasmissione di email RFC 821 Specifica base Protocollo testuale Inizialmente permetteva solo il trasferimento ASCII, è stato successivamente esteso per trasmettere informazioni binarie (estensione MIME, 8BITMIME,...) Utilizza la porta 25 SMTP originariamente non prevede autenticazione: SMTP-AUTH / Internet Mail 2000 IETF Anti-Spam Research Group 24

SMTP Generalità (2) Sender Domain Receiver Domain Relaying SMTP Destination SMTP SENDER RECEIVER 25

SMTP Generalità (3) Voglio inviare una mail ad un amico del dominio receivers.com Mi connetto al server SMTP del dominio receivers.com Dichiaro (nel mittente della mail) il dominio da cui scrivo: senders.com Scrivo la mail e la deposito nella cartella di friend@receivers.com Non mi è stato chiesto alcun USER o PASS!!! (no autenticazione) (I gestori del dominio receivers.com tuttavia possono operare alcuni controlli, ad esempio bannando degli indirizzi IP o verificando che l'ip del mittente sia effettivamente parte del dominio dichiarato e comunque loggano ogni accesso) I provider tipicamente offrono dei server SMTP che si occupano di consegnare alla mailbox del destinatario al posto nostro (gestendo ad es. il caso di server occupato, momenti di down,...) 26

SMTP Comandi SMTP Comandi di uso comune: HELO <SP> <domain> <CRLF> MAIL <SP> FROM:<reverse-path> <CRLF> RCPT <SP> TO:<forward-path> <CRLF> DATA <CRLF> RSET <CRLF> SEND <SP> FROM:<reverse-path> <CRLF> VRFY <SP> <string> <CRLF> EXPN <SP> <string> <CRLF> HELP [<SP> <string>] <CRLF> NOOP <CRLF> QUIT <CRLF> I comandi sono Case Insensitive, tranne nel reverse e forward path, che sono Sensitive 27

SMTP Sessione SMTP albertux@antlab101:~$ telnet 192.168.0.98 25 220 www.labipi.lan ESMTP Postfix (Debian/GNU) HELO studente.it 250 www.labipi.lan MAIL FROM:<matr666999@studente.it> 250 2.1.0 Ok RCPT TO:<labipi001@ipi08.lan> 250 2.1.5 Ok DATA 354 End data with <CR><LF>.<CR><LF> Subject: Verifica SMTP From: matr666999@studente.it To: professore@ipi2007.it Buongiorno Questa mail serve a dimostrare che ho imparato SMTP.. 250 2.0.0 Ok: queued as F41CC9F6EE QUIT 221 2.0.0 Bye 28

SMTP Esercizi Inviare una mail da un mittente falso (pippo@disney.it) all'indirizzo email labipi<numeropc>@ipi08.lan (l'ip del server SMTP verrà comunicato a lezione) (numeropc è di tre cifre, ad es: 001) Inviare, sempre allo stesso indirizzo mail, altre 2 mail usando mittenti e subject diversi (serve per un esercizio successivo) [A CASA] provare a mandare delle mail al proprio indirizzo email da pippo@disney.it 29

POP Generalità Protocollo di accesso alla mailbox RFC 1939 Protocollo testuale Protocollo con Autenticazione Utilizza la porta 110 Non è cifrato, per cui user e password passano in chiaro Comando APOP 30

POP Comandi POP Login in chiaro: USER <username> PASS <password> Login con digest: APOP <username> <digest> Digest: md5(timestamp, Pass) Operazioni comuni: STAT info sullo stato mbox LIST elenca il # messaggi RETR n leggi messaggio n DELE n cancella messaggio n RSET annulla cancellazioni Risposte del server: -ERR +OK QUIT esce CAPA mostra le capabilities del server 31

POP Sessione POP albertux@antlab101:~$ telnet 192.168.0.98 110 +OK Dovecot ready. USER labipi001 +OK PASS labipi001 +OK Logged in. LIST +OK 1 messages: 1 598. RETR 1 +OK 598 octets Return-Path: <matr666999@studente.it> X-Original-To: labipi001@ipi08.lan Delivered-To: labipi001@ipi08.lan Received: from studente.it (ip254 [192.168.0.254]) by www.labipi.lan (Postfix) with SMTP id F41CC9F6EE for <labipi001@ipi08.lan>; Wed, 26 Mar 2008 13:09:43 +0100 (CET) Message-Id: <20080326121008.F41CC9F6EE@www.labipi.lan> Date: Wed, 26 Mar 2008 13:09:43 +0100 (CET) From: matr666999@studente.it To: undisclosed-recipients:; Subject: Verifica SMTP From: matr666999@studente.it To: professore@ipi2007.it Buongiorno Questa mail serve a dimostrare che ho imparato SMTP.. DELE 1 +OK Marked to be deleted. QUIT +OK Logging out, messages deleted. 32

POP Esercizi Collegarsi al server POP della lan dell'aula (l'ip è lo stesso dell'smtp server, comunicato a lezione) Scaricare la mail precedentemente inviata dall'indirizzo pippo@disney.it Con il comando TOP verificare gli header della mail Cancellare le 3 mail inviate in precedenza Annullare la cancellazione con il comando RSET Cancellarle di nuovo, definitivamente 33