La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "F. Castiglione 1 Servizi Internet di base Email (smtp, pop, imap, webmail) Filippo Castiglione, IAC – CNR, Roma."— Transcript della presentazione:

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

2 F. Castiglione 2 Argomenti

3 F. Castiglione 3 Origine ed evoluzione del servizio Cos'è la 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. 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 ( ).

4 F. Castiglione 4 RFC 822 Un messaggio e` composto da piu` stringhe di caratteri US-ASCII (codice di 7-bit, con lultimo 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. Luso di caratteri ASCII causa problemi per i messaggi non- ASCII, e.g. attachments (vedi MIME).

5 F. Castiglione 5 Un esempio di messeggio RFC 822 From: To: Cc: Subject: RFC 822 example Date: Fri, 15 Jul :58:49 This is just a test message to illustrate RFC 822. Its not very long and its not very exciting. But you get the point. Message Header Message Body

6 F. Castiglione 6 Vantaggi e limiti della posta elettronica Vantaggi 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 F. Castiglione 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 sullidentità del mittente Nessuno standard per la ricevuta di ritorno

8 F. Castiglione 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 F. Castiglione 9 Origine ed evoluzione del servizio Allinizio 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 F. Castiglione 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) MUA Mail Client MTA Mail server

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

12 F. Castiglione 12 I passi concettuali 1.MUA = Mail client e` un programma che gira sulla macchina del Sender, e.g. Microsoft Outlook o Netscape Messenger. 2.Lutente fornisce i valori dei campi To: e Subject: ed il corpo del messaggio. 3.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. 4.Il MUA usa un protocollo chiamato SMTP per spedire il messaggio RFC 822 allMTA.

13 F. Castiglione 13 I passi concettuali (cont.) 5.Il Sending MTA usa il DNS (Domain Name Service) per trovare lindirizzo IP del Receiving MTA (che potrebbe essere locale o no) in base al campo To:. 6.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. 7.Alcuni server MTA intermediari posso essere coinvolti. 8.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 F. Castiglione 14 LSMTP, 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). Simple Mail Transfer Protocol (SMTP)

15 F. Castiglione 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).

16 F. Castiglione 16 (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

17 F. Castiglione 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.). LRFC 822 non specifica lordine con cui i vari headers appaiono. Lunica richiesta e` che lHeader appaia prima del message body e separato da questo mediante una riga vuota.

18 F. Castiglione 18 Comandi SMTP di base HELLO (HELO) E` usato per identificare lSMTP-sender allSMTP- receiver. Largomento contiene il nome dellhost che genera il messaggio. MAIL (MAIL) E` usato per specificare lindirizzo di posta elettronica del mittente del messaggio. RECIPIENT (RCPT) E` usato per specificare lindirizzo di posta elettronica del destinatario. DATA (DATA) Specifica linizio dellinserimento 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 F. Castiglione 19 Sintassi dei comandi SMTP (tutti) The following are the SMTP commands: HELO MAIL FROM: RCPT TO: DATA RSET SEND FROM: SOML FROM: SAML FROM: VRFY EXPN HELP[ ] NOOP QUIT TURN

20 F. Castiglione 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 F. Castiglione 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. 1.Il server ha accettato il comando ma richiede un messaggio di conferma. 2.Il server ha eseguito il comando con successo. 3.Il server has capito la richiesta, ma necessita di ulteriore input. 4.Il server ha incontrato un errore temporaneo. Se il comando e` ripetuto senza cambiamenti potrebbe essere eseguito! 5.Il server ha incontrato un fatal error e non puo` essere portato a compimento.

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

24 F. Castiglione 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: 250 Ok DATA 354 End data with. Subject: Test Mail X-My-Header: my header Test Ok: queued as 0EB QUIT mail.istac.de closing connection Connection closed by foreign host.

25 F. Castiglione 25 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).. MRA Mail server MTA Users mailbox POP/IMAP

26 F. Castiglione 26 POP/IMAP Il POP, o Post Office Protocol LIMAP, o Internet Message Access Protocol

27 F. Castiglione 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 F. Castiglione 28 POP3 Una sessione POP3 consistse di tre passaggi: 1. authorization, 2. transaction, 3. 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 F. Castiglione 29 Authorization Lautorizzazione 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 F. Castiglione 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 F. Castiglione 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 F. Castiglione 32 Il comando LIST può essere usato con o senza parametri. Senza parametri, LIST restituisce lidentificatore e la dimensione di ogni messaggio nel mailbox. Example: Client: LIST Server: +OK 3 messages (640 octets) Server: Server: Server: Server:.... The POP3 Transaction Stage

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

34 F. Castiglione 34 Il comando TOP lista gli headers e le prime dieci righe del messaggio. Example: Client: TOP 2 Server: +OK Server: The POP3 Transaction Stage

35 F. Castiglione 35 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 The POP3 Transaction Stage

36 F. Castiglione 36 Il comando RETR scarica il messagio specificato che viene quindi gestito internamente dal MUA. Example: Client: RETR 1 Server: +OK 220 octets Server: Server:. The POP3 Transaction Stage

37 F. Castiglione 37 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) The POP3 Transaction Stage

38 F. Castiglione 38 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 Update

39 F. Castiglione 39 Example: Pop3 session % 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 RETR 2 +OK Message follows Return-Path: … …

40 F. Castiglione 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 0EB for ; Tue, 12 Sep :19: (CEST) Subject: Test Mail X-My-Header: my_header Message-Id: Date: Tue, 12 Sep :19: (CEST) From: Test DELE 2 +OK message deleted QUIT +OK

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

42 F. Castiglione 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 larrivo 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 F. Castiglione 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 F. Castiglione 44 Example: IMAP session % 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 F. Castiglione 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 F. Castiglione 46 Example 2: IMAP session % 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 * FLAGS (\Answered \Flagged \Draft \Deleted \Seen) * OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)] * 2 EXISTS * 0 RECENT * OK [UIDVALIDITY ] * OK [UIDNEXT 8] a04 OK [READ-WRITE] Completed a05 COPY 2 INBOX.myfolder a05 OK [COPYUID ] Completed

47 F. Castiglione 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 F. Castiglione 48 Example 3: IMAP session % 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 F. Castiglione 49 MIME 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` lintero messaggi e` comunque codificato in ASCII per compatibilita`. Specificata nelle RFCs

50 F. Castiglione 50 MIME specifica 5 nuovi campi header: MIME-Version (deve essere 1.0) Content-Type Content-Transfer-Encoding Content-ID - optional Content-Description - optional MIME headers

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

52 F. Castiglione 52 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. MIME Content-Type (cont.)

53 F. Castiglione 53 MIME: Content-Type (cont.)

54 F. Castiglione 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.

55 F. Castiglione 55 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) MIME: Encoding

56 F. Castiglione 56 MIME: separatore

57 F. Castiglione 57 Esempio: MIME Message From: To: 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 larticolo di cui ti parlavo. Carlo next part Content-Type: application/x-zip-compressed; name=paper.zip" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename= "paper.zip" rfvbnj756tbGHUSISyuhssia SHHS vsgGJ77JS77HFyt6GS next part--

58 F. Castiglione 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 F. Castiglione 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 F. Castiglione 60 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 F. Castiglione 61 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 F. Castiglione 62 Come funziona Webmail Webmail server POP server (mailbox) SMTP server Spedizione Lettura

63 F. Castiglione 63 Sendmail Servizi Internet di base

64 F. Castiglione 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, lagente 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 F. Castiglione 65 Funzioni del sendmail Raccogliere le s provenienti da un MUA, o da un MTA (per esempio, unaltro 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 lhost a cui inviare il messaggio. Per trasferire il messaggio, sendmail inizia una sessione SMTP con lMTA del detto host.

66 F. Castiglione 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 dellindirizzo di destinazione e/o alcuni campi header. (Per motivi di compatibilita`.)

67 F. Castiglione 67 Funzioni del sendmail (cont.) Unaltra funzione importante e` quella di permettere luso di alias, usato (tra le altre cose) per gestire mailing-lists. Infine, permette lesecuzione come MUA. Sebbene non possegga nessuna interfaccia utente, sendmail permette linvio 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 F. Castiglione 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 F. Castiglione 69 sendmail come MUA: Esempi 1./usr/lib/sendmail hi, how are you doing there?... 2.cat testo.txt | /usr/lib/sendmail 3./usr/lib/sendmail –t From: Date:...

70 F. Castiglione 70 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. Lopzione –q12m indica che la coda dei messaggi viene aggiornata ogni 12 minuti.

71 F. Castiglione 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 linvio 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 F. Castiglione 72 Gli aliases Sendmail permette luso di aliases (pseudonimi): –Uso di nomi alternativi (nicknames) per uso individuale. –Inviare il messaggi ad unaltra destinazione, anche se lindirizzo destinatario e` locale. –Creare mailing-lists.

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

74 F. Castiglione 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 F. Castiglione 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 lesecuzione di sendmail. riporta la locazione di file e direttori importanti dei permessi per quei files specifica regole determina il comportamento di sendmail

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

77 F. Castiglione 77 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 –undefineelimina una precedente definizione di macro –includeinclude un file –dnlelimina I caratteri fino alla fine della linea –divertreindirizza file di output

78 F. Castiglione 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 lid del sendmail

79 F. Castiglione 79 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 F. Castiglione 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 F. Castiglione 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 F. Castiglione 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 –OSTYPE(`linux) –FEATURE(`nocanonify) –FEATURE(`nullclient, `mail.whatever.com)

83 F. Castiglione 83 /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 F. Castiglione 84 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 F. Castiglione 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 F. Castiglione 86 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 Ancora sulla configurazione di sendmail

87 F. Castiglione 87 Fine FINE

88 F. Castiglione 88 Glossario dei termini

89 F. Castiglione 89 Bibliografia-Sitografia


Scaricare ppt "F. Castiglione 1 Servizi Internet di base Email (smtp, pop, imap, webmail) Filippo Castiglione, IAC – CNR, Roma."

Presentazioni simili


Annunci Google