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/DigiCertCA.crt
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.

Autenticare Postfix con le password

Aggiungere in /etc/postfix/main.cf:

smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_enforce_tls=yes
smtp_tls_CAfile=/etc/ssl/certs/DigiCertCA.crt
#smtp_tls_CAfile=/etc/ssl/certs/AddTrust_External_CA_Root.pem #VECCHIO CERTIFICATO
#smtp_tls_CAfile=/etc/apache2/ssl.crt/europki-ca-chain.pem #VECCHIO CERTIFICATO
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache

Attenzione: installare il file DigiCertCA.crt considerando che l'esempio sopra è preso da un sistema Mac Osx e le directory cambiano a seconda del sistema utilizzato. In Debian ad esempio il file sarà posto in /etc/ssl/certs (di defaults). Per installarlo seguire questa guida.

Controllare che in /etc/postfix/main.cf sia presente:

relayhost = smtp.unimore.it

Editare il file /etc/postfix/sasl_passwd (crearlo se nn esiste) modificandolo come segue:

smtp.unimore.it     username:password

Sostituendo "username" e "password" con le proprie credenziali e settare i permessi adeguati:

$ chown root:root /etc/postfix/sasl_passwd
$ chmod 600 /etc/postfix/sasl_passwd

Successivamente creare il file /etc/postfix/sasl_passwd.db con il comando:

$ postmap hash:/etc/postfix/sasl_passwd

Ravviare 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 in /etc/postfix/main.cf sia presente la riga

relayhost = smtp.unimore.it

Ricordarsi di reinserire postfix nel launchctl

Autenticare exim4 con i certificati digitali

Configurazione

Molti piccoli file (richiede più modifiche meno chiare)

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/DigiCertCA.crt
 hosts_require_tls = *

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

   MAIN_TLS_ENABLE = true

Unico file exim4.conf.template (più semplice)

Creare il file:

   /etc/exim4/exim4.conf.localmacros

con il contenuto:

   MAIN_TLS_ENABLE = true
   REMOTE_SMTP_SMARTHOST_PRIVATEKEY = /etc/exim4/exim.key
   REMOTE_SMTP_SMARTHOST_TLS_CERTIFICATE = /etc/exim4/exim.crt
   MAIN_TLS_VERIFY_CERTIFICATES = /etc/ssl/certs/DigiCertCA.crt
   MAIN_TLS_VERIFY_HOSTS = *

Chiave e certificato

La chiave deve essere:

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

La direttiva `MAIN_TLS_VERIFY_CERTIFICATES` è inutile se le CA intermedie sono giò incluse in /etc/ssl/certs/ca-certificates.crt.

Riavviare il servizio con

   systemctl restart exim4

Controllare che le impostazioni siano state caricate con:

sudo exim -bP transport remote_smtp_smarthost

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

Per forzare lo svuotamento della coda:

sudo exim -qf -v

Autenticare exim4 con le password

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

Nei sistemi "Debian like" per autenticare Exim4 con le password bisogna configurare il servizio come smarthost. Lanciare la configurazione guidata con il comando:

dpkg-reconfigure exim4-config

scegliere "posta inviata tramite uno «smarthost»; ricevuta via SMTP o fetchmail" e seguire i passi successivi della configurazione guidata: scegliere il "Mail Name" del sistema. Successivamente in "Indirizzi IP sui quali attendere connessioni SMTP in ingresso:" inserire 127.0.0.1. Lasciare i campi successivi vuoti fino a "Indirizzo IP o hostname per lo «smarthost» in uscita:", qui mettere l'indirizzo del server smtp, in questo caso smtp.unimore.it:25. Le successive configurazioni possono essere abilitate o meno a seconda dei casi, in questo caso la configurazione è funzionante e le seguenti scelte sono: No, No, Formato mbox in /var/mail/. Ultimo passo scegliere se dividere la configurazione in molti piccoli file. (in questo caso è stato scelto No).

A questo punto baste editare il file /etc/exim4/passwd.client e inserire la riga con indirizzo smtp, user e password come in questo esempio:

smtp.unimore.it:smtp_user:smtp_password

(sostituire smtp_user e smtp_password con le proprie credenziali smtp)

Riavviamo il servizio:

/etc/init.d/exim4 restart

e testiamo il corretto funzionamento.

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/DigiCertCA.crt')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/DigiCertCA.crt')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/DigiCertCA.crt')dnl
define(`confAUTH_MECHANISMS', `LOGIN PLAIN')dnl

Se la CERT_DIR punta a una sottocartella, potrebbe essere necessario settare:

define(`confCACERT_PATH',`/etc/pki/tls/certs')dnl

Assicurarsi di avere scaricato la CA DigiCertCA.crt 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 con un bel

/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