Title: Posta Elettronica
1Posta Elettronica
- Laboratori Nazionali di Frascati
- INFN
- Dael.Maselli_at_lnf.infn.it
- http//www.lnf.infn.it/dmaselli/
2Indirizzi e-mail
- Indirizzo di posta elettronica o e-mail e
composto di due parti, separate da _at_ - La prima indica il nome di un utente
- La seconda il nodo su cui trovare lutente e la
sua inbox - Linbox o casella di posta e repository dei
messaggi inviati presso un determinato utente su
un determinato nodo. - Tramite limpostazione di un record MX per un
dominio e possibile delegare ad un mail server
predefinito i mail destinati a un indirizzo nella
forma utente_at_dominio anziche utente_at_nodo.dominio
3Struttura di un messaggio
- Il singolo messaggio e costituito da 2 parti
- Header contenente informazioni come Mittente,
Destinatario, Data, Mail server, Id unico, ecc - Body il contenuto vero e proprio del messaggio
- le 2 parti sono separate dalla prima riga vuota.
- Un semplice e-mail puo contenere solo caratteri
alfanumerici (7 bit), per linserimento di
allegati binari e quindi necessario luso del
formato MIME
4Formato MIME
- E un metodo per inserire nel body, oltre al
semplice testo, anche un numero indefinito di
allegati. - Prima di tutto va dichiarato nellheader che il
messaggio contiene informazioni mime - Content-Type multipart/mixed
- boundary--separatore allegati--
- A questo punto anche la semplice parte di testo
diventa un allegato. - Allinizio di ogni allegato viene descritto il
tipo di dati - Content-Type text/plain charsetUTF-8
- Oppure
- Content-Type image/jpg
- I dati binari vengono poi rappresentati
convertendoli da 8 a 7 bit in modo che possano
essere trasportati attraverso smtp
5Componenti di un sistema di posta elettronica
- MTA (Mail Transfer Agent)
- E il server che si occupa di smistare i messaggi
di posta elettronica in una rete - Utilizza il protocollo SMTP.
- MDA (Mail Delivery Agent)
- Si occupa di memorizzare i messaggi nelle caselle
degli utenti. - MUA (Mail User Agent)
- E lapplicazione utilizzata dallutente per
accedere alla casella e leggere la posta
elettronica. (es. Outlook, Mozilla Thunderbird,
ecc.) - MUA Interface
- E il server che permette di leggere la posta da
remoto attraverso un MUA - Generalmente utilizza i protocolli IMAP o POP3.
6Struttura tipica della posta elettronica
INBOX Storage
MTA (SMTP Server)
MDA
INTERNET
File System
MUA
WebMail Server
MUA Interface (POP3 Server)
MUA Interface (IMAP Server)
Local
7MTA Ricezione
- LMTA puo ricevere un messaggio
- Da un client di posta (MUA)
- Da un altro MTA
- Generalmente il primo passo avviene inviando un
messaggio da un MUA al MTA della rete di cui si
fa parte - Nel caso in cui la casella di destinazione sia
conosciuta lMTA invia il messaggio al MDA per
consegnarlo nella casella dellutente
destinatario. - Nel caso lutente di destinazione non sia
conosciuto dal MTA contattato questo lo girera
al MTA competente. Questo meccanismo viene
chiamato RELAY.
8MTA Relay
- Gli MTA hanno bisogno di identificare quali nodi
fanno parte della rete di cui gestisce la posta. - Per questioni di sicurezza vengono configurati in
modo che effettuino il relay solo in determinate
situazioni - Da un nodo esterno ad un indirizzo interno
- Da un nodo interno ad un indirizzo interno
- Da un nodo interno ad un indirizzo esterno
- NON da un nodo esterno ad un indirizzo esterno
- Questo contribuisce ad evitare contraffazioni ed
a garantire la tracciabilita del messaggio. - LMTA piu utilizzato in ambiente unix e
Sendmail, ed e quello su cui si baseranno i
successivi esempi di configurazione.
9MUA Interface
- Per consentire di leggere i messaggi senza essere
localmente sulla macchina che contiene le INBOX
(caselle di posta) vengono utilizzati dei
protocolli di rete - IMAP (Internet Mail Tranfer Protocol)
- E un sistema che permette di leggere la posta ed
organizzare folder lavorando direttamente sul
server dove effettivamente rimarranno tutti i
messaggi. - POP3
- Consente di effettuare il download di tutti i
messaggi nella inbox in modo da poterli leggere
off-line - Non permette la creazione di folder
- E meno impegnativo lato server.
10MUA Interface Configurazione
- I pacchetti come IMAPd e POP3d generalmente non
hanno bisogno di configurazione. - Conoscono gli utenti locali e sono in grado di
controllarne la password utilizzando le funzioni
di sistema. - Dipendono da xinetd, il tcp wrapper standard di
Linux ed e sufficiente attivarli in
/etc/xinetd.d/(ipop3dimapd) e facendo il restart
di xinetd. - Leggeranno le inbox nella posizione di default
(/var/spool/mail/ltnome-utentegt) - Ulteriori folder (imap) risiedono nelle home dir
degli utenti
11Sendmail Aliases
- Dato che gli indirizzi e-mail devono essere
relativi a utenti locali alla macchina che funge
da mail server, a volte potrebbe essere
necessario creare degli alias piu mnemonici per
i singoli utenti - Questi sono definiti nel file /etc/aliases nella
forma - Dael.Maselli dmaselli
- Quando arrivera' un e-mail sulla macchina
mail.infn.it con indirizzo Dael.Maselli_at_mail.infn.
it questo verra tradotto in dmaselli_at_mail.infn.it
per rintracciarne il destinatario reale. - Ogni volta che si cambia il file /etc/aliases e
necessario eseguire newaliases.
12Sendmail Forward
- Ogni utente puo definire per la propria casella
di posta un forward, ovvero un indirizzo dove
girare la posta ad essa destinata - Viene definito nel file .forward nella home
directory dellutente, allinterno e sufficiente
scrivere lindirizzo di destinazione.
13Sendmail Configurazione
- La configurazione di Sendmail avviene tramite il
file /etc/mail/sendmail.cf - Il sendmail.cf tuttavia ha una sintassi
estremamente complessa e di conseguenza viene
usato il file /etc/mail/sendmail.mc che compilato
tramite m4 genera il sendmail.cf - Il file sendmail.mc e strutturato in una serie
di istruzioni che definiscono variabili ed
includono segmenti di codice nel sendmail.cf - Per compilare il sendmail.cf dopo aver editato
semdial.mc - cd /etc/mail
- m4 /usr/share/sendmail-cf/m4/cf.m4 sendmail.mc gt
sendmail.cf
14Sendmail sendmail.mc di base
- divert(-1)dnl
- include(/usr/share/sendmail-cf/m4/cf.m4')dnl
- OSTYPE(linux')dnl
- FEATURE(access_db',hash -TltTMPFgt -o
/etc/mail/access')dnl - MAILER(procmail)dnl
- MAILER(smtp)dnl
- Ulteriori possibilita di configurazione possono
essere trovate nel file /usr/share/sendmail-cf/REA
DME
15Sendmail access.db
- Per gestire gli accessi al mail server si
utilizza il file /etc/mail/access - Da qui e possibile indicare i nodi da cui si
accetta il relay - nodo.dominio RELAY
- domino RELAY
- ed i nodi dai quali non si accetta alcun mail
- nodo.dominio REJECT
- domino REJECT
16Protocollo SMTP Test del server (1)
- Per simulare una richiesta SMTP e possibile
eseguire telnet verso lSMTP server sulla porta
25 (smtp) - Esempio di un dialogo SMTP
dmaselli_at_lxcalc1gt telnet millenniumfalcon.lnf.
infn.it 25 Trying 193.206.84.29... Connected to
millenniumfalcon.lnf.infn.it (193.206.84.29). Esca
pe character is ''. 220 millenniumfalcon.lnf.inf
n.it ESMTP Sendmail 8.13.1/8.13.1 Fri, 16 Sep
2005 174417 0200 helo lxcalc1.lnf.infn.it 250
millenniumfalcon.lnf.infn.it Hello
lxcalc1.lnf.infn.it 193.206.84.96, pleased to
meet you mail from tizio_at_pongo101.it 250 2.1.0
tizio_at_pongo101.it... Sender ok rcpt to
dael_at_millenniumfalcon.lnf.infn.it 250 2.1.5
dael_at_millenniumfalcon.lnf.infn.it... Recipient
ok data 354 Enter mail, end with "." on a line by
itself Subject prova008 ciao . 250 2.0.0
j8GFiHYn003237 Message accepted for
delivery quit 221 2.0.0 millenniumfalcon.lnf.infn.
it closing connection Connection closed by
foreign host.
17Protocollo SMTP Test del server (2)
- Se si sono impostate delle regole in access.db,
provando con un destinatario esterno - rcpt to dael_at_pongo101.it
- 550 5.7.1 dael_at_pongo101.it... Relaying denied
- Per inviare il messaggio a piu destinatari sara
necessario inserire piu righe rctp to. - Non vengono considerati gli header to e cc,
verranno interpretati solo dal MUA nella lettura. - Lindirizzo in mail from verra trascritto come
return-path nellheader del mail e verra usato
per comunicare problemi nella consegna del
messaggio, non e quello visualizzato dal MTA che
viene invece letto dallheader To del mail.
18Sendmail Funzionamento (1)
- Sendmail e un servizio unix stand-alone e viene
fatto partire tramite lo script
/etc/init.d/sendmail - Quando arriva un messaggio al servizio questo
puo essere processato in modo sincrono - Viene consegnato immediatamente, durante il
dialogo smtp - o asincrono
- Il messaggio viene inserito in una coda che viene
processata ad intervalli prefissati (modalita
standard) - I messaggi in coda risiedono sul disco
generalmente in /var/spool/mqueue, separando i
metadati di sendmail dal messaggio vero e proprio - Per una lista dei messaggi in coda si puo usare
il comando mailq - Per approfondimenti consultare /usr/share/doc/send
mail/doc/op/op.ps
19Sendmail Funzionamento (2)
- Il mail verra alla fine consegnato nella inbox
dellutente in /var/spool/mail/ltnomeutentegt. - Dal sorgente del mail e possibile capire molte
cose in particolare dalle righe Received che
vengono inserite ogni volta che il mail passa da
un MTA - Le righe Received si leggono dal basso verso
lalto - E possibile ad esempio sapere lIP del nodo che
ha inviato la richiesta al primo MTA e tracciare
i tempi e la rotta - Spesso in questo modo si scovano hacker o
macchine infette e insicure.
20Sendmail Sorgente di un mail (1)
- Return-Path ltmario.masciarelli_at_lnf.infn.itgt
- Received from sophos1.lnf.infn.it
(sophos1.lnf.infn.it 193.206.84.245) - by imap0.lnf.infn.it (8.12.10/8.12.10) with
ESMTP id j8FHpK0p027679 - Thu, 15 Sep 2005 195120 0200
- Received from smtp20.libero.it (smtp20.libero.it
193.70.192.147) - by sophos1.lnf.infn.it (8.13.3/8.12.11) with
ESMTP id j8FHp7eS024616 - for ltCalcolo_at_lnf.infn.itgt Thu, 15 Sep 2005
195108 0200 - (envelope-from mario.masciarelli_at_lnf.infn.it)
- Received from localhost (172.16.1.17) by
smtp20.libero.it (7.0.027-DD01) - id 431C3C6200A741D1 for
Calcolo_at_lnf.infn.it Thu, 15 Sep 2005 195112
0200 - Received from smtp2.libero.it (172.16.1.97)
- by localhost (asav12.libero.it 193.70.192.95)
(amavisd-new, port 10024) - with ESMTP id 28671-07-2 for ltCalcolo_at_lnf.infn.it
gt - Thu, 15 Sep 2005 195112 0200 (CEST)
- Received from 151.80.10.243 (unknown
151.80.10.243) - by smtp2.libero.it (Postfix) with ESMTP id
2E75CA8C1E - for ltCalcolo_at_lnf.infn.itgt Thu, 15 Sep 2005
195028 0200 (MEST) - From mario.masciarelli_at_lnf.infn.it
- Reply-to mario.masciarelli_at_lnf.infn.it
21Sendmail Sorgente di un mail (2)
- X-Scanned with antispam and antivirus automated
system at libero.it - X-PMX-Version 4.7.1.128075, Antispam-Engine
2.0.3.1, Antispam-Data 2005.9.15.19 - X-PMX-Sender-IP 193.70.192.147
- X-PMX-Spam 7
- X-PMX-Spam-report The following antispam rules
were triggered by this message - Rule Score Description
- NO_REAL_NAME 0.000 From does not include a
real name - This is a MIME Message
- --EPOC32-sTHHRXFD45-3LLF8qd1bmFb6Fl_cx55hKz4h0kStP
fdSYk,- - Content-Type text/plain charsetUTF-8
- Content-Disposition inline
- Content-Transfer-Encoding quoted-printable
- EMail sent via mobile phone.
- Please reply to
- Mario.Masciarelli_at_lnf.infn.it
- --EPOC32-sTHHRXFD45-3LLF8qd1bmFb6Fl_cx55hKz4h0kStP
fdSYk,-
22Antivirus Antispam
- Data la grande concentrazione di mail cattivi
nelle nostre inbox, stanno prendendo piede sempre
di piu i sistemi di antivirus ed antispam
centralizzati su mail server - Entrambi controllano il messaggio nella fase di
transizione in un MTA, in sendmail tramite un
meccanismo chiamato MILTER - I milter sono dei programmi che vengono eseguiti
da sendmail al momento dellarrivo di un
messaggio - Il mail viene passato al milter che lo analizza
come vuole e restituisce ACCEPT o REJECT, in
questultimo caso si puo aggiungere un motivo
per il rifiuto - I milter possono essere in grado anche di
modificare il messaggio ad esempio eliminando un
allegato infetto e continuare la consegna con le
informazioni rimanenti.
23Fine
Servizio di Calcolo Laboratori Nazionali di
Frascati Istituto Nazionale di Fisica Nucleare