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/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.
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/apache2/ssl.crt/europki-ca-chain.pem smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
Attenzione: installare il file europki-ca-chain.pem 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 sia presente la riga
relayhost = smtp.unimore.it
Ricordarsi di reinserire postfix nel launchctl
Autenticare exim4 con i certificati digitali
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/tcs-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/
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 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/tcs-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
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 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 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