Supporto TLS SMTP SSL per Postfix: Difference between revisions

From RVM Wiki
Jump to navigation Jump to search
mNo edit summary
Line 3: Line 3:
Obiettivo: permettere l'invio di email con protocollo cifrato SSL
Obiettivo: permettere l'invio di email con protocollo cifrato SSL
Soluzione: attivare le opzioni tls
Soluzione: attivare le opzioni tls
== Verifica supporto TLS==
Verificare che si abbia installato postifx-tls e non solo postfix
dpkg -l | grep postfix
ii  postfix        2.1.5-9        A high-performance mail transport agent
ii  postfix-tls    2.1.5-9        TLS and SASL support for Postfix


== Copia dei certificati ssl ==
== Copia dei certificati ssl ==
Line 31: Line 24:
in /etc/postfix
in /etc/postfix


  cp /etc/ssl/mail.galimberti.net.nopwkey.pem /etc/postfix/mail.galimberti.net.key
  sudo cp /etc/ssl/mail.galimberti.net.key /etc/postfix/mail.galimberti.net.key
  cp /etc/ssl/mail.galimberti.net.newcert.pem /etc/postfix/mail.galimberti.net.pem
  sudo cp cp /etc/ssl/mail.galimberti.net.crt /etc/postfix/mail.galimberti.net.crt
  cp /etc/ssl/galimberti.net/cacert.pem /etc/postfix/ca.galimberti.net.crt
  sudo cp cp /etc/ssl/galimberti.net/cacert.crt /etc/postfix/ca.galimberti.net.crt
 
sudo chmod 640  /etc/postfix/mail.galimberti.net.key


== Configurazione di Postfix per SSL ==
== Configurazione di Postfix per SSL ==
Line 40: Line 35:


<pre>
<pre>
cat >> /etc/postfix/main.cf <<'EOFile'
cat | sudo tee -a /etc/postfix/main.cf > /dev/null <<'EOFile'
## TLS
## TLS
#  Transport Layer Security
#  Transport Layer Security
Line 48: Line 43:
# uncomment this to force use of smtp auth only for
# uncomment this to force use of smtp auth only for
# ssl connections
# ssl connections
smtpd_tls_key_file = /etc/postfix/mail.galimberti.net.pem
smtpd_tls_key_file = /etc/postfix/mail.galimberti.net.key
smtpd_tls_cert_file = /etc/postfix/mail.galimberti.net.crt
smtpd_tls_cert_file = /etc/postfix/mail.galimberti.net.crt
smtpd_tls_CAfile = /etc/postfix/ca.galimberti.net.crt
smtpd_tls_CAfile = /etc/postfix/ca.galimberti.net.crt
smtpd_tls_loglevel = 3
smtpd_tls_loglevel = 2
smtpd_tls_received_header = yes
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_session_cache_timeout = 3600s
Line 57: Line 52:
EOFile
EOFile
</pre>
</pre>
sudoedit /etc/postfix/main.cf


Riavviare postfix
Riavviare postfix
Line 84: Line 81:
</pre>
</pre>


* Testare la porta 25 senza cifratura
swaks -s mailserver.metrica.priv -au nome.cognome -f nome.cognome@deominio.dom -t mio.indirizzo@miodominio.dom -ap PASSWORD


== Attivazione del supporto per la porta 465 ==
* Testare la porta 25 con STARTTLS
swaks -s mailserver.metrica.priv -au nome.cognome -f nome.cognome@deominio.dom -t mio.indirizzo@miodominio.dom -ap PASSWORD -tls


Se si vuole attivare anche il metodo con SSL wwrapper sulla porta 465, scommentare e modificare le sueguenti righe in '''/etc/postfix/master.cf''':
== Attivazione del supporto per la porta 465 e 587 per SMTPS e SUBMISSION ==
 
Se si vuole attivare anche il metodo con SSL wwrapper sulla porta 465, e submission sulla porta 587 scommentare e modificare le seguenti righe in '''/etc/postfix/master.cf''':


<pre>
<pre>
# only used by postfix-tls
# port 465
tlsmgr    fifo  n      -      -      300    1      tlsmgr
smtps    inet  n   -   y  -   -   smtpd
smtps    inet  n       -       -       -       -      smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
    -o smtpd_tls_wrappermode=yes
587      inet  n      -      -      -      -      smtpd -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
    -o smtpd_sasl_auth_enable=yes
</pre>


inoltre aggiungere la configurazione sasl anche per smtps:
# port 587
submission    inet  n  -  y  -  -  smtpd
    -o smtpd_enforce_tls=yes
    -o smtpd_sasl_auth_enable=yes


<pre>
# random number generator
cd /etc/postfix/sasl
tlsmgr    unix  -      -      -      1000?  1      tlsmgr
sudo cp smtpd.conf smtps.conf
</pre>
</pre>


Riavviare sasl e postfix:
 
* Riavviare postfix:


<pre>
<pre>
/etc/init.d/saslauthd stop
sudo /etc/init.d/postfix stop
killall saslauthd
sudo /etc/init.d/postfix start
/etc/init.d/saslauthd start
 
/etc/init.d/postfix stop
/etc/init.d/postfix start
</pre>
</pre>


Line 117: Line 117:


<pre>
<pre>
netstat -anp | grep ':25\|:465'
sudo netstat -an | grep ':25\|:465\|:587' | grep LISTEN
tcp        0      0 0.0.0.0:465            0.0.0.0:*              LISTEN     16663/master
tcp        0      0 0.0.0.0:465            0.0.0.0:*              LISTEN  
tcp        0      0 0.0.0.0:25              0.0.0.0:*              LISTEN     16663/master
tcp        0      0 0.0.0.0:25              0.0.0.0:*              LISTEN  
tcp        0      0 0.0.0.0:587            0.0.0.0:*              LISTEN
</pre>
</pre>
* Testare la porta 465 con:
swaks -s mailserver.metrica.priv -au nome.cognome -f nome.cognome@deominio.dom -t mio.indirizzo@miodominio.dom -ap PASSWORD -tlsc
* Testare la 587:
swaks -s mailserver.metrica.priv -au nome.cognome -f nome.cognome@deominio.dom -t mio.indirizzo@miodominio.dom -ap PASSWORD -tls -p 587
* Verificare che senza auth, la 587 non vada:


== Note relative ai client SMTP ==
== Note relative ai client SMTP ==
Line 133: Line 142:
* [http://postfix.state-of-mind.de/patrick.koetter/smtpauth/postfix_tls_support.html Adding TLS support to Postfix]
* [http://postfix.state-of-mind.de/patrick.koetter/smtpauth/postfix_tls_support.html Adding TLS support to Postfix]
* [http://www.aet.tu-cottbus.de/personen/jaenicke/postfix_tls/doc/conf.html Postfix/TLS - Configuring main.cf and master.cf]
* [http://www.aet.tu-cottbus.de/personen/jaenicke/postfix_tls/doc/conf.html Postfix/TLS - Configuring main.cf and master.cf]
*[http://rackerhacker.com/2007/07/04/enable-submission-port-587-in-postfix/ Enable submission port 587 in Postfix | Racker Hacker]
*[http://abing.gotdns.com/posts/2008/getting-postfix-to-run-smtps-on-port-465/ Getting Postfix to run SMTPS on port 465 · Archive ·Terminus a Quo]
*[http://www.faqforge.com/linux/how-to-enable-port-587-submission-in-postfix/ How to enable port 587 (submission) in postfix « FAQforge]
*[http://www.postfix.org/TLS_README.html Postfix TLS Support]

Revision as of 14:23, 28 July 2011

Obiettivo: permettere l'invio di email con protocollo cifrato SSL Soluzione: attivare le opzioni tls

Copia dei certificati ssl

Utilizzo dei certificati standard

I certificati sono:

/etc/ssl/private/ssl-cert-snakeoil.key
/etc/ssl/certs/ssl-cert-snakeoil.pem

Utilizzo di certificati specifici

Generare i certificati con un metodo conosciuto.

Copiare poi

  • il certificato pubblico della C.A.
  • il certificato pubblico del server smtp
  • la chiave privata dell'smtp sena password

in /etc/postfix

sudo cp /etc/ssl/mail.galimberti.net.key /etc/postfix/mail.galimberti.net.key
sudo cp cp /etc/ssl/mail.galimberti.net.crt /etc/postfix/mail.galimberti.net.crt
sudo cp cp /etc/ssl/galimberti.net/cacert.crt /etc/postfix/ca.galimberti.net.crt
sudo chmod 640  /etc/postfix/mail.galimberti.net.key

Configurazione di Postfix per SSL

Configurare postfix per l'uso di TLS:

cat | sudo tee -a /etc/postfix/main.cf > /dev/null <<'EOFile'
## TLS
#  Transport Layer Security
#
smtpd_use_tls = yes
#smtpd_tls_auth_only = yes
# uncomment this to force use of smtp auth only for
# ssl connections
smtpd_tls_key_file = /etc/postfix/mail.galimberti.net.key
smtpd_tls_cert_file = /etc/postfix/mail.galimberti.net.crt
smtpd_tls_CAfile = /etc/postfix/ca.galimberti.net.crt
smtpd_tls_loglevel = 2
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
EOFile
sudoedit /etc/postfix/main.cf

Riavviare postfix

/etc/init.d/postfix stop; /etc/init.d/postfix start

Verifica del supporto TLS

Telnettare sulla porta 25 e verificare la risposta al comando STARTTLS:

C: [root@example.com]# telnet mail.example.com 25
S: 220 mail.example.com ESMTP Postfix (1.1.5)
C: EHLO example.com
S: 250-mail.example.com
S: 250-PIPELINING
S: 250-SIZE 10240000
S: 250-VRFY
S: 250-ETRN
S: 250-STARTTLS
S: 250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5 GSSAPI
S: 250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5 GSSAPI
S: 250-XVERP
S: 250 8BITMIME
C: STARTTLS
S: 220 Ready to start TLS
  • Testare la porta 25 senza cifratura
swaks -s mailserver.metrica.priv -au nome.cognome -f nome.cognome@deominio.dom -t mio.indirizzo@miodominio.dom -ap PASSWORD
  • Testare la porta 25 con STARTTLS
swaks -s mailserver.metrica.priv -au nome.cognome -f nome.cognome@deominio.dom -t mio.indirizzo@miodominio.dom -ap PASSWORD -tls

Attivazione del supporto per la porta 465 e 587 per SMTPS e SUBMISSION

Se si vuole attivare anche il metodo con SSL wwrapper sulla porta 465, e submission sulla porta 587 scommentare e modificare le seguenti righe in /etc/postfix/master.cf:

# port 465
smtps     inet  n   -   y   -   -   smtpd
    -o smtpd_tls_wrappermode=yes
    -o smtpd_sasl_auth_enable=yes

# port 587
submission    inet  n   -   y   -   -   smtpd
    -o smtpd_enforce_tls=yes
    -o smtpd_sasl_auth_enable=yes

# random number generator
tlsmgr    unix  -       -       -       1000?   1       tlsmgr


  • Riavviare postfix:
sudo /etc/init.d/postfix stop
sudo /etc/init.d/postfix start

Controllare le porte in ascolto:

sudo netstat -an | grep ':25\|:465\|:587' | grep LISTEN
tcp        0      0 0.0.0.0:465             0.0.0.0:*               LISTEN    
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN    
tcp        0      0 0.0.0.0:587             0.0.0.0:*               LISTEN
  • Testare la porta 465 con:
swaks -s mailserver.metrica.priv -au nome.cognome -f nome.cognome@deominio.dom -t mio.indirizzo@miodominio.dom -ap PASSWORD -tlsc
  • Testare la 587:
swaks -s mailserver.metrica.priv -au nome.cognome -f nome.cognome@deominio.dom -t mio.indirizzo@miodominio.dom -ap PASSWORD -tls -p 587
  • Verificare che senza auth, la 587 non vada:

Note relative ai client SMTP

Se risulta installato su un client Windows Norton Autoprotect, occorre disabilitare il checking delle email in uscita (Opzioni, email in uscita) altrimenti verrà bloccato l'invio delle email con ssl.


Riferimenti