Autenticare un MTA smtp

Da sia.
Vai alla navigazione Vai alla ricerca

Autenticare Postfix con i certificati digitali

Aggiungere in /etc/postfix/main.cf:

smtp_enforce_tls=yes
smtp_tls_CAfile=/etc/ssl/certs/europki-ca-chain.pem
smtp_tls_cert_file=/etc/ssl/certs/server.pem
smtp_tls_key_file=/etc/ssl/private/server.key
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache

Riavviare postfix e provare a spedire.

Note per postfix su macosx

Postfix è lanciato dal launchctl. Lo si può verificare con:

$ sudo launchctl list | grep postfix

Per arrestarlo:

sudo launchctl unload /System/Library/LaunchDaemons/org.postfix.master.plist

adesso lo si puo' lanciare a mano:

sudo postfix start

Se postfix non è mai stato configurato accertarsi che sia presente la riga

relayhost = smtp.unimore.it

Ricordarsi di reinserire postfix nel launchctl

Autenticare exim4 con i certificati digitali

Attenzione!

Su debian etch la autenticazione con i certificati digitali non funziona a causa di una qualche incompatibilità di gnutls.

Si può ricompilare exim4 con openssl con dpkg-buildpackage come workaround.

Come diagnosticare che il problema potrebbe essere questo

Aggiungere a main/90_exim4-config_log_selector (configurazione con molti file piccoli) in coda:

MAIN_LOG_SELECTOR == MAIN_LOG_SELECTOR +tls_certificate_verified

controllare che nel file di log /var/log/exim/mainlog compaia la entry CV=yes ad esempio:

2008-11-07 12:34:11 1KyPbK-0001u0-2b => francesco.malvezzi@unimore.it R=smarthost \
T=remote_smtp_smarthost H=smtp.unimore.it [155.185.1.3] X=TLSv1:DHE-RSA-AES256-SHA:256 \
CV=yes DN="/C=IT/O=Universita' di Modena e Reggio Emilia/OU=Ce.S.I.A./CN=smtp.unimore.it/serialNumber=183"

può essere utile lanciare

sudo exim -qf -v

dopo essersi assicurati di avere qualcosa in coda. I messaggi sospetti sono quelli che dicono che è fallita la verifica del certificato (invalid) e che non si è potuto stabilire lo StartTLS.

Come impedire che i pacchetti ricompilati vengano sovrascritti al primo aggiornamento

dpkg --set-selections
exim4 hold
exim4-base hold
exim4-config  hold
exim4-daemon-light hold
CTRL+d

Configurazione

Nel caso si sia scelta la configurazione "con molti file piccoli", editare /etc/exim4/conf.d/transport/30_exim4-config_remote_smtp_smarthost e aggiungere:

 tls_certificate = /etc/exim4/exim.crt
 tls_privatekey = /etc/exim4/exim.key
 tls_verify_certificates = /etc/ssl/certs/europki-ca-chain.pem
 hosts_require_tls = *

in cui la chiave deve essere:

-rw-r----- 1 root Debian-exim 887 2008-11-06 13:54 /etc/exim4/exim.key

aggiungere in fondo a: /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs

MAIN_TLS_ENABLE = true

Riavviare il servizio con /etc/init.d/exim4 restart.

Controllare che le impostazioni siano state caricate con:

sudo exim -bP transport remote_smtp_smarthost

http://www.madboa.com/geek/exim4-ssl-client/

Autenticare sendmail con i certificati digitali

Modificare /etc/mail/sendmail.mc aggiungere le righe prima della direttiva MAILER()

define(`CERT_DIR', `/usr/local/ssl')
define(`confCACERT_PATH', `CERT_DIR/certs')
define(`confCACERT', `CERT_DIR/certs/europki-ca-chain.pem')dnl
define(`confCLIENT_CERT', `CERT_DIR/certs/server.pem')
define(`confCLIENT_KEY', `CERT_DIR/private/server.key')
define(`confDONT_BLAME_SENDMAIL',`groupreadablekeyfile')dnl

lanciare make e riavviare sendmail.

Autenticare sendmail con le password

Modificare /etc/mail/sendmail.mc aggiungere le righe prima della direttiva MAILER()

FEATURE(`authinfo')dnl
define(`CERT_DIR', `/etc/ssl/certs')dnl
define(`confCACERT', `CERT_DIR/europki-ca-chain.pem')dnl
define(`confAUTH_MECHANISMS', `LOGIN PLAIN')dnl

per le macchine RedHat Enterprise Linux o CentOS based

FEATURE(`authinfo')dnl
define(`CERT_DIR', `/etc/pki/tls/certs')dnl
define(`confCACERT', `CERT_DIR/europki-ca-chain.pem')dnl
define(`confAUTH_MECHANISMS', `LOGIN PLAIN')dnl

Assicurarsi di avere scaricato la europki-ca-chain.pem come descritto qui

Assicurarsi di aver settato la direttiva SMART_HOST come segue (le parentesi quadre sono importanti)

define(`SMART_HOST', `[smtp.unimore.it]')dnl

Editare il file /etc/mail/authinfo (crearlo se nn esiste) modificandolo come segue:

AuthInfo:smtp.unimore.it "U:root" "I:user" "P:passwd"

in cui dopo I: va scritto l'utente che si autentica, dopo P: la password

proteggere il file appena creato da sguardi indiscreti

chmod o= authinfo

lanciare make se ottengo questo errore:

WARNING: 'sendmail.mc' is modified. Please install package sendmail-cf to update your configuration.

manca l'apposito pacchetto sendmail-cf; installarlo con uno

yum install sendmail-cf

rilanciare make

verificare che sia stato creato o aggiornato il file authinfo.db

riavviare sendmail

/etc/init.d/sendmail restart

testare il tutto con un

mail -s MailDiTest nome.cognome@unimore.it

tenendo magari aperta un altra shell con attivo un

tail -f /var/log/maillog