 |
IMAP (e POP3) sotto SSL
v 2.8
25 Novembre 2001
Roberto Cecchini
English Version
|
Indice
|
Introduzione
Installazione di OpenSSL
Richiesta e installazione del certificato
Installazione di stunnel
Uso di stunnel sul server
Configurazione dei clienti di e-mail (unix)
Configurazione dei clienti di e-mail (windows)
|
| |
|
|
|
Attenzione, questo documento è considerevolmente modificato
rispetto alla versione precedente, per tenere conto delle
novità introdotte con la comparsa di OpenSSL (al posto di
SSLeay) e della nuova versione di
stunnel (3.8).
Una delle novità più importanti e' che ora è
possibile usare anche clienti di e-mail che non supportano SSL (ad
esempio eudora).
La tendenza ormai generale è verso una macchina dedicata alla
gestione della posta -- il mail server -- possibilmente senza
utenza interattiva, che ospita le mailbox di tutti gli utenti.
Un problema grave è quindi quello della trasmissione in
chiaro delle password (e anche del contenuto dei mail, ma a
questo si può rimediare con la crittografia).
A questo proposito Netscape (solo per IMAP) e Outlook (anche POP3)
prevedono la possibilità di un server capace di connessioni
SSL.
Una soluzione parziale è quella di un wrapper SSL. Dei
diversi esistenti quello che ho utilizzato è
stunnel.
|
|
|
La prima cosa da fare è installare
OpenSSL.
- Scompattate il tar file in
/usr/local
- seguite le semplici istruzioni: fondamentalmente
configure, make piattaforma,
make test e make install.
Attenzione: secondo la mia personale (e dolorosa) esperienza
è molto meglio usare il compilatore gnu.
|
|
|
Queste istruzioni valgono solo per nodi .infn.it.
- aggiungete il file di configurazione
srv.cnf in
/usr/local/ssl/lib/ (richieste
in formato non conforme verranno rifiutate).
- generate la richiesta di certificato (la parte in grassetto
è quella che dovete digitare voi, ovviamente con le modifiche
del caso):
> cd /usr/local/ssl/certs
> /usr/local/ssl/bin/openssl req -new -nodes -out req.pem \
-keyout key.pem -config /usr/local/ssl/lib/srv.cnf
Using configuration from /usr/local/ssl/lib/srv.cnf
Generating a 1024 bit RSA private key
............................................................++++++
...................++++++
writing new private key to 'key.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 [IT]:IT
Locality Name []:Firenze
Organization Name [INFN]:INFN
Server type (e.g. www server) [ ]:Server IMAP
Server DNS Name [ ]:postino.fi.infn.it
Server Managers Email Address [ ]:roberto.cecchini@fi.infn.it
> chmod 600 key.pem
- inviate
req.pem alla CA INFN per la firma;
- se già non lo avete procuratevi un certificato
personale;
- spedite la richiesta (come attachment) per mail S/MIME
a infn-ca@fi.infn.it, firmandola con il vostro
certificato personale.
- a stretto giro di posta vi verrà inviato il certificato.
- con un editor create il file
/usr/local/ssl/certs/stunnel.pem ottenuto concatenando
key.pem e il certificato ottenuto. Separate le due parti
con una riga vuota e aggiungete una riga vuota in fondo.
- cancellate
req.pem e key.pem e
proteggete (chmod 600) stunnel.pem, che ora
contiene la chiave privata del server non crittografata.
|
|
|
Seguite le semplici istruzioni.
|
|
|
A differenza di quanto si faceva per la versione 2, è
consigliato l'uso di stunnel come demone. Va quindi lanciato durante
l'inizializzazione con i comandi (il secondo solo se si desiderano
anche connessioni pop3):
> stunnel -d 993 -p /usr/local/ssl/certs/stunnel.pem -r localhost:imap
> stunnel -d 995 -p /usr/local/ssl/certs/stunnel.pem -r localhost:pop
|
|
|
Per i clienti che supportano SSL (Netscape ed Outlook) è
sufficiente modificare le loro configurazioni in modo che utilizzino
le connessioni SSL.
Non è necessario che i browser contengano il certificato della
CA INFN, anche se è ovviamente consigliabile.
Per i clienti che non supportano SSL bisogna procedere in questo modo:
- Installare stunnel sulla macchina client;
- Se si desidera controllare il certificato del server (facoltativo,
ma consigliato), copiare il certificato della CA del server in
/usr/local/ssl/certs/CAcert.pem e dare i comandi:
> cd /usr/local/ssl/certs/
> ln -s CAcert.pem `/usr/local/ssl/bin/openssl x509 \
-noout -hash < CAcert.pem`.0
- Lanciare stunnel con il comando (ad esempio durante lo startup):
> stunnel -c -v 2 -d 143 -r server_imap:993
> stunnel -c -v 2 -d 110 -r server_pop3:995
dove -v 2 va specificata solo se è stato
eseguito il punto precedente.
- Configurare il cliente di e-mail in modo che acceda la porta imap
(o pop3) di localhost
|
|
|
Per i clienti che supportano SSL (ad es. Netscape, Outlook e pine) è
sufficiente modificare le loro configurazioni in modo che utilizzino
le connessioni SSL.
Non è necessario che i browser contengano il certificato della
CA INFN, anche se è ovviamente consigliabile.
Per i clienti che non supportano SSL (ad esempio eudora) bisogna
procedere in questo modo:
- Installare stunnel sulla macchina client;
- Scaricare winstun.zip
- Estrarre ssleay32.dll, libeay32.dll e stunnel.exe
in una directory (in alternativa le due dll possono essere
scaricate in \windows\system).
- Lanciare stunnel con il comando:
stunnel -c -d 143 -r server_imap:993
stunnel -c -d 110 -r server_pop3:995
N.B.: non c'è bisogno di essere un utente privilegiato: a quanto pare
sotto Windows non c'è la distinzione tra porte sopra e sotto 1024.
- Configurare il cliente di e-mail in modo che acceda la porta imap
(o pop3) di localhost.
|
| |
Roberto Cecchini
URL: http://security.fi.infn.it/tools/stunnel/
|