Posta Elettronica
Laboratori Nazionali di Frascati
INFN
[email protected]
http://www.lnf.infn.it/~dmaselli/
Indirizzi e-mail

Indirizzo di posta elettronica o e-mail e’ composto di due
parti, separate da @

La prima indica il nome di un utente

La seconda il nodo su cui trovare l’utente e la sua inbox

L’inbox o casella di posta e’ repository dei messaggi
inviati presso un determinato utente su un determinato
nodo.

Tramite l’impostazione di un record MX per un dominio e’
possibile delegare ad un mail server predefinito i mail
destinati a un indirizzo nella forma utente@dominio
anziche’ [email protected]
Dael Maselli – Servizio di Calcolo – [email protected]
Struttura 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 l’inserimento di allegati
binari e’ quindi necessario l’uso del formato
MIME
Dael Maselli – Servizio di Calcolo – [email protected]
Formato MIME

E’ un metodo per inserire nel body, oltre al semplice testo, anche un
numero indefinito di allegati.

Prima di tutto va dichiarato nell’header 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.

All’inizio di ogni allegato viene descritto il tipo di dati:
Content-Type: text/plain; charset=UTF-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
Dael Maselli – Servizio di Calcolo – [email protected]
Componenti 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)


MUA (Mail User Agent)


Si occupa di memorizzare i messaggi nelle caselle degli utenti.
E’ l’applicazione utilizzata dall’utente 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.
Dael Maselli – Servizio di Calcolo – [email protected]
Struttura tipica della posta elettronica
INTERNET
MTA
MDA
(SMTP Server)
INBOX
Storage
File System
MUA
Local
MUA
Interface
MUA
Interface
(POP3 Server)
(IMAP Server)
WebMail
Server
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Dael Maselli – Servizio di Calcolo – [email protected]
MTA – Ricezione

L’MTA 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
l’MTA invia il messaggio al MDA per consegnarlo nella
casella dell’utente destinatario.

Nel caso l’utente di destinazione non sia conosciuto dal
MTA contattato questo lo girera’ al MTA competente.
Questo meccanismo viene chiamato RELAY.
Dael Maselli – Servizio di Calcolo – [email protected]
MTA – 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.

L’MTA piu’ utilizzato in ambiente unix e’ Sendmail, ed e’
quello su cui si baseranno i successivi esempi di
configurazione.
Dael Maselli – Servizio di Calcolo – [email protected]
MUA 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.
Dael Maselli – Servizio di Calcolo – [email protected]
MUA 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/(ipop3d|imapd) e
facendo il restart di xinetd.

Leggeranno le inbox nella posizione
(/var/spool/mail/<nome-utente>)

Ulteriori folder (imap) risiedono nelle home dir degli
utenti
di
default
Dael Maselli – Servizio di Calcolo – [email protected]
Sendmail – 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 [email protected] questo verra’
tradotto in [email protected] per rintracciarne il
destinatario reale.

Ogni volta che si cambia il file /etc/aliases e’ necessario
eseguire `newaliases`.
Dael Maselli – Servizio di Calcolo – [email protected]
Sendmail – 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
dell’utente,
all’interno
e’
sufficiente
scrivere
l’indirizzo
di
destinazione.
Dael Maselli – Servizio di Calcolo – [email protected]
Sendmail – 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
semdial.mc:
il
sendmail.cf
dopo
aver
editato
cd /etc/mail
m4 /usr/share/sendmail-cf/m4/cf.m4 sendmail.mc > sendmail.cf
Dael Maselli – Servizio di Calcolo – [email protected]
Sendmail – sendmail.mc di base
divert(-1)dnl
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
OSTYPE(`linux')dnl
FEATURE(`access_db',`hash -T<TMPF> -o /etc/mail/access')dnl
MAILER(procmail)dnl
MAILER(smtp)dnl

Ulteriori possibilita’ di configurazione possono essere
trovate nel file /usr/share/sendmail-cf/README
Dael Maselli – Servizio di Calcolo – [email protected]
Sendmail – 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
Dael Maselli – Servizio di Calcolo – [email protected]
Protocollo SMTP – Test del server (1)

Per simulare una richiesta SMTP e possibile eseguire
telnet verso l’SMTP server sulla porta 25 (smtp)

Esempio di un dialogo SMTP:
[dmaselli@lxcalc1:~]> telnet millenniumfalcon.lnf.infn.it 25
Trying 193.206.84.29...
Connected to millenniumfalcon.lnf.infn.it (193.206.84.29).
Escape character is '^]'.
220 millenniumfalcon.lnf.infn.it ESMTP Sendmail 8.13.1/8.13.1; Fri, 16 Sep 2005 17:44:17 +02
helo lxcalc1.lnf.infn.it
250 millenniumfalcon.lnf.infn.it Hello lxcalc1.lnf.infn.it [193.206.84.96], pleased to meet
mail from: [email protected]
250 2.1.0 [email protected]... Sender ok
rcpt to: [email protected]
250 2.1.5 [email protected]... 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.
Dael Maselli – Servizio di Calcolo – [email protected]
Protocollo SMTP – Test del server (2)

Se si sono impostate delle regole in access.db,
provando con un destinatario esterno:
rcpt to: [email protected]
550 5.7.1 [email protected]... 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.

L’indirizzo in mail from verra’ trascritto come returnpath nell’header del mail e verra’ usato per comunicare
problemi nella consegna del messaggio, non e’ quello
visualizzato dal MTA che viene invece letto dall’header
To del mail.
Dael Maselli – Servizio di Calcolo – [email protected]
Sendmail – 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/sendmail/doc/op/op.ps
Dael Maselli – Servizio di Calcolo – [email protected]
Sendmail – Funzionamento (2)

Il mail verra’ alla fine consegnato nella inbox dell’utente
in /var/spool/mail/<nomeutente>.

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 l’alto

E’ possibile ad esempio sapere l’IP 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.
Dael Maselli – Servizio di Calcolo – [email protected]
Sendmail – Sorgente di un mail (1)
Return-Path: <[email protected]>
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 19:51:20 +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 <[email protected]>; Thu, 15 Sep 2005 19:51:08 +0200
(envelope-from [email protected])
Received: from localhost (172.16.1.17) by smtp20.libero.it (7.0.027-DD01)
id 431C3C6200A741D1 for [email protected]; Thu, 15 Sep 2005 19:51:12 +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 <[email protected]>;
Thu, 15 Sep 2005 19:51:12 +0200 (CEST)
Received: from [151.80.10.243] (unknown [151.80.10.243])
by smtp2.libero.it (Postfix) with ESMTP id 2E75CA8C1E
for <[email protected]>; Thu, 15 Sep 2005 19:50:28 +0200 (MEST)
From: [email protected]
Reply-to: [email protected]
To: Calcolo Mail list <[email protected]>
Subject: buona!
Date: Thu, 15 Sep 2005 19:50:26 +0300
Message-ID: <[email protected]>
X-Mailer: Symbian OS Email Version 7.0
MIME-Version: 1.0
Content-Language: i-default
Content-Type: multipart/mixed;
boundary="EPOC32-sTHHRXFD45-3LLF8qd1bmFb6Fl_cx55hKz4h0kStPfdSYk,-"
( continua … )
Dael Maselli – Servizio di Calcolo – [email protected]
Sendmail – 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_cx55hKz4h0kStPfdSYk,Content-Type: text/plain; charset=UTF-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
EMail sent via mobile phone.
Please reply to:
[email protected]
--EPOC32-sTHHRXFD45-3LLF8qd1bmFb6Fl_cx55hKz4h0kStPfdSYk,Content-Type:
application/octet-stream
Content-Disposition: attachment;
filename="Argentario20050910(006).jpg"
Content-Transfer-Encoding: base64
<MIME Encoded Attachment>
--EPOC32-sTHHRXFD45-3LLF8qd1bmFb6Fl_cx55hKz4h0kStPfdSYk,-
Dael Maselli – Servizio di Calcolo – [email protected]
Antivirus & 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 dell’arrivo di un messaggio;

Il mail viene passato al milter che lo analizza come vuole e
restituisce ACCEPT o REJECT, in quest’ultimo 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.
Dael Maselli – Servizio di Calcolo – [email protected]
Fine
Servizio di Calcolo
Laboratori Nazionali di Frascati
Istituto Nazionale di Fisica Nucleare
Dael Maselli – Servizio di Calcolo – [email protected]
Scarica

E-Mailing