Autenticare un MTA smtp
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