Obiettivo
Configurare POSTFIX come server
SMTP in modo che permetta previa autenticazione di inviare mail da un client di
posta elettronica connesso dall’esterno della rete locale (escludere la
soluzione del Webmail), in altre parole avere la possibilità di usare un mail
server come relay, anche dall’esterno della propria LAN, autenticadosi su di
esso.
Implementazione di eventuali
protocolli di crittografia per rendere più sicura la transazione SMTP.
Soluzione
Attualmente per inviare un
messaggio di posta, un MUA (mail user agent ossia un client di posta) se il
computer è all’interno della rete dipartimentale, il server SMTP postfix riceve
il messaggio e lo invia a destinazione. Il server SMTP è configurato a non
accettare messaggi da inviare ad altri da computer esterni alla rete
dipartimentale. In questo modo si evita il problema degli Open Relay ossia
server SMTP che permettono a chiunque in internet di inviare posta a chiunque altro,
usati principalmente da chi invia spam e virus.
La soluzione a questo problema è
che quando un MUA deve inviare un messaggio di posta, crea un canale sicuro di
comunicazione con il server SMTP via SSL/TLS, si autentica presso il server
tramite username e password, ed invia il messaggio. Quindi il server SMTP
agisce da relay aperto solo per i client che si sono autenticati con successo.
La soluzione da implementare è SASL, Postfix con supporto per SASL e TLS e
OpenSSL.
In pratica la procedura da seguire in sequenza è:
1. installare e configurare SASL
2. installare e configurare Postfix con supporto SASL e TLS
3. installare OpenSSL
4. creare i certificati digitali
Tipi di implemetazioni di SASL
con e senza TLS:
·
SASL (login, plain) + TLS
·
SASL
(ntlm, login, plain, digest-md5, cram-md5) + TLS
· SASL (cram-md5): se il client non supporta uno dei meccanismi proposti la connessione sarà rifiutata.
I meccanismi di autenticazione supportati da SASL sono molteplici (ntlm, login, plain, digest-md5, cram-md5, …) : è stato scelto quello denominato PLAIN e LOGIN per la sua capacità di legarsi alle librerie PAM ossia saslauthd (demone di SASL) per interagire con PAM utilzza solo i meccanismi Plain e Login. Tra SASL e PAM si inserisce saslauthd, un servizio che gestisce le richieste di autenticazione di tipo PLAIN o LOGIN inoltrate alle librerie SASL. Pluggable Authentication Module (PAM) è un’Api generica per servizi legati all’autenticazione che permette di aggiungere nuovi metodi con la semplice installazione di nuovi moduli. Le policy di autenticazione sono ottenute con un file di configurazione di poche righe per ogni metodo scelto.
·
postfix 2.1.5-9ubuntu3 A high-performance mail
transport agent
·
postfix-tls
2.1.5-9ubuntu3 TLS and SASL support for Postfix
·
libsasl2 2.1.19-1.5ubun Authentication
abstraction library
·
libsasl2-modul 2.1.19-1.5ubun Pluggable
Authentication Modules for SASL
·
sasl2-bin 2.1.19-1.5ubun Programs for manipulating
the SASL users dat
·
openssl
·
linux UBUNTU vers. 5.04
Introduzione
Simple Mail Transfer Protocol (SMTP) è il protocollo utilizzato per trasmettere messaggi di posta elettronica tra due host.
SMTP utilizza il protocollo di trasporto TCP, ed in particolare un SMTP server rimane costantemente in ascolto sulla porta 25. Il server SMTP si occupa poi di trasferire i messaggi nelle caselle di posta (mailbox) dei destinatari, oppure qualora non fosse il diretto responsabile di queste, inoltrarli (operazione di relay) al server che provvederà.
I protocolli su cui si basa la distribuzione dei messaggi di posta elettronica non sono stati creati con sufficienti misure di sicurezza ed in particolare di autenticazione. La mancanza della certezza di chi sia il mittente di un messaggio, o anche solo da quale server il messaggio sia stato originato, rende possibili molti dei problemi attuali, dalla diffusione dei virus allo spam. Attualmente non sembra che in tempi brevi si possano adottare standard e protocolli completamente nuovi che risolvono questi problemi. Quello che invece stà lentamente succedendo è che vengono prese delle misure e fatte delle piccole modifiche o aggiunte ai protocolli esistenti per ridurre per quanto possibile i problemi. Una delle limitazioni del protocollo originale SMTP è che non è adeguatamente programmato per l’autenticazione, o verifica delle identità, dei mittenti. Per ovviare a questo problema è stata sviluppata un’estensione chiamata SMTP-AUTH.
SSL (secure socket layer) e TLS (transport layer security) sono due protocolli per la certificazione e la comunicazione cifrata. SSL è stato sviluppato da Netscape; TLS è l’evoluzione del primo, come standard pubblicato da IETF.
Le specifiche di sicurezza SASL e TLS consentono di usare un mail server come relay, anche dall’esterno della propria LAN, autenticandosi su di esso.
Il protocollo Transport Layer Security (TLS) permette
comunicazioni client-server garantendo l’integrità e la riservatezza dei dati.
Il protocollo SMTP, qualora usi l’estensione starttls, viaggia incapsulato in
TLS.
Simple Authentication and Security Layer (SASL)
è un metodo per aggiungere un supporto di autenticazione ai protocolli di rete,
ed eventualmente negoziare un layer di sicurezza per le comunicazioni
successive. Un’implementazione è fornita dalle librerie cyrus-sasl che offrono
diversi meccanismi di autenticazione (PLAIN, LOGIN, NTLM, CRAM-MD5, DIGEST-MD5
ecc.); per una lista completa si veda http://www.iana.org/assignments/sasl-mechanisms
I meccanismi PLAIN e LOGIN sono
insicuri in quanto prevedono la comunicazione in chiaro della password.
I client di posta più diffusi supportano come autenticazione SMTP i seguenti metodi:
·
Outlook Express: LOGIN, PLAIN, NTLM.
·
Eudora: preferibilmente CRAM-MD5 in alternativa LOGIN, PLAIN.
·
Mozzilla Thunderbird: CRAM-MD5, LOGIN, PLAIN.
Per il protocollo SSL/TLS i certificati sono validi quando il server dimostra di possedere la chiave privata corrispodente a quella pubblica presente nel certificato, l’utente tramite il MUA decide se il certificato appartiene o meno al server mail a cui si vuole connettere.
In altre parole all’atto della connessione, il server presenta al client il suo certificato. Se il certificato è valido e il client “si fida” della CA che lo ha emesso, la sessione può continuare. Opzionalmente, il server può richiedere che anche il client dimostri la propria identità.
I certificati digitali hanno di solito una durata di un anno (buona politica di sicurezza) e si dividono in due grandi categorie:
1.
quelli self-signed,
ossia firmati con la stessa chiave privata associata alla chiave pubblica
presente nel certificato
2.
quelli firmati
da un ente certificatore, detto comunemente CA.
Postfix implementa le specifiche di sicurezza permettendo l’autenticazione sicura sia in modalità server (rispetto ad un Mail User Agent) che in modalità client (rispetto ad altri Mail Transport Agent) e la connessione sicura tra client e server.
In particolare la specifica SMTP
AUTH (RFC 2554) si basa su SASL (RFC 2222) e la specifica SMTP STARTTLS (RFC
2487) si basa su TLS (RFC 2246).
POSTFIX come server SMTP supporta i seguenti standards:
·
RFC 821 (SMTP protocol)
·
RFC 1123 (Host requirements)
·
RFC 1652 (8bit-MIME transport)
·
RFC 1869 (SMTP service extensions)
·
RFC 1870 (Message Size Declaration)
·
RFC 1985 (ETRN command)
·
RFC 2034 (Enhanced Status Codes)
·
RFC 2554 (AUTH command)
·
RFC 2821 (SMTP protocol)
·
RFC 2920 (SMTP Pipelining)
·
RFC 3207 (STARTTLS command)
·
RFC 3461 (SMTP DSN Extension)
·
RFC 3463 (Enhanced Status Codes)
Postfix è integrabile con
diversi sistemi di autenticazione e sul sito ufficiale del pacchetto http://www.postfix.org è presente anche
la documentazione per implementare diverse funzioni.
Tutti i programmi che compongono
Postifix possono essere eseguiti in una “gabbia chroot” (chroot jail) ovvero in
una porzione ristretta del filesystem. Sebbene questa modalità operativa non
sia una garanzia assoluta di sicurezza si aggiunge in questo modo una barriera
di difesa.
Postfix di default non permette
l’invio di posta da parte di client e domini sconosciuti ovvero non è un open
relay.
Il file /etc/postfix/master.cf
descrive come gestire i demoni che costituiscono Postfix.
Quasi tutte le opzioni di
configurazione di Postifix si trovano nel file /etc/postfix/main.cf
(vedere il riquadro sottostante che riporta alcuni parametri principali).
# esempio di configurazione di Postfix in
/etc/postfix/main.cf
# nome completo dell’host
myhostname =
pingu.mrhark.it
# nome del dominio
mydomain = mrhark.it
# il banner riportato da postfix quando lo si contatta
smtpd_banner = $myhostname ESMTP $mail-name ($mail_version)
# permette di specificare il dominio da usare per la posta
inviata da questo server,
# il valore di default è $myhostname
myorigin = $mydomain
# indica i domini che il sistema riconosce come locali e
che pertanto non invia ad un altro server
mydestination =
$myhostname, localhost.$mydomain, $mydomain
# indica gli indirizzi IP che sono autorizzati a spedire
mail
# per reti più ampie aggiungere le relative sottoreti
usando le maschere opportune
mynetworks = 127.0.0.0/8,
192.168.0.0/24
# indica il server SMTP a cui veranno inviate le mail in
uscita
relayhost =
mail.libero.it
# disabilita il comando VRFY che permette la verifica di
indirizzi email sul server
disable_vrfy_command =
yes
# restrizione per chi spedisce una mail
smtpd_sender_restrictions
= permit_mynetworks, permit_sasl_authenticated, reject_unknown_sender_domanin
# definisce i server usati per il controllo anti-spam
smtpd_rbl_domains = blackholes.mail-abuse.org,
dialups.mail-abuse.org, rbl.maps.vix.com, dul.maps.vix.com
Postfix prevede dei comandi di amministrazione ad esempio:
·
postfix start per avviarlo
·
postfix stop per femarlo
·
postfix reload per ricaricare i file di
configurazione
·
postfix check controlla che l’installazione sia
corretta
·
postqueue –p visualizza tutte le code
·
postconf utility di configurazione
·
postsuper –d ALL elimina tutte le code
CONFIGURAZIONI
SASL
La configurazione di SASL è molto semplice, basta modificare il file /usr/lib/sasl2/smtpd.conf, se non esiste bisogna crearlo, ad esempio come indicato nel riquadro sottostante, e lanciare il programma indicando quale base dati usare per l'autenticazione: ad esempio si può lanciare saslauthd con l'opzione -a shadow (es. /usr/sbin/sasauthd –m /var/run/saslauthd/mux –a shadow), oppure -a pam, oppure -a ldap, eccetera. Di solito si usa la stessa base dati ove sono le credenziali degli utenti usate per l'accesso ai servizi POP3/IMAP4.
Le librerie di SASL permettono
più metodi di autenticazione che sono contenute in /usr/lib/sasl2. Installando le librerie SASL di default, si avrà un
link simbolico:
/usr/lib/sasl2 à
/usr/local/lib/sasl2 .
# esempio di Configurazione di SASL in /usr/lib/sasl2/smtpd.conf
# permette di utlizzare il demone SASL denominato saslauthd
pwcheck_method: saslauthd
# attiva solo questi meccanismi SASL per postfix
mech_list: plain login
Configurare il demone saslauthd
in modo che autentichi gli utenti tramite per esempio PAM. In questo caso
occorre configurare il demone saslauthd
modificando il file /etc/default/saslauthd
in questo modo:
# esempio di Configurazione di SASLAUTHD in /etc/default/saslauthd
# avvio automatico di saslauthd
START=yes
# specifica il meccanismo di autenticazione (si può usare anche
shadow, sasldb), …)
MECHANISMS=pam
# passaggio di parametri
PARAMS=”-m /var/spool/postfix/etc”
Per connettersi al demone saslauthd i programmi comunicano
tramite un socket che il demone stesso mette in /var/run/saslauthd/mux.
Il demone smtpd gira in modalità
chroot, si può verificare la riga
smtp inet n - - - - smtpd contenuta in /etc/postfix/master.cf; il quinto campo
rappresenta il chroot, un –
significa che gira in modo chroot, una n
significa che gira in modo non chroot). Quindi in questo caso si deve creare la
directory /var/spool/postfix/var/run/saslauthd
con permessi 0710 e del gruppo
postfix e poi fare il link simbolico:
/var/run/saslauthd à /var/spool/postfix/var/run/saslauthd
Bisogna eseguire codesti comandi:
/etc/init.d/saslauthd stop
mkdir
/var/spool/postfix/var/run/saslauthd
chmod 0710
/var/spool/postfix/var/run/saslauthd
chgrp postfix
/var/spool/postfix/var/run/saslauthd
rmdir /var/run/saslauthd
ln –s
/var/spool/postfix/var/run/saslauthd /var/run/saslauthd
a questo punto si può avviare il demone saslauthd:
/etc/init.d/saslauthd start
Postfix e SASL
I parametri principali per configurare postfix ad utilizzare SASL per l'autenticazione degli utenti sono indicati nel riquadro sottostante.
# esempio di configurazione SASL per postfix in /etc/postfix/main.cf
# abilita il suporto SASL in Postfix
smtpd_sasl_auth_enable = yes
# permette di utilizzare SASL a vecchi client di posta elettronica
Microsoft
broken_sasl_auth_clients = yes
# non permette autenticazioni anonime
smtpd_sasl_security_options
= noanonymous
# abilita SASL per il dominio
smtpd_sasl_local_domain
= $mydomain
#
# permette a qualunque host di collegarsi al mail server
smtpd_client_restrictions
= reject_unknown_client
# consente il relay ai clients che si sono autenticati e ai
clients dela LAN
# in altre parole consente il relay a chi è autenticato SASL, a
connessioni provenienti
# dalla network locale ed a mail dirette a host per il quale
riceve la posta
# reject_unauth_destination si usa per negare la consegna di mail
per le quali la
# destinazione non sia altrove consentita quindi accetta mail
destinate esclusivamente
# agli host dell’opzione
mydestination
smtpd_recipient_restrictions
= permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination ……
Se non esiste il file
/etc/postfix/sasl/smtpd.conf bisogna crearlo inserendo la seguente riga: pwcheck_method: saslauthd
test SASL
Dopo il comando EHLO se il server supporta il
meccanismo AUTH vengono presentati i
metodi supportati dal server. Il client dovrà rispondere con il metodo
selezionato e poi iniziare l’autenticazione.
Esempio per testare il funzionamento di SASL (“S” = server,
“C” = client):
Di seguito viene mostrato un metodo per codificare una stringa in base64 che sarà utilizzata per autenticarsi in modalità plain:
# perl –MMIME::Base64 –e ‘print
encode_base64(“test\0test\0testpass”);’
dGVzdAB0ZXN0AHRlc3RwYXNz codesta stringa rappresenta la
codifica base64 di una username e password esistente ossia
“username\0username\0password” (\0 è il carattere nullo)
# telnet
localhost 25
Trying 127.0.0.1…
Connected to localhost.localdomain.
Escape character is ‘^]’.
S: 220 Alle.CE.UniPR.IT ESMTP Postfix (Ubuntu)
C: ehlo ludgia
S: 250-Alle.CE.UniPR.IT
S: 250-PIPELINING
S: 250-SIZE 10240000
S: 250-VRFY
S: 250-ETRN
S: 250-AUTH
NTLM LOGIN PLAIN DIGEST-MD5 CRAM-MD5
S: 250-AUTH=NTLM LOGIN PLAIN DIGEST-MD5
CRAM-MD5
S: 250 8BITMIME
C: auth plain dGVzdAB0ZXN0AHRlc3RwYXNz
S: 235 Authentication successful
C: quit
S: 221 Bye
Connection closed by foreign host.
Di seguito viene mostrato un esempio di autenticazione SASL
tramite invio email da client di posta collegato ad una rete esterna alla LAN digitando
una username corretta e una password errata:
contenuto in /var/log/auth.log
Dec 5
16:08:43 Alle saslauthd[10941]: (pam_unix) authentication failure; logname=
uid=0 euid=0 tty= ruser= rhost=
user=ludgia
Dec 5
16:08:45 Alle saslauthd[10941]: DEBUG: auth_pam: pam_authenticate failed:
Authentication failure
Dec 5
16:08:45 Alle saslauthd[10941]: do_auth
: auth failure: [user=ludgia] [service=smtp] [realm=CE.UniPR.IT]
[mech=pam] [reason=PAM auth error]
contenuto in /var/log/mail.log
Dec 5
16:08:27 Alle postfix/smtpd[6696]: connect from unknown[192.167.18.85]
Dec 5
16:08:45 Alle postfix/smtpd[6696]: warning: unknown[192.167.18.85]: SASL LOGIN
authentication failed
Dec 5
16:13:17 Alle postfix/smtpd[6696]: lost connection after AUTH from
unknown[192.167.18.85]
Dec 5
16:13:17 Alle postfix/smtpd[6696]: disconnect from unknown[192.167.18.85]
Di seguito viene mostrato un esempio di autenticazione SASL
tramite invio email da client di posta collegato ad una rete esterna alla LAN digitando
una username e una password corretta:
contenuto in /var/log/mail.log
Dec 5
16:25:28 Alle postfix/smtpd[8279]: connect from unknown[192.167.18.85]
Dec 5
16:25:36 Alle postfix/smtpd[8279]: EACE5DFBAF: client=unknown[192.167.18.85],
sasl_method=LOGIN, sasl_username=ludgia@CE.UniPR.IT
Dec 5
16:25:38 Alle postfix/cleanup[8294]: EACE5DFBAF:
message-id=<43945BD2.8020900@alle.ce.unipr.it>
Dec 5
16:25:38 Alle postfix/qmgr[4412]: EACE5DFBAF:
from=<ludgia@alle.ce.unipr.it>, size=684, nrcpt=3 (queue active)
Dec 5
16:25:38 Alle postfix/smtpd[8279]: disconnect from unknown[192.167.18.85]
Dec 5
16:25:38 Alle postfix/local[8299]: EACE5DFBAF:
to=<ludgia@alle.ce.unipr.it>, relay=local, delay=2, status=sent
(delivered to mailbox)
Dec 5
16:25:38 Alle postfix/smtp[8298]: EACE5DFBAF: to=<ulisse@libero.it>,
relay=smtp.unipr.it[160.78.48.173], delay=2, status=sent (250 2.0.0
jB5FPJaS000885 Message accepted for delivery)
Dec 5
16:25:38 Alle postfix/smtp[8298]: EACE5DFBAF: to=<socrate@med.unibs.it>,
relay=smtp.unipr.it[160.78.48.173], delay=2, status=sent (250 2.0.0
jB5FPJaS000885 Message accepted for delivery)
Dec 5
16:25:38 Alle postfix/qmgr[4412]: EACE5DFBAF: removed
Creazione di un certificato
autofirmato
Teoricamente, il certificato che identifica e garantisce l’identità del servizio che si gestisce, deve essere fornito da un’autorità di certificazione (ufficiale). In alternativa è possibile generare in proprio un certificato autofirmato (certificato fittizio) che attiva il servizio ma non si può dimostare di essere chi si afferma di essere.
I passi da seguire sono:
1.
Creazione di una nostra
Certification Authority (CA)
2.
Creazione di un certificato per il
server
3.
Firmare il certificato del server
con la nostra CA
Se si decide di utilizzare una CA riconosciuta dovremo
procedere solo con i passi 2 e 3, mentre
Dapprima bisogna creare alcune directory:
# mkdir
/etc/sslcerts
# cd
/etc/sslcerts
# mkdir
demoCA
# mkdir
demoCA/private
# mkdir
demoCA/newcerts
# echo “
# touch
demoCA/index.txtc
Il common name deve
essere l’hostname completo del server, ossia quello che abbiamo inserito nella
variabile $myhostname del
file di configurazione di Postfix
Ora creiamo una CA nostra che ci servirà
successivamente a firmare il certificato:
# openssl req –new
–x509 –keyout
demoCA/private/cakey.pem –out
demoCA/cacert.pem –days 365
Generating a 1024 bit RSA
private key
…............++++++
..++++++
writing new private key to
‘demoCA/private/cakey.pem’
Enter PEM pass phrase:
Verifying – Enter PEM pass
phrase:
You are about to be asked
to enter information that will be incorporated
into your certificate
request.
What you are about to enter
is what is called a Distinguished Name or a DN.
There are quite a few
fields but you can leave some blank
For some fields there will
be a default value,
If you enter ‘.’, the field
will be left blank.
Country Name (2 letter
code) [AU]:IT
State or Province Name
(full name) [Some-State]:italia
Locality Name (eg, city)
[]:
Organization Name (eg,
company) [Internet Widgits Pty Ltd]:università
di
Organizational Unit Name
(eg, section) []:dipartimento di
informatica
Common Name (eg, YOUR name)
[]:alle.ce.unipr.it
Email Address []:admin@unipr.it
creiamo la
richiesta di certificato:
# openssl
req –new –nodes
–keyout newreq.pem –out
newreq.pem -days 365
Generating a 1024 bit RSA
private key
…..........++++++
…++++++
writing new private key to
‘newreq.pem’
You are about to be asked
to enter information that will be incorporated
into your certificate
request.
What you are about to enter
is what is called a Distinguished Name or a DN.
There are quite a few
fields but you can leave some blank
For some fields there will
be a default value,
If you enter ‘.’, the field
will be left blank.
Country Name (2 letter
code) [AU]:IT
State or Province Name
(full name) [Some-State]:italia
Locality Name (eg, city)
[]:
Organization Name (eg,
company) [Internet Widgits Pty Ltd]:università
di
Organizational Unit Name
(eg, section) []:dipartimento di
informatica
Common Name (eg, YOUR name)
[]:alle.ce.unipr.it
Email Address []:admin@unipr.it
Please enter the following
‘extra’ attributes
to be sent with your
certificate request
A challenge password []:testpass78
An optional company name
[]:
creiamo il
certificato firmato dalla nostra CA:
# openssl ca
–policy policy_anything –out
newcert.pem –infiles newreq.pem
Using configuration from
/usr/lib/ssl/openssl.cnf
Enter pass phrase for
./demoCA/private/cakey.pem:
unable to load CA private key
17345:error:06065064:digital envelope
routines:EVP_DecryptFinal:bad decrypt:evp_enc.c:450:
17345:error:0906A065:PEM
routines:PEM_do_header:bad decrypt:pem_lib.c:423:
root@Alle:/etc/sslcerts # openssl ca –policy
policy_anything –out newcert.pem –infiles newreq.pem
Using configuration from
/usr/lib/ssl/openssl.cnf
Enter pass phrase for
./demoCA/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number: 1 (0x1)
Validity
Not Before: Dec 5 17:00:00 2005
GMT
Not After : Dec 5 17:00:00 2006
GMT
Subject:
countryName = IT
stateOrProvinceName = italia
localityName =
organizationName = universit\E0 di parma
organizationalUnitName = dipartimento di informatica
commonName = alle.ce.unipr.it
emailAddress = admin@unipr.it
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
63:0B:A6:A3:99:04:E1:7E:22:13:7D:65:B0:AC:4D:A6:81:E3:88:E6
X509v3 Authority Key
Identifier:
keyid:BD:2C:0A:7C:BC:65:51:C7:5C:91:04:D5:B8:15:44:C0:2E:63:C9:B8
DirName:/C=IT/ST=italia/L=parma/O=universit\xE0 di parma/OU=dipartimento
di informatica/CN=dipinfo/emailAddress=admin@unipr.it
serial:D1:87:D0:B1:37:96:9F:5E
Certificate is to be certified until Dec 5 17:00:00 2006 GMT (365 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified,
commit? [y/n]y
Write out database with 1 new entries
Data
Base Updated
Spostiamo il certificato della nostra CA e cambiamo i
permessi ai certificati generati:
# mv
demoCA/cacert.pem ./
# chmod
600 newreq.pem newcert.pem cacert.pem
I certificati generati sono non criptati (-nodes) e privi di password (-keyout) questo poiché risiederanno sul server leggibili solo
da root, ma in particolare privi di password poiché se la password fosse
presente, ogni volta che si riavviasse il computer server, il servizio che ne
fa uso attenderebbe l’inserimento della password attraverso il prompt prima di
attivarsi.
Il protocollo SMTP può non essere, in generale, un meccanismo end-end (è possibile che una e-mail attraversi più di un mail server fino alla destinazione). Pertanto l’implementazione di TLS fra due hop non rende sicuro tutto l’invio della mail, in quanto esiste parte del cammino in cui i dati viaggiano in chiaro. La soluzione consiste nella configurazione di ciascun hop con TLS o nella ricerca di misure alternative. Per quanto concerne la comunicazione fra client e server, essa avviene comunque su un livello criptato che assicura la segretezza indipendentemente dallo stato degli altri host.
Postfix e TLS
Innanzitutto abbiamo bisogno di un certificato digitale per postfix. In realtà dobbiamo avere 3 file: il certificato digitale della CA, il certificato digitale per postfix, ed il file contenente la relativa chiave privata non cifrata (altrimenti dobbiamo digitare la passphrase ad ogni attivazione di postfix). Mettiamo questi 3 file nella directory di configurazione di postfix, /etc/postfix/, ed aggiungiamo le relative configurazioni al file /etc/postfix/main.cf come indicato nel riquadro sottostante:
# esempio di configurazione TLS per postfix in /etc/postfix/main.cf
# abilita il suportoTLS in Postfix
smtpd_use_tls = yes
# si può usare l’autenticazione SASL solo se si utilizza TLS
smtpd_tls_auth_only =
yes
# indica dove sono i certificati che sono
stati generati per esempio con openssl
smtpd_tls_key_file = /etc/postfix/server_key.pem
smtpd_tls_cert_file = /etc/postfix/server_crt.pem
smtpd_tls_Cafile = /etc/postfix/cacert.pem
# da
smtpd_tls_loglevel = 2
# richiede che il server postfix SMTP esibisce
Ricevuto per le intestazioni di messaggi
# e per la chiave usata
smtpd_tls_received_header
= yes
# tempo di durata nella cache
dell’informazione di una sessione TLS
smtpd_tls_session_cache_timeout = 3800s
# indica la fonte di valori casuali nel
processo di crittografia
tls_random_source = dev:/dev/urandom
# per proteggersi da attacchi attivi
smtpd_sasl_tls_security_options
= $smtpd_sasl_security_option
Si può pensare di abilitare il protocollo criptato sulla porta 465, e anche l’autenticazione; invece sulla porta 25 si potrebbe abilitare il protocollo non criptato e quindi non permettere l’autenticazione.
L'autenticazione SASL è accettata solo se protetta da TLS (smtpd_tls_auth_only = yes). Un'alternativa all'uso della porta 25 per l'invio autenticato della posta, è quello dell'uso della porta submission=587 oppure smtps=465. Invece di aggiungere permit_sasl_authenticated ad smtpd_recipient_restrictions, si può modificare il file /etc/postfix/master.cf come indicato nel riquadro sottostante. In questo modo postfix accetterà la posta autenticata solo sulle porte 587 e 465, mentre sulla porta 25 fa relay solo per i clients MUA interni. Si noti che sulla porta 465 è attivato un TLS-wrapping usato da Outlook Express.
# per
far usare TLS ed abilitare l’autenticazione SASL se non specificato in
# main.cf
# esempio
di Configurazione porte di relay sicuro
in /etc/postfix/master.cf
#
==========================================================================
# service
type private unpriv
chroot wakeup maxproc
command + args
# (yes) (yes)
(yes) (never) (50)
#
==========================================================================
smtps inet n
- y -
- smtpd -o\
smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
submission
inet n -
y - -
smtpd -o\
smtpd_enforce_tls=yes -o
smtpd_sasl_auth_enable=yes
Test TLS
Nel riquadro sottostante è riportato un esempio per
testare il funzionamento di TLS (“S” = server, “C” = client):
#
telnet localhost 25
Trying
127.0.0.1…
Connected
to localhost.localdomain.
Escape
character is ‘^]’.
S:
220 Alle.CE.UniPR.IT ESMTP Postfix (Ubuntu)
C:
ehlo ludgia
S:
250-Alle.CE.UniPR.IT
S:
250-PIPELINING
S:
250-SIZE 10240000
S:
250-VRFY
S:
250-ETRN
S:
250-STARTTLS
S:
250-AUTH NTLM LOGIN PLAIN DIGEST-MD5 CRAM-MD5
S:
250-AUTH=NTLM LOGIN PLAIN DIGEST-MD5 CRAM-MD5
S:
250 8BITMIME
C:
starttls
S:
220 Ready to start TLS
Nel riquadro sottostante è riportato un esempio di sessione
criptata e memorizzata in /var/log/mail.log, generata inviando e-mail da un
client di posta remoto:
Dec 5 19:55:49 Alle postfix/smtpd[28855]: starting TLS engine
Dec 5 19:55:49 Alle postfix/smtpd[28855]: connect
from unknown[192.167.18.85]
Dec 5 19:55:49 Alle postfix/smtpd[28855]: setting
up TLS connection from unknown[192.167.18.85]
Dec 5 19:55:49 Alle postfix/smtpd[28855]:
SSL_accept:before/accept initialization
Dec 5 19:55:49 Alle postfix/smtpd[28855]: read
from 08081F40 [080925F0] (11 bytes => -1 (0xFFFFFFFF))
Dec 5 19:55:49 Alle postfix/smtpd[28855]:
SSL_accept:error in SSLv2/v3 read client hello A
Dec 5 19:55:49 Alle postfix/smtpd[28855]: read
from 08081F40 [080925F0] (11 bytes => 11 (0xB))
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0000 16
03 01 00 53 01 00 00|4f 03 01 ….S…
O..
Dec 5 19:55:49 Alle postfix/smtpd[28855]: read
from 08081F40 [080925FB] (77 bytes => -1 (0xFFFFFFFF))
Dec 5 19:55:49 Alle postfix/smtpd[28855]:
SSL_accept:error in SSLv3 read client hello B
Dec 5 19:55:49 Alle postfix/smtpd[28855]:
SSL_accept:error in SSLv3 read client hello B
Dec 5 19:55:49 Alle postfix/smtpd[28855]: read
from 08081F40 [080925FB] (77 bytes => 77 (0x4D))
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0000 00
00 79 db 75 bf 59 e9|e0 91 17 1c
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0010 61
ce
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0020 00
00 28 00 39 00 38 00|35 00 33 00 32 00 04 00
..(.9.8. 5.3.2…
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0030 05
00
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0040 fe
00 09 00 64 00 62 00|03 00 06 01
….d.b. ….
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 004d -
<SPACES/NULS>?
Dec 5 19:55:49 Alle postfix/smtpd[28855]:
SSL_accept:SSLv3 read client hello B
Dec 5 19:55:49 Alle postfix/smtpd[28855]:
SSL_accept:SSLv3 write server hello A
Dec 5 19:55:49 Alle postfix/smtpd[28855]:
SSL_accept:SSLv3 write certificate A
Dec 5 19:55:49 Alle postfix/smtpd[28855]:
SSL_accept:SSLv3 write key exchange A
Dec 5 19:55:49 Alle postfix/smtpd[28855]:
SSL_accept:SSLv3 write server done A
Dec 5 19:55:49 Alle postfix/smtpd[28855]: write
to 08081F40 [080A0740] (1587 bytes => 1587 (0x633))
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0000 16
03 01 00 4a 02 00 00|46 03 01 43 94 8d 35 7c
….J… F..C..5|
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0010 58
0b
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0020 90
6b e8 6e
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0030 a3
e8 b2 0d 36 e3 50 05|87 f0 b1 18 4e 80 4a 3e
….6.P. ….N.J>
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0040 b2
22 2b 4b 43 67 be 45|56 cd 3c 50 00 39 00 16
.”+KCg.E V.<P.9..
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0050 03
01 04 44 0b 00 04 40|00 04 3d 00 04 3a 30 82
…D…@ ..=..:0.
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0060 04
36 30 82 03
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0070 06
09 2a 86 48 86 f7 0d|01 01 04 05 00 30 81 b8
..*.H… …..0..
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0080 31
0b 30 09 06 03 55 04|06 13 02 49 54 31
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0090 0d
06 03 55 04 08 13 06|69 74 61 6c 69 61 31 0e
…U…. italia1.
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 00a0 30
0c 06 03 55 04 07 13|05 70 61 72 6d 61 31 1c
0…U… .parma1.
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 00b0 30
1a 06 03 55 04 0a 14|13 75 6e 69 76 65 72 73
0…U… .univers
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 00c0 69
74 e0 20 64 69 20 70|61 72 6d 61 31 24 30 22
it. Di p arma1$0”
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 00d0 06
03 55 04 0b 13 1b 64|69 70 61 72 74 69 6d 65
..U….d ipartime
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 00e0 6e
74
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 00f0 63
61 31 10 30 0e 06 03|55 04 03 13 07 64 69 70
ca1.0… U….dip
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0100 69
6e 66
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0110 01
09 01 16 23 6c 75 64|6f 76 69 63
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0120 61
6e 6e 69 6e 69 40 73|74 75 64 65 6e 74 69 2e
annini@s tudenti.
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0130 75
6e 69 70 72 2e 69 74|30 1e 17 0d 30 35 31 32
unipr.it 0…0512
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0140 30
35 31 37 30 30 30 30|5a 17 0d 30 36 31 32 30
05170000 Z..06120
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0150 35
31 37 30 30 30 30 5a|30 81 b8 31 0b 30 09 06
5170000Z 0..1.0..
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0160 03
55 04 06 13 02 49 54|31
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0170 08
13 06 69 74 61 6c 69|61 31 0e 30 0c 06 03 55
…itali a1.0…U
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0180 04
07 13 05 70 61 72 6d|61 31 1c 30 1a 06 03 55
….parm a1.0…U
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0190 04
0a 14 13 75 6e 69 76|65 72 73 69 74 e0 20 64
….univ ersit. D
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 01a0 69
20 70 61 72 6d 61 31|24 30 22 06 03 55 04 0b
i parma1 $0”..U..
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 01b0 13
1b 64 69 70 61 72 74|69 6d 65 6e 74
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 01c0 69
20 69 6e 66
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 01d0 0e
06 03 55 04 03 13 07|64 69 70 69 6e 66
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 01e0 32
30 30 06 09 2a 86 48|86 f7 0d 01 09 01 16 23
200..*.H …....#
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 01f0 6c
75 64
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0200 69
40 73 74 75 64 65 6e|74 69 2e 75 6e 69 70 72
i@studen ti.unipr
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0210 2e
69 74 30 81
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0220 01
01 01 05 00 03 81 8d|00 30 81 89 02 81 81 00
…..... .0…...
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0230 be
53 25 31 04 6b fa 28|cf 99 fa 43 d3
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0240 7a
08 10 a6 dc 3d e3 5b|cb 8e df c5 c8 64 cb be
z….=.[ …..d..
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0250 62
c0 98 e4 09 f2 95 19|34 13 8c f7 df 99 a1 35
b….... 4…...5
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0260 08
39 7c 73 85 66 db 22|08 14 13 bd aa fd 82 77
.9|s.f.” …....w
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0270 c1
00 cf 12 78 5c 39 f0|e8 31 94 b8 c7
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0280 ab
8d 91
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0290 b4
2e 20 c5 c7
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 02a0 d0
15 74 e4 a0 67 07 67|25 fa 73 53 91 89 0c 75
..t..g.g %.sS…u
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 02b0 02
03 01 00 01 a3 82 01|4c 30 82 01 48 30 09 06
…..... L0..H0..
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 02c0 03
55 1d 13 04 02 30 00|30 2c 06 09 60 86 48 01
.U….0. 0,..`.H.
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 02d0 86
f8 42 01 0d 04
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 02e0 20
47 65 6e 65 72 61 74|65 64 20 43 65 72 74 69
Generat ed Certi
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 02f0 66
69 63 61 74 65 30 1d|06 03 55 1d 0e 04 16 04
ficate0. ..U…..
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0300 14
63 0b a6 a3 99 04 e1|7e 22 13 7d 65 b0 ac 4d
.c…... ~”.}e..M
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0310 a6
81 e3 88 e6 30 81 ed|06 03 55 1d 23 04 81 e5
…..0.. ..U.#…
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0320 30
81 e2 80 14 bd 2c 0a|7c bc 65 51 c7 5c 91 04
0…..,. |.eQ.\..
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0330 d5
b8 15 44 c0 2e 63 c9|b8 a1 81 be a4 81 bb 30
…D..c. …....0
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0340 81
b8 31 0b 30 09 06 03|55 04 06 13 02 49 54 31
..1.0… U….IT1
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0350
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0360 31
0e 30 0c 06 03 55 04|07 13 05 70 61 72 6d 61
1.0…U. …parma
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0370 31
1c 30 1a 06 03 55 04|0a 14 13 75 6e 69 76 65
1.0…U. …unive
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0380 72
73 69 74 e0 20 64 69|20 70 61 72 6d 61 31 24
rsit. Di parma1$
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0390 30
22 06 03 55 04 0b 13|1b 64 69 70 61 72 74 69
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 03a0 6d
65 6e 74
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 03b0 74
69 63 61 31 10 30 0e|06 03 55 04 03 13 07 64
tica1.0. ..U….d
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 03c0 69
70 69 6e 66
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 03d0 f7
0d 01 09 01 16 23 6c|75 64
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 03e0 67
69 61 6e 6e 69 6e 69|40 73 74 75 64 65 6e 74
giannini @student
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 03f0 69
2e 75 6e 69 70 72 2e|69 74 82 09 00 d1 87 d0
i.unipr. it…...
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0400 b1
37 96
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0410 01
04 05 00 03 81 81 00|99 2e 39 0d a1 da b2 a5
…..... ..9…..
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0420 cc
bd
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0430 60
f9 91
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0440 a7
57 47 d3 59 36 69 2b|60 f7 f7 ec 57 d7 d0 f5
.WG.Y6i+ `…W…
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0450 b0
62 b4 3e 6d 8d b0 14|9c c3 bc 8b ea 84 d2 eb
.b.>m… ….....
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0460
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0470 4b
0e b3 e2 d3 b7 24 cb|77
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0480 a5
e4 ff 19 b9 89 f3 eb|4d 1b f6 ab 3c 22 d3
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0490 e8
10 22 11 f3 53 86 ff|16 03 01 01 8d 0c 00 01
..”..S.. ….....
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 04a0 89
00 80 b0 fe b4 cf d4|55 07 e7 cc 88 59 0d 17
…..... U….Y..
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 04b0 26
c5 0c a5 4a 92 23 81|78 da 88 aa 4c 13 06 bf
&…J.#. x…L…
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 04c0 5d
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 04d0 7e
71
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 04e0 4c
f1 89 0d 68
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 04f0 90
01 99 66 8c 53 81 4e|27 3d 99 e7 5a 7a af d5
…f.S.N ‘=..Zz..
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0500 ec
e2 7e fa ed 01 18 c2|78 25 59 06 5c 39 f6 cd
..~….. x%Y.\9..
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0510 49
54 af c1 b1 ea 4a f9|53 d0 df 6d af d4 93 e7
IT….J. S..m….
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0520 ba
ae 9b 00 01 02 00 80|89 17 1d 34 53 03 7d 4b
…..... …4S.}K
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0530 1a
18 b0 c5 ef 41
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0540 f3
be 37 c1 c1 7c 6a 49|7a cd 28 0a 18 d9 88
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0550 69
f2 17 2b 4a 34 89 6c|0a b7 07 91 66 fd 9b 70
i..+J4.l ….f..p
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0560 32
61
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0570 19
71 0e 0e 27 ea 60 1c|03 28 b4 40 81 19 f9 70
.q..’.`. .(.@…p
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0580 5e
57 a6 31 6c 56 76 ef|e9 f9 6a ac bd 22 0b 3b
^W.1lVv. ..j..”.;
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0590 ee
bc 74 b1 06 ce 3e d3|5f e0 9b 3a 20 de b3 99
..t…>. _..: …
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 05a0 d2
df 77 bb 0a 4b 63 d7|00 80 74 7c af c7 a7 eb
..w..Kc. ..t|….
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 05b0 4e
20 18 95 07 97 15 a6|bd 2a e7 51 00
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 05c0 56
0d 0b 5c a8 d1 67 f9|42 b1 23 f1 70 37 bb 43
V..\..g. B.#.p7.C
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 05d0 86
61 f1 cb 24
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 05e0 3e
5d ef 61 2b 76
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 05f0 07
3d ce 53 0c 97 0c 31|72 a8 3d 50 8c 41 19 44
.=.S…1 r.=P.A.D
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0600 3b
45 f8
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0610 6c
be 09 78 79 e4 ba 61|05 85 6e 61 c4 78 72 b0
l..xy..a ..na.xr.
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0620 4b
00 69 ee ed f6 e3 34|1d 52 16 03 01 00 04 0e
K.i….4 .R…...
Dec 5 19:55:49 Alle postfix/smtpd[28855]: 0633 -
<SPACES/NULS>?
Dec 5 19:55:49 Alle postfix/smtpd[28855]:
SSL_accept:SSLv3 flush data
Dec 5 19:55:49 Alle postfix/smtpd[28855]: read
from 08081F40 [080925F0] (5 bytes => -1 (0xFFFFFFFF))
Dec 5 19:55:49 Alle postfix/smtpd[28855]:
SSL_accept:error in SSLv3 read client certificate A
Dec 5 19:55:51 Alle postfix/smtpd[28855]: read
from 08081F40 [080925F0] (5 bytes => 5 (0x5))
Dec 5 19:55:51 Alle postfix/smtpd[28855]: 0000 16
03 01 00 86 …..
Dec 5 19:55:51 Alle postfix/smtpd[28855]: read
from 08081F40 [080925F5] (134 bytes => -1 (0xFFFFFFFF))
Dec 5 19:55:51 Alle postfix/smtpd[28855]:
SSL_accept:error in SSLv3 read client certificate A
Dec 5 19:55:51 Alle postfix/smtpd[28855]: read
from 08081F40 [080925F5] (134 bytes => 134 (0x86))
Dec 5 19:55:51 Alle postfix/smtpd[28855]: 0000 10
00 00 82 00 80 25 03|81 80 d0 11 bb 17 11 9e
…...%. ….....
Dec 5 19:55:51 Alle postfix/smtpd[28855]: 0010
Dec 5 19:55:51 Alle postfix/smtpd[28855]: 0020 94
c3 b5
Dec 5 19:55:51 Alle postfix/smtpd[28855]: 0030 e5
c3 04 45 dc 47 c0 b2|bd 73 26 63 a0 7d d7 ce
…E.G.. .s&c.}..
Dec 5 19:55:51 Alle postfix/smtpd[28855]: 0040 25
b1 6a e0 c3 3a 8d 92|06 62 ed d0 79 a3 13 4d
%.j..:.. .b..y..M
Dec 5 19:55:51 Alle postfix/smtpd[28855]: 0050
Dec 5 19:55:51 Alle postfix/smtpd[28855]: 0060 14
96 e3 25 14 5a 05 43|e4 1e 0d e8 8d fd 67 92
…%.Z.C …...g.
Dec 5 19:55:51 Alle postfix/smtpd[28855]: 0070 bf
Dec 5 19:55:51 Alle postfix/smtpd[28855]: 0080 f3
03 25 c8 bc aa ..%…
Dec 5 19:55:51 Alle postfix/smtpd[28855]:
SSL_accept:SSLv3 read client key exchange A
Dec 5 19:55:51 Alle postfix/smtpd[28855]: read
from 08081F40 [080925F0] (5 bytes => -1 (0xFFFFFFFF))
Dec 5 19:55:51 Alle postfix/smtpd[28855]:
SSL_accept:error in SSLv3 read certificate verify A
Dec 5 19:55:51 Alle postfix/smtpd[28855]: read
from 08081F40 [080925F0] (5 bytes => 5 (0x5))
Dec 5 19:55:51 Alle postfix/smtpd[28855]: 0000 14
03 01 00 01 …..
Dec 5 19:55:51 Alle postfix/smtpd[28855]: read
from 08081F40 [080925F5] (1 bytes => -1 (0xFFFFFFFF))
Dec 5 19:55:51 Alle postfix/smtpd[28855]:
SSL_accept:error in SSLv3 read certificate verify A
Dec 5 19:55:51 Alle postfix/smtpd[28855]: read
from 08081F40 [080925F5] (1 bytes => 1 (0x1))
Dec 5 19:55:51 Alle postfix/smtpd[28855]: 0000
01 .
Dec 5 19:55:51 Alle postfix/smtpd[28855]: read
from 08081F40 [080925F0] (5 bytes => -1 (0xFFFFFFFF))
Dec 5 19:55:51 Alle postfix/smtpd[28855]:
SSL_accept:error in SSLv3 read certificate verify A
Dec 5 19:55:51 Alle postfix/smtpd[28855]: read
from 08081F40 [080925F0] (5 bytes => 5 (0x5))
Dec 5 19:55:51 Alle postfix/smtpd[28855]: 0000 16
03 01 00 30 ….0
Dec 5 19:55:51 Alle postfix/smtpd[28855]: read
from 08081F40 [080925F5] (48 bytes => -1 (0xFFFFFFFF))
Dec 5 19:55:51 Alle postfix/smtpd[28855]:
SSL_accept:error in SSLv3 read certificate verify A
Dec 5 19:55:51 Alle postfix/smtpd[28855]: read
from 08081F40 [080925F5] (48 bytes => 48 (0x30))
Dec 5 19:55:51 Alle postfix/smtpd[28855]: 0000 87
98 a8 f8 43 57 34 de|93 5a a1 5d 61 6d 67 c6
….CW4. .Z.]amg.
Dec 5 19:55:51 Alle postfix/smtpd[28855]: 0010 1b
48 dd 6e 4d c6 66 2d|aa ed ab
Dec 5 19:55:51 Alle postfix/smtpd[28855]: 0020 15
99 e4 81 11 82 c1 3d|76 09 f9 5d 75 c7 77 88
…....= v..]u.w.
Dec 5 19:55:51 Alle postfix/smtpd[28855]:
SSL_accept:SSLv3 read finished A
Dec 5 19:55:51 Alle postfix/smtpd[28855]:
SSL_accept:SSLv3 write change cipher spec A
Dec 5 19:55:51 Alle postfix/smtpd[28855]:
SSL_accept:SSLv3 write finished A
Dec 5 19:55:51 Alle postfix/smtpd[28855]: write
to 08081F40 [080A0740] (59 bytes => 59 (0x3B))
Dec 5 19:55:51 Alle postfix/smtpd[28855]: 0000 14
03 01 00 01 01 16 03|01 00 30 af 2c 50 41 07
…..... ..0.,PA.
Dec 5 19:55:51 Alle postfix/smtpd[28855]: 0010 d9
32 fb ce
Dec 5 19:55:51 Alle postfix/smtpd[28855]: 0020 59
c1 cc 2e 1d 59 05 c6|bd e5 23 b2 d0 09 30 a7
Y….Y.. ..#…0.
Dec 5 19:55:51 Alle postfix/smtpd[28855]: 0030 77
83 47 ec 34 f5 f4 2b|05 54 2b
w.G.4..+ .T+
Dec 5 19:55:51 Alle postfix/smtpd[28855]:
SSL_accept:SSLv3 flush data
Dec 5 19:55:51 Alle postfix/smtpd[28855]: TLS
connection established from unknown[192.167.18.85]: TLSv1 with cipher
DHE-RSA-AES256-SHA (256/256 bits)
Dec 5 19:55:58 Alle postfix/smtpd[28855]:
EB9E6DFBAF: client=unknown[192.167.18.85], sasl_method=PLAIN,
sasl_username=ludgia@CE.UniPR.IT
Dec 5 19:55:58 Alle postfix/cleanup[28873]: EB9E6DFBAF:
message-id=<43948D1E.3090206@alle.ce.unipr.it>
Dec 5 19:55:58 Alle postfix/qmgr[28437]:
EB9E6DFBAF: from=<ludgia@alle.ce.unipr.it>, size=758, nrcpt=1 (queue
active)
Dec 5 19:55:58 Alle postfix/smtpd[28855]:
disconnect from unknown[192.167.18.85]
Dec 5 19:55:58 Alle postfix/smtp[28874]:
EB9E6DFBAF: to=<socrate@med.unibs.it>,
relay=smtp.unipr.it[160.78.48.163], delay=1, status=sent (250 2.0.0
jB5ItdLX015814 Message accepted for delivery)
Dec 5 19:55:58 Alle postfix/qmgr[28437]:
EB9E6DFBAF: removed
Tener presente che i clients di posta comunicheranno che il certificato non è affidabile perché creato da un’Autorità di Certificazione sconosciuta (non ufficiale).
Successivamente si riporta come esempio le schermate video presentate da Mozilla ThunderBird:


Cliccando su Esamina
certificato si ha la seguente schermata:

Configurazione dei client di posta elettronica più
diffusi per autenticazione SMTP e per sessione criptata SSL/TLS
Configurazione di Microsoft Outlook Express:
1. Avviare Outlook Express
cliccando sull’apposita icona
2. Cliccare su Strumenti e di seguito su Account…
3. Selezionare la propria
casella di posta su Posta elettronica
e di seguito su Proprietà
4. Cliccare su Server ed attivare il flag su Autenticazione del server necessaria
5. Inserire in Posta in uscita SMTP inserire la voce
relativa
6. Cliccare su Impostazioni ed attivare Accesso tramite
7. Inserire il nome account e la password
8. Attivare il flag accesso tramite autenticazione password di
protezione (noto anche come NTLM)
e cliccare su OK
9. Cliccare su Impostazioni avanzate ed attivare il
flag il server necessita di una
connessione protetta (SSL) per la posta in uscita (SMTP)
10.
Infine cliccare su Applica
ed OK
Configurazione di Mozilla Thunderbird:
1. Avviare Mozzilla Thunderbird
cliccando sull’apposita icona
2. Cliccare su Strumenti e di seguito su Impostazioni account…
3. Cliccare nel riquadro di
sinistra su Server in uscita (SMTP)
4. Inserire il nome del server
5. attivare il flag su Utilizza nome utente e password
6. nella sezione Utilizza connessione sicura (SSL)
attivare TLS
7. infine cliccare su OK
Configurazione di Eudora:
1. Avviare Eudora cliccando
sull’apposita icona
2. Cliccare su Tools e di seguito su Options
3. Nel riquadro di sinistra
cliccare su Sending Mail
4. Inserire SMTP server
5. Attivare il flag su Allow authentication e su Immediate send
6. Nel menu a tendina di Secure Sockets when Sending selezionare
Required, STARTTLS
7. Infine cliccare su OK