INFN Sec. Group


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)
 

Introduzione

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.

Installazione di OpenSSL

La prima cosa da fare è installare OpenSSL.
  1. Scompattate il tar file in /usr/local

  2. 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.

Richiesta e installazione del certificato

Queste istruzioni valgono solo per nodi .infn.it.
  1. aggiungete il file di configurazione srv.cnf in /usr/local/ssl/lib/ (richieste in formato non conforme verranno rifiutate).

  2. 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
    

  3. inviate req.pem alla CA INFN per la firma;
    1. se già non lo avete procuratevi un certificato personale;
    2. spedite la richiesta (come attachment) per mail S/MIME a infn-ca@fi.infn.it, firmandola con il vostro certificato personale.
    3. a stretto giro di posta vi verrà inviato il certificato.

  4. 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.

  5. cancellate req.pem e key.pem e proteggete (chmod 600) stunnel.pem, che ora contiene la chiave privata del server non crittografata.

Installazione di stunnel

Seguite le semplici istruzioni.

Uso di stunnel sul server

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

Configurazione dei clienti di e-mail (unix)

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:

  1. Installare stunnel sulla macchina client;

  2. 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
    

  3. 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.

  4. Configurare il cliente di e-mail in modo che acceda la porta imap (o pop3) di localhost

Configurazione dei clienti di e-mail (windows)

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:

  1. Installare stunnel sulla macchina client;

    1. Scaricare winstun.zip
    2. Estrarre ssleay32.dll, libeay32.dll e stunnel.exe in una directory (in alternativa le due dll possono essere scaricate in \windows\system).

  2. 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.

  3. 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/