La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Servizi Internet di base

Presentazioni simili


Presentazione sul tema: "Servizi Internet di base"— Transcript della presentazione:

1 Servizi Internet di base
Filippo Castiglione, IAC – CNR, Roma Servizi Internet di base (smtp, pop, imap, webmail)

2 Argomenti

3 Origine ed evoluzione del servizio
Cos'è la posta elettronica? Il servizio di posta elettronica permette, ad un utente connesso alla rete Internet, di inviare e ricevere messaggi in formato elettronico, scambiando così informazioni con altri utenti possessori di caselle di posta elettronica ( ). Il formato di questi messaggi è generalmente in formato testo, ma le nuove tecnologie permettono di allegare a questi messaggi files di qualsiasi tipo di formato.

4 Due parti sono separate da una linea vuota:
RFC 822 Un messaggio e` composto da piu` stringhe di caratteri US-ASCII (codice di 7-bit, con l’ultimo uguale a 0) in un formato specificato dalla RFC 822 (1982). Due parti sono separate da una linea vuota: Lo header: sender, recipient, date, subject, delivery path,… Il body: contenente il messaggio. L’uso di caratteri ASCII causa problemi per i messaggi non-ASCII, e.g. attachments (vedi MIME).

5 Un esempio di messeggio RFC 822
Message Header From: To: Cc: Subject: RFC 822 example Date: Fri, 15 Jul :58:49 This is just a test message to illustrate RFC 822. It’s not very long and it’s not very exciting. But you get the point. Notice the blank line separating the header and the body Message Body

6 Vantaggi e limiti della posta elettronica
Non esistono problemi di fuso orario tra mittente e destinatario Si è certi di non disturbare e di raggiungere il mittente, cose non garantite con una telefonata Si possono inviare non solo testi, ma anche file, come “allegati”. In pratica, il destinatario può ricevere un messaggio da leggere e anche file grafici, musicali e di qualunque altro tipo, assieme ad esso. I messaggi inviati possono contenere dati riutilizzabili.

7 Vantaggi e limiti della posta elettronica
Svantaggi Nome del file allegato: deve essere un nome breve e non composto da simboli “strani” (es: asterischi, virgole, punti e virgola, etc....) Virus Nessuna certezza sull’identità del mittente Nessuno standard per la “ricevuta di ritorno”

8 Origine ed evoluzione del servizio
Il primo standard internazionale ad essere proposto per definire la posta elettronica e` stato il protocollo ISO X.400. Troppo complesso.

9 Origine ed evoluzione del servizio
All’inizio degli anni 90, e` divenuto evidente che lo standard SMTP/MIME (che e` molto piu` semplice e non aderisce allo standard X.400) avrebbe battuto lo standard X.400 diventando, de facto, il protocollo di default per la posta elettronica su Internet. SMTP MIME

10 Architettura Gli elementi piu` importanti del sistema di posta elettronica sono: Mail User Agent (MUA) ovvero il Mail Client Mail Transfer Agent (MTA) ovvero il Mail Server Mail Delivery Agent (MDA) MTA Mail server MUA Mail Client

11 MDA writes on the user mailbox
Architettura Sending MTA SMTP server SMTP server Receiving MTA MDA writes on the user mailbox LAN LAN Internet MUA PC Mittente User’s mailbox MUA PC Destinatario MUA = Mail User Agent (Mail Client) MTA = Mail Transport Agent (Mail Server) MDA = Mail Delivery Agent

12 I passi concettuali MUA = Mail client e` un programma che gira sulla macchina del Sender, e.g. Microsoft Outlook o Netscape Messenger. L’utente fornisce i valori dei campi To: e Subject: ed il corpo del messaggio. Il MUA lo traduce in un messaggio compatibile con la RFC 822 e si connette tramite una LAN al (o a uno dei) MTA = Mail server. Il MUA usa un protocollo chiamato SMTP per spedire il messaggio RFC 822 all’MTA.

13 I passi concettuali (cont.)
Il Sending MTA usa il DNS (Domain Name Service) per trovare l’indirizzo IP del Receiving MTA (che potrebbe essere locale o no) in base al campo To:. Il sending MTA apre una connessione con il Receiving MTA e usa il protocollo SMTP per trasferire il messaggio RFC 822, spesso passando per la rete pubblica Internet. Alcuni server MTA intermediari posso essere coinvolti. Receiving MTA puo` spedire il messaggio al MUA ricevente oppure puo` memorizzarlo per il successivo recupero tramite la LAN del MUA ricevente (che usera` un MRA). Nota. MRA non usano il protocollo SMTP per recuperate i messaggi da un MTA, ma utilizza il protocollo POP o il piu` recente IMAP.

14 Simple Mail Transfer Protocol (SMTP)
L’SMTP, o Simple Mail Transfer Protocol, e` usato per scambiare messaggi di posta elettronica tra i mailservers (e per spedire mail da un client di posta). Puo` essere usato per spedire posta, non per ricerverla (protocollo push). Si basa sul protocollo TCP/IP e quindi fornisce un servizio affidabile di consegna. SMTP e` specificato nella RFC 821 (RFC 1870 e RFC 1869).

15 Simple Mail Transfer Protocol (SMTP)
SMTP usa il protocollo TCP sulla porta 25 per la connessione Il traffico SMTP avviene su LAN e su Internet ed e` fondamentalmente non-protetto. Utenti maliziosi possono parlare SMTP direttamente su una connessione telnet con un MTA, fornendo un valore fittizio del valore del campo From:. Quindi forgiare s e` piuttosto facile (spam s). There’s an example of telnet to mail server in the NIST report. The security implications of doing this are not pointed out in that report. Do not try this at home.

16 Gli headers contengono le informazioni su come inoltrare il messaggio
(SMTP) Headers I campi header (“headers”) consitono di una coppia nome-valore delimitata da due punti “:” Gli headers contengono le informazioni su come inoltrare il messaggio Notice the blank line separating the header and the body

17 (SMTP) Headers La RFC 822 contiene le regole che specificano la sintassi degli headers (maiuscole/minuscole, lunghezza, uso di caratteri speciali, interruzione di linea, etc.). L’RFC 822 non specifica l’ordine con cui i vari headers appaiono. L’unica richiesta e` che l’Header appaia prima del message body e separato da questo mediante una riga vuota. Notice the blank line separating the header and the body

18 Comandi SMTP di base HELLO (HELO) E` usato per identificare l’SMTP-sender all’SMTP-receiver. L’argomento contiene il nome dell’host che genera il messaggio. MAIL (MAIL) E` usato per specificare l’indirizzo di posta elettronica del mittente del messaggio. RECIPIENT (RCPT) E` usato per specificare l’indirizzo di posta elettronica del destinatario. DATA (DATA) Specifica l’inizio dell’inserimento del messaggio stesso. Il messaggio puo` essere composto solo da caratteri ASCII a 7 bit. RESET (RSET) Resetta lo stato interno del server. QUIT (QUIT) Termina una sessione.

19 Sintassi dei comandi SMTP (tutti)
The following are the SMTP commands: 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> SOML <SP> FROM:<reverse-path> <CRLF> SAML <SP> FROM:<reverse-path> <CRLF> VRFY <SP> <string> <CRLF> EXPN <SP> <string> <CRLF> HELP [<SP> <string>] <CRLF> NOOP <CRLF> QUIT <CRLF> TURN <CRLF>

20 Codici di risposta del server SMTP (RFC 821)
I codici di risposta consistono di 3 cifre: Esempi: 220 = Service Ready 221 = Service closing 354 = Start message input, end with CRLF.CRLF 421 = Service not available 501 = Syntax error in command arguments 500 = Command unrecognized (syntax error) 503 = Bad sequence of commands 550 = Command failed because the mailbox is unavailable (e.g. mailbox not found)

21 Codici di risposta del server SMTP (RFC 821)
La prima cifra specifica se il server ha accettato il comando e se puo` completare la richiesta. Il server ha accettato il comando ma richiede un messaggio di conferma. Il server ha eseguito il comando con successo. Il server has capito la richiesta, ma necessita di ulteriore input. Il server ha incontrato un errore temporaneo. Se il comando e` ripetuto senza cambiamenti potrebbe essere eseguito! Il server ha incontrato un fatal error e non puo` essere portato a compimento.

22 Codici di risposta del server SMTP (RFC 821)
La seconda cifra specifica ancora meglio. 0. Errore di sintassi 1. Richiesta di informazioni (e.g. HELP) 2. Stato della connessione 3. non-used 4. non-used 5. Stato del mail server La terza cifra indica ancora meglio lo stato della connessione.

23 SMTP/ESMTP error message description
Error code SMTP/ESMTP error message description 211 System status, or system help reply 214 Help message (Information on how to use the receiver or the meaning of a particular non-standard command; this reply is useful only to the human user) 220 Service ready 221 Service closing transmission channel 250 Requested mail action okay, completed 251 User not local; will forward to 354 Start mail input; end with . 421 Service not available, closing transmission channel (This may be a reply to any command if the service knows it must shut down) 450 Requested mail action not taken: mailbox unavailable (E.g., mailbox busy) 451 Requested action aborted: local error in processing 452 Requested action not taken: insufficient system storage 500 Syntax error, command unrecognized (This may include errors such as command line too long) 501 Syntax error in parameters or arguments 502 Command not implemented 503 Bad sequence of commands 504 Command parameter not implemented 550 Requested action not taken: mailbox unavailable (E.g., mailbox not found, no access) 551 User not local; please try 552 Requested mail action aborted: exceeded storage allocation 553 Requested action not taken: mailbox name not allowed (E.g., mailbox syntax incorrect) 554 Transaction failed

24 Esempio: una sessione SMTP
% telnet warnix 25 Trying Connected to warnix.istac.de. 220 mail.istac.de ESMTP Postfix HELO wastl.net 250 mail.istac.de MAIL FROM: 250 Ok RCPT TO: DATA 354 End data with <CR><LF>.<CR><LF> Subject: Test Mail X-My-Header: my header Test 1234 . 250 Ok: queued as 0EB104422 QUIT mail.istac.de closing connection Connection closed by foreign host.

25 Gli elementi piu` importanti del sistema di posta elettronica sono:
Architettura Gli elementi piu` importanti del sistema di posta elettronica sono: Mail User Agent (MUA) ovvero il Mail Client Mail Transfer Agent (MTA) ovvero il Mail Server Mail Delivery Agent (MDA) Mail Retrieval Agent (MRA) Quando il ricevente usa un mail server che non si trova sulla sua macchina locale, il mailbox deve essere letto a distanza. Questo e` fatto dall’ MRA (termine non standard ma utile).. Mail server MTA POP/IMAP User’s mailbox MRA

26 Il POP, o Post Office Protocol
POP/IMAP Il POP, o Post Office Protocol L’IMAP, o Internet Message Access Protocol

27 POP3 Il POP3, o Post Office Protocol v3, e` usato per accedere alla posta elettronica da un server di posta e per immagazzinarla localmente. E` usata su macchine per le quali sarebbe poco pratico avere il protocollo SMTP completo e una connessione ad internet permanente. Queste macchine sono tipicamente dei client-PC con connessioni via modem al server di posta elettronica. POP3 usa il protocollo TCP sulla porta 110 per la connessione POP3 is specified in RFC 1225.

28 POP3 Una sessione POP3 consistse di tre passaggi: authorization, transaction, update. Una sessione e` una conversazione strutturata tra il server POP3 ed il client message user agent (MUA, o programma di posta elettronica). Ad ogni passo, il MUA spedisce dei comandi POP3 al server, e questo risponde con dei reply code (+OK oppure –ERR). I reply codes “possono” essere seguiti da una stringa esplicativa e/o altre informazioni.

29 Authorization L’autorizzazione consiste di due comandi: USER e PASS. Dopo che il client MUA stabilisce una connessione TCP sulla well-known POP3 port 110, trasmette il comando USER con la user name come parametro. Se il server restituisce il codice +OK, il client trasmette il comando PASS con la password come parametro. Esempio: Client: USER filippo Server: +OK Client: PASS miapasswd Server: +OK filippo's maildrop has 3 messages (640 octets) ... Terminata la fase di autenticazione, il processo passa alla fase di transazione.

30 The POP3 Transaction Stage
La fase di transazione può consistere di una combinazione di comandi mandati dal client MUA. I comandi sono STAT LIST TOP NOOP RETR DELE RSET

31 The POP3 Transaction Stage
Il comando STAT è usato per scaricare il numero di messaggi ed il numero totale di bytes dei messaggi. Esempio: Client: STAT Server: +OK 3 640

32 The POP3 Transaction Stage
Il comando LIST può essere usato con o senza parametri. Senza parametri, LIST restituisce l’identificatore e la dimensione di ogni messaggio nel mailbox. Example: Client: LIST Server: +OK 3 messages (640 octets) Server: 1 220 Server: 2 200 Server: Server: . ...

33 The POP3 Transaction Stage
Con un argomento, LIST restituisce le informazioni sul messaggio specificato. Example: Client: LIST 2 Server: +OK 2 200 Client: LIST 4 Server: -ERR no such message, only 3 messages in maildrop

34 The POP3 Transaction Stage
Il comando TOP lista gli headers e le prime dieci righe del messaggio. Example: Client: TOP 2 Server: +OK Server: <Gli headers, una riga bianca, e le prime 10 righe del message body>

35 The POP3 Transaction Stage
Per verificare se il server è connesso e riceve le richieste inviate, usare il comando NOOP. Questo comando non fa nulla ma restituisce un valore positivo dal server, verificando, quindi, lo stato di connessione del server. Example: Client: NOOP Server: +OK

36 The POP3 Transaction Stage
Il comando RETR scarica il messagio specificato che viene quindi gestito internamente dal MUA. Example: Client: RETR 1 Server: +OK 220 octets Server: <The server transmits the message to the MUA> Server: .

37 The POP3 Transaction Stage
Il comando DELE marca un messaggio per la cancellazione, e RSET riporta tutti i messaggi nello stato di non cancellato. Notare che la vera e propria eliminazione del messaggio non avviene prima della ultima fase di update (aggiornamento). Fino a quel momento I messagi possono essere marcati e riportati allo stato di non marcati. Example: Client: DELE 1 Server: +OK message 1 deleted Client: RSET Server: +OK maildrop has 3 messages (640 octets)

38 Update La fase di aggiornamento (update) avviene nel momento in cui il client spedisce il comando QUIT e termina la connessione. Ogni messaggio marcato per la cancellazione sarà eliminato come parte della fase di aggiornamento. Example: Client: QUIT Server: +OK starfleet POP3 server signing off

39 Example: Pop3 session wastl@starlight: % telnet warnix 110
Trying Connected to warnix.istac.de. +OK warnix Cyrus POP3 v server ready USER filippo +OK Name is a valid mailbox PASS mypasswd +OK Maildrop locked and ready STAT +OK LIST +OK scan listing follows 1 1093 2 412 . RETR 2 +OK Message follows Return-Path: … … … …

40 Example: Pop3 session (cont.)
+OK Message follows Return-Path: Received: from wastl.net (wastl.istac.de [ ]) by mail.istac.de (Postfix) with SMTP id 0EB104422 for Tue, 12 Sep :19: (CEST) Subject: Test Mail X-My-Header: my_header Message-Id: Date: Tue, 12 Sep :19: (CEST) From: Test 1234 . DELE 2 +OK message deleted QUIT +OK

41 IMAP L’ IMAP, o Internet Message Access Protocol, puo` essere considerato l’estensione del protocollo POP. Esso prevede gestione del mailbox (create, delete, rename, manipulate remote mailboxes) gestione remota dei messaggi (delete, move, setting flags, read, store, ) sincronizzazione del mailbox ricerca di messaggi

42 IMAP (cont.) L’ Internet Message Access Protocol, Version 4 rev1 (IMAP4rev1) permette ad un client di accedere e manipolare i messaggi su un server remoto. RFC 2060 IMAP usa il protocollo TCP sulla porta 143 per la connessione IMAP4rev1 permette la manipolazione di folders remoti, chiamati ”mailboxes”, in modo equivalente alla gestione di mailboxes locali. IMAP4rev1 include operazioni per creare, cancellare e rinominare mailboxes; controllare l’arrivo di messaggi; cancellare permanentemente messaggi; modificare flags; ricercare e selezionare gli attributi dei messaggi, selezionare e scaricare testo e/o porzioni di testo. Messaggi in IMAP4rev1 sono accedibili tramite numeri.

43 Stati della sessione IMAP
IMAP e` un protocollo piu` complesso del POP3 e quindi possiede molti piu` comandi. I comandi IMAP possono essere eseguiti a seconda dello “stato” in cui si trova il protocollo. Nonauthenticated state: In non-authenticated state, the client MUST supply authentication credentials before most commands will be permitted. This state is entered when a connection starts unless the connection has been pre- authenticated. Authenticated state: In authenticated state, the client is authenticated and MUST select a mailbox to access before commands that affect messages will be permitted. This state is entered when a pre-authenticated connection starts, when acceptable authentication credentials have been provided, or after an error in selecting a mailbox. Selected state: In selected state, a mailbox has been selected to access. This state is entered when a mailbox has been successfully selected. Logout state: In logout state, the connection is being terminated, and the server will close the connection. This state can be entered as a result of a client request or by unilateral server decision.

44 Example: IMAP session wastl@starlight: % telnet warnix.istac.de 143
Trying Connected to warnix.istac.de. * OK warnix Cyrus IMAP4 v server ready a01 CAPABILITY * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ NAMESPACE UIDPLUS X-NON-HIERARCHICAL-a01 OK Completed a02 LOGIN schaffer Secret a02 OK User logged in a03 SELECT INBOX * FLAGS (\Answered \Flagged \Draft \Deleted \Seen) * OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)] * 2 EXISTS * 1 RECENT * OK [UNSEEN 2] * OK [UIDVALIDITY ] * OK [UIDNEXT 8] a03 OK [READ-WRITE] Completed

45 Example: IMAP session (cont.)
a04 FETCH 2 (FLAGS BODY[HEADER.FIELDS (DATE FROM)]) * 2 FETCH (FLAGS (\Recent \Seen) BODY[HEADER.FIELDS (DATE FROM)] {71} Date: Wed, 13 Sep :27: (CEST) From: ) a04 OK Completed a05 logout * BYE LOGOUT received a05 OK Completed %

46 Example 2: IMAP session wastl@starlight: % telnet warnix.istac.de 143
* OK warnix Cyrus IMAP4 v server ready a01 LOGIN schaffer Secret a01 OK User logged in a02 CREATE INBOX.myfolder a02 OK Completed a03 SELECT INBOX.myfolder * FLAGS (\Answered \Flagged \Draft \Deleted \Seen) * OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)] * 0 EXISTS * 0 RECENT * OK [UIDVALIDITY ] * OK [UIDNEXT 1] a03 OK [READ-WRITE] Completed a04 SELECT INBOX * 2 EXISTS * OK [UIDVALIDITY ] * OK [UIDNEXT 8] a04 OK [READ-WRITE] Completed a05 COPY 2 INBOX.myfolder a05 OK [COPYUID ] Completed

47 Example: IMAP session (cont.)
a06 SELECT INBOX.myfolder * FLAGS (\Answered \Flagged \Draft \Deleted \Seen) * OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)] * 1 EXISTS * 1 RECENT * OK [UIDVALIDITY ] * OK [UIDNEXT 2] a06 OK [READ-WRITE] Completed a07 LOGOUT * BYE LOGOUT received a07 OK Completed %

48 Example 3: IMAP session wastl@starlight: % telnet warnix.istac.de 143
Trying Connected to warnix.istac.de. * OK warnix Cyrus IMAP4 v server ready a01 LOGIN schaffer Secret a01 OK User logged in a02 CREATE user.testusr2 a02 OK Completed a03 SETQUOTA user.testusr2 (STORAGE 500) a03 OK Completed a04 GETQUOTA user.testusr2 * QUOTA user.testusr2 (STORAGE 0 500) a04 OK Completed a05 LOGOUT * BYE LOGOUT received a05 OK Completed %

49 MIME = Multipurpose Internet Mail Extensions
Estende le caratteristiche della RFC 822 per permettere alle di trasportare contenuti non-testuali, caratteri non-ASCII, messaggi lunghi. Usa campi header in piu` rispetto a quelli specificati nella RFC 822. Supporta una varieta` di tipi di contenuto ma, per ragioni di compatibilita` l’intero messaggi e` comunque codificato in ASCII per compatibilita`. Specificata nelle RFCs MIME will be important later when we study S/MIME

50 MIME specifica 5 nuovi campi header: MIME-Version (deve essere 1.0)
MIME headers MIME specifica 5 nuovi campi header: MIME-Version (deve essere 1.0) Content-Type Content-Transfer-Encoding Content-ID optional Content-Description - optional Content-ID: `identify MIME entities uniquely in multiple contexts’ ?? Content-Description is a string inserted by mail application to describe attachment type to end user, useful when content in Non-human readable format.

51 7 principali content-types 15 sub-types Esempi:
MIME Content-Type 7 principali content-types 15 sub-types Esempi: text - plain or enriched multipart message, image, video, audio application - postscript, x-zip- compressed, …

52 MIME Content-Type (cont.)
Multipart content-type ha 4 sub-types. Il piu` importante e` il Multipart/mixed, che indica che il body contiene “multiple parts”. Ogni parte puo` essere un MIME message a sua volta – quindi si puo` annidare un messaggio MIME ad ogni livello. Le varie parti sono separate da un certo delimitatore ( boundary string) definito nel campo Content-Type. Other subtypes are Parallel: no order defined for parts, otherwise same as mixed Alternative: different parts are the same information but in different formats (eg html and ASCII) Digest: as in mixed but each part is of type message/rfc822 by default

53 MIME: Content-Type (cont.)

54 Content-Transfer-Encoding
RFC 822 s possono contenere solo caratteri ASCII. I messaggi MIME possono trasportare dati arbitrari Il campo Content-Transfer-Encoding indica come sono codificati i dati da raw ad ASCII. base64 e` una codifica comune: 24 data bits (3 bytes) at a time encoded to 4 ASCII characters. Other encoding types are: 7 bit: short lines of ASCII characters 8 bit: possibly non-ASCII characters as well Binary: possibly long lines and non-ASCII Quoted-printable: encoded data mostly ASCII but still human readable format X-token: any other “non-standard” coding

55 ASCII 7 bit (linea <= 1000 char) ASCII 8 bit (viola il protocollo)
MIME: Encoding ASCII 7 bit (linea <= 1000 char) ASCII 8 bit (viola il protocollo) File binari: codifica base64 (protezione ASCII) 24 bit (3x8) 6 bit Un carattere ASCII legale AB…, ab…, 012…, + - (ritorni e a capo ignorati) Codifica stampabile (quoted printable encoding): ASCII a 7 bit, caratteri > 127 come: =due cifre esadecimali (=af =2e)

56 MIME: separatore

57 Esempio: MIME Message From: carlo.rossi@abc.it To: john.smith@xyz.com
Subject: That paper Date: Wed, 13 Nov :55: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="---next part" ------next part Content-Type: text/plain; charset="iso " Content-Transfer-Encoding: 7bit John, questo e’ l’articolo di cui ti parlavo. Carlo Content-Type: application/x-zip-compressed; name=“paper.zip" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename= "paper.zip" rfvbnj756tbGHUSISyuhssia SHHS vsgGJ77JS77HFyt6GS8 ------next part--

58 Delivery Service Notification (DSN)
Delivery Status Notification (DSN) Ricevuta inviata al mittente quando viene scritto il messaggio nel mail system del destinatario NON e’ disabilitabile E’ un formato STANDARD predefinito Non tutti gli MUA ne permettono la richiesta Non tutti gli MTA, GW, LS la supportano

59 Message Disposition Notification (MDN)
Message Delivery Notification (MDN) Ricevuta al mittente che viene inviata su azione del “lettore” sul messaggio dentro il mail system E’ disabilitabile E’ in formato STANDARD predefinito Non tutti gli MUA ne permettono la richiesta Non tutti gli MUA (e simili) e MTA la supportano

60 Visualizza i risultati in puro codice HTML attraverso il web server.
Webmail E’ un software che consente la consultazione delle tramite interfaccia web. E’ installato in un web server ed interagisce con i mail server POP, SMTP). Visualizza i risultati in puro codice HTML attraverso il web server. POP no IMAP 10 MByte di spazio disco Simile ad un mail reader (Outlook, Eudora) ma su web

61 Mobilita` e facilita` d’uso
Perche` usare webmail? Interfaccia comune Training non necessario Machine independent Basta avere un browser di qualsiasi tipo (Netscape, MS-IExplorer, Mozilla …) ed un account Mobilita` e facilita` d’uso Ci si puo` connettere da qualsiasi postazione internet Non necessita nessun setup

62 Webmail server POP server SMTP server Come funziona Webmail
Lettura POP server (mailbox) Spedizione SMTP server

63 Servizi Internet di base
Sendmail

64 Introduzione a sendmail
Creato da Eric Allman (Berkeley) MUA (Mail User Agent) e MTA (Mail Transport Agent) I MUAs sono programmi che permetteno di creare e inviare posta elettronica. Gli Agenti di Transporto (MTA), sono incaricati di recapitare la posta a destinazione. Sendmail e`, di fatto, l’agente di transporto di posta su Internet. Anche se principalmente usato come MTA, sendmail puo` essere usato come MUA (nonostante non abbia alcuna interfaccia utente).

65 Funzioni del sendmail Raccogliere le s provenienti da un MUA, o da un MTA (per esempio, un’altro sendmail). Instradare il messaggi al corretto MTA di destinazione usando le informazioni del DNS di competenza. Determinare una strategia de distribuzione della posta, basandosi sulle informazioni sul destinatario contenuta nello header: Se il destinatario e` locale, sendmail spedisce la mail al programma locale di distribuzione della posta. Se il destinatario non e` locale, sendmail utilizza il DNS per determinare l’host a cui inviare il messaggio. Per trasferire il messaggio, sendmail inizia una sessione SMTP con l’MTA del detto host.

66 Funzioni del sendmail (cont.)
Se non e` possibile inviare il messaggio a destinazione, sendmail salva il messaggio in una coda e ritenta di inviare solo dopo un certo prefissato lasso di tempo. Se il messaggio non puo` essere inviato entro un certo lasso di tempo massimo, il messaggio viene restituito al mittente con un messaggio di errore. Sendmail garantisce che ogni messaggio arrivi correttamente a destinazione oppure, in caso di errore, ne garantisce la notifica (nessun messaggio viene perso). Cambiare il formato del messaggio prima di passarlo alla macchina seguente. A seconda del tipo di connessione con una specifica macchina, o a seconda dell’ MTA al quale va diretta la , e` necessario cambiare il formato dell’indirizzo di destinazione e/o alcuni campi header. (Per motivi di compatibilita`.)

67 Funzioni del sendmail (cont.)
Un’altra funzione importante e` quella di permettere l’uso di “alias”, usato (tra le altre cose) per gestire mailing-lists. Infine, permette l’esecuzione come MUA. Sebbene non possegga nessuna interfaccia utente, sendmail permette l’invio di messaggi mediante linea di comando. Queste (ed altre) caratteristiche del sendmail devono essere configurate e di conseguenza variano da sistema e sistema. La loro definizione e` contenuta nel file di configurazione (sendmail.cf).

68 sendmail come MUA Come MUA, il sendmail legge per default lo standard input fino a raggiungere il carattere end-of-file (EOF) o una linea che contiene solo un punto (“.”). In quel momento spedisce una copia di quel messaggio ad ognuno dei destinatari (specificato sulla riga comando). In seguito, inoltra il messaggio consultando il DNS (se necessario). Sendmail determina come instradare un messaggio anche in base alle informazioni contenute nel file di configurazione.

69 sendmail come MUA: Esempi
/usr/lib/sendmail hi, how are you doing there? ... cat testo.txt | /usr/lib/sendmail /usr/lib/sendmail –t From: Date: ...

70 sendmail gira come processo residente in ascolto sulla porta TCP 25.
sendmail come MTA Sendmail viene maggiormente usato come demone per spedire e ricevere posta SMTP (solo da superuser). sendmail gira come processo residente in ascolto sulla porta TCP 25. Quando riceve una richiesta di connessione sendmail crea un processo figlio che gestisce il messaggio, mentre il processo padre continua ad ascoltare la porta 25. Per usare sendmail come demone, (normalmente si fa partire da uno script di inizializzazione del sistema), si lancia con i seguenti parametri (esempio) : sendmail –bd –q12m In questo modo, sendmail viene eseguito in modalita` background. L’opzione –q12m indica che la “coda” dei messaggi viene aggiornata ogni 12 minuti.

71 La cola de correo Quando un messaggi non puo` raggiungere la sua destinazione a causa di una connessione mancante (normalmente perche` la macchina di destinazione e` spenta oppure sovraccarica), il messaggio viene immagazzinato in una coda locale, e l’invio viene rimandato. La coda locale si trova in /var/spool/mqueue. In questo direttorio vengono creati i files temporanei per ogni in coda. Il formato dei nomi e`: df.... (Data, message body) qf.... (Queue control file) tf (Temporary qf rewrite image) xf.... (opening-closing Transcript file)

72 Sendmail permette l’uso di aliases (pseudonimi):
Gli aliases Sendmail permette l’uso di aliases (pseudonimi): Uso di nomi alternativi (nicknames) per uso individuale. Inviare il messaggi ad un’altra destinazione, anche se l’indirizzo destinatario e` locale. Creare mailing-lists.

73 Le liste di distribuzione (mailing-lists)
Una funzione del sendmail tramite l’uso di aliases: owner-<lista>: <nome> dove <lista> e` il nome della lista di distribuzione (mailing-list). La persona specificata in <nome> e` la persona responsabile della lista (utile per avere un riferimento in caso di errori). Esempio: amici: fabrizio, colleghi: filippo

74 Il file .forward A livello di utente, sendmail permette di specificare un altro indirizzo a cui indirizzare i messaggi in arrivo $HOME/.forward.

75 Il file di configurazione sendmail.cf
Il file di configurazione sendmail.cf e` letto ogni volta che sendmail viene inizializzato. Contiene informazioni necessarie per l’esecuzione di sendmail. riporta la locazione di file e direttori importanti dei permessi per quei files specifica regole determina il comportamento di sendmail

76 Il file di configurazione sendmail.cf (cont.)
Sendmail.cf e` complesso! Es: R$+%$=W % ! C[[ C{Accept}OK RELAY C{tls}VERIFY ENCR DZ8.11.6 O Timeout.connect=1m O SendMimeErrors=True R$* $+ > $* $: < $2 > $1 $2 > $3 R< $+ . > $* $: < $1 > $2 R< $+ > $* $: < $(mailertable $1 $) > $2 R< $~[ : $* > $* $>MailerToTriple < $1 : $2 > $3 R< $+ > $* $: $>Mailertable <$1> $2 Fortunatamente (dalla versione 8) il file sendmail.cf si costruisce in maniera (quasi) automatica.

77 Le macro usate nel file .mc sono:
m4 Configuration Files m4 e` un macro preprocessor che produce un file di configurazione per sendmail (sendmail.cf) da un file con estensione “.mc” Le macro usate nel file .mc sono: define definisce una macro undefine elimina una precedente definizione di macro include include un file dnl elimina I caratteri fino alla fine della linea divert reindirizza file di output

78 Types of Configuration
OSTYPE() definisce il SO Linux, Sgi, Solaris Specifica i direttori per sendmail incluso il direttorio delle code e la directory di spool Sceglie il tipo di SO (e.g. linux) VERSIONID() specifica l’id del sendmail

79 MAILER() delivery agent specifications.
More Configuration DOMAIN() permette di includere files di dominio che riportano informazioni specifiche del sito locale Use generic for small sites Large sites spam, databases, tables MAILER() delivery agent specifications. Types: Local, smtp, fax, usenet, procmail, … Used local and smtp MAILER(`local’) MAILER(`smtp’) Computer science dept: Procmail, local, and smtp

80 Even more Configuration
FEATURE() Opzioni che cambiano il normale comportamente di sendmail use_cw_file – necessary, names of all local hosts for which this host accepts “whatever.com”, “mail.whatever.com” redirect – allows forwarding access_db – necessary, consists of ips, or domains Specify rejects, OK, discard or relay for machines to use smtp on that server. Must use makemap hash /etc/mail/access < /etc/mail/access nocanonify Avoid dns lookups locally. Used for client transport agents nullclient FEATURE(`nullclient’,`mail.whatever.com’) All mail is delivered to the mailserver

81 No not more….. configuration
MASQUERADE_AS() allow multiple machines hide behind one single identity MASQUERADE_AS(`cs.umbc.edu’) MASQUERADE_AS(`whatever.com’) MAIL_HUB Automatically done Incoming mail smtp:mail.whatever.com SMART_HOST Automatic with masquerade Outgoing mail smtp:mail.whatever.com

82 Configurazione: esempio
Server configuration OSTYPE(`linux’) DOMAIN(`generic’) FEATURE(`use_cw_file’) FEATURE(`access_db’) MASQUERADE_AS(`whatever.com’) MAILER(`local’) MAILER(`smtp’) Client configuration FEATURE(`nocanonify’) FEATURE(`nullclient’, `mail.whatever.com’)

83 Necessario per il funzionamento di sendmail
/etc/aliases Necessario per il funzionamento di sendmail System-wide config file mantenuto dall’ amministratore di sistema E.g. Computer Science Dept. usa lists, e aliases per il personale docente Deve sempre contenere postmaster Puo` contentere inclusioni di altri files per lists o altre interfacce a majordomo (CS) o listproc come (OIT) Majordomo = FREE Listproc = expensive Configurazione per sendmail deve abilitare /bin/sh per majordomo o listproc

84 Linux ha un rc file gia` configurare se sendmail e` installato
Running Sendmail Dovrebbe sempre essere lanciato dagli RC scripts (in fase di boot del sistema) Linux ha un rc file gia` configurare se sendmail e` installato kill –TERM pid per terminare sendmail /usr/sbin/sendmail k-bd –q1h & per rilanciarlo mv mqueue if queue is clogged, located in /var/spool/mqueue

85 Various Types of Clients with Different Operating Systems
Per ogni OS e per ogni versione, compila un nuovo sendmail Assicurati che tutti i clients usino la stessa versione di sendmail altrimenti sendmail non interagira` bene con il client Crea un nuovo sendmail.cf file per ogni tipo di OS supportato. Usa m4 interpreter Solaris Linux Irix

86 Ancora sulla configurazione di sendmail
Fai un backup della configurazione corrente cp /etc/sendmail.cf /etc/sendmail.cf.backup Usa il metodo piu` semplice (m4) Modifica /etc/mail/sendmail.mc vi /etc/mail/sendmail.mc m4 /etc/mail/sendmail.mc > /etc/sendmail.cf.new Prova il nuovo configuration file /usr/lib/sendmail –bt –c /etc/sendmail.cf.new Prova gli indirizzi di Installa la nuova configurazione cp /etc/sendmail.cf.new /etc/sendmail.cf Fai ripartire il sendmail come demone service sendmail restart

87 Fine FINE

88 Glossario dei termini

89 Bibliografia-Sitografia


Scaricare ppt "Servizi Internet di base"

Presentazioni simili


Annunci Google