Postfix e autenticazione su smtp remoto
Attenzione. Questa guida è da considerarsi abbandonata, per via del tempo trascorso dall'ultima verifica.
Potrà essere resa obsoleta, previa segnalazione sul forum, se nessuno si propone per l'adozione. |
Versioni Compatibili Debian 6 "squeeze" Debian 7 "wheezy" Debian 8 "jessie" |
Introduzione
Questa guida si propone di risolvere il problema di molti utenti che cercano di configurare un server di posta incorrendo nella necessità di inserire, per l'utilizzo del server del proprio provider come relay host, l'username e la password.
Per risolvere questo useremo sasl
.
Installazione
Prima di tutto è necessario installare i seguenti pacchetti:
- libsasl2
- libsasl2-modules
- postfix-tls
# apt-get install libsasl2-2 libsasl2-modules mailutils ca-certificates
Configurazione
La configurazione è molto semplice e consiste nel modificare il file /etc/postfix/main.cf
aggiungendo le seguenti righe:
# Imposto TLS smtpd_tls_cert_file = /etc/ssl/certs/mailserver.pem smtpd_tls_key_file = /etc/ssl/private/mailserver.pem smtpd_use_tls = yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_tls_security_level = may smtpd_tls_auth_only = no smtp_use_tls = yes # Relay su mio ISP relayhost = [mail.provider.it] smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_auth_enable = yes smtp_sasl_security_options = # se non inserite opzioni commentare all'inizio # Relay su GMail - In alternativa al precedente #relayhost = [smtp.gmail.com]:587 #smtp_sasl_auth_enable = yes #smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd #smtp_sasl_security_options = noanonymous #smtp_tls_CAfile = /etc/postfix/cacert.pem smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
Le opzioni disponibili sono :
noanonymous Don't use mechanisms that permit anonymous authentication. noplaintext Don't use mechanisms that transmit unencrypted username and password information. nodictionary Don't use mechanisms that are vulnerable to dictionary attacks. forward_secrecy Require forward secrecy between sessions (breaking one session does not break earlier sessions). mutual_auth Use only mechanisms that authenticate both the client and the server to each other.
Creare il file /etc/postfix/sasl_passwd
con un contenuto simile a questo:
[mail.provider.it] username:password # In caso di Gmail [smtp.gmail.com]:587 USERNAME@gmail.com:PASSWORD
dove mail.provider.it è lo stesso indicato prima e username e password vanno sostituite con i propri dati di accesso.
Impostare i giusti permessi
# chown root:root /etc/postfix/sasl_passwd && chmod 600 /etc/postfix/sasl_passwd
eseguire poi:
# postmap hash:/etc/postfix/sasl_passwd
Decommentare la riga:
-o smtpd_sasl_auth_enable=yes
nel file /etc/postfix/master.cf .
Validiamo il certificato:
# cat /etc/ssl/certs/Thawte_Premium_Server_CA.pem | tee -a /etc/postfix/cacert.pem
Nel caso stessimo usando come server di relay Gmail creiamo il file:
# nano /etc/postfix/tls_policy
di contenuto:
[smtp.gmail.com]:587 encrypt protocols=TLSv1 ciphers=high
Eseguiamo:
# postmap /etc/postfix/tls_policy
L'unica cosa che resta da fare è riavviare Postfix:
# /etc/init.d/postfix reload
e controllare che funzioni verificando il log /var/log/mail.warn.
Relay su Server SMTP multipli
In alcuni casi può esserci la necessità di smistare le mail in uscita su server SMTP di relay diversi. Ad esempio:
- il server predefinito di relay deve essere smtppredefinito.dominio.it
- l'utente pippo@secondodominio.it deve spedire attraverso smtp.secondodominio.it
- tutti gli utenti del dominio terzodominio.it devono spedire attraverso smtp.terzodominio.it
Postfix permette anche questo.
La configurazione è molto semplice e consiste nel modificare il file /etc/postfix/main.cf
aggiungendo le seguenti righe:
# Imposto TLS smtpd_tls_cert_file = /etc/ssl/certs/mailserver.pem smtpd_tls_key_file = /etc/ssl/private/mailserver.pem smtpd_use_tls = yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_tls_security_level = may smtpd_tls_auth_only = no smtp_use_tls = yes # Imposto autenticazione su SMTP di relay smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_auth_enable = yes smtp_sasl_security_options = # se non inserite opzioni commentare all'inizio # Relay su ISP predefinito relayhost = [smtppredefinito.dominio.it]:submission # Server SMTP di relay alternativi smtp_sender_dependent_authentication = yes sender_dependent_relayhost_maps = hash:/etc/postfix/sender_dependent_relayhost_maps
Quindi creiamo il file di transport con i nostri SMTP di relay alternativi:
# nano /etc/postfix/sender_dependent_relayhost_maps
e diamogli il contenuto seguente, in base a come vogliamo smistare il traffico sui vari SMTP di relay:
# Utente Pippo pippo@secondodominio.it smtp.secondodominio.it # Dominio Terzodominio @terzodominio.it smtp.terzodominio.it # Dominio quartodominio che usa Gmail @quartodominio.it [smtp.gmail.com]:587
Infine aggiorniamo il file contenente le credenziali di autenticazione verso i server di relay:
# nano /etc/postfix/sasl_passwd
# Relay per utente Pippo pippo@secondodominio.it userpippo:password_pippo # Il relay di default smtppredefinito.dominio.it username:password # Relay per il terzo dominio smtp.terzodominio.it user_terzodominio:password_terzodominio # Relay per il quarto dominio su Gmail [smtp.gmail.com]:587 username@gmail.com:password_gmail
Nel caso stessimo usando come server di relay Gmail creiamo il file:
# nano /etc/postfix/tls_policy
di contenuto:
[smtp.gmail.com]:587 encrypt protocols=TLSv1 ciphers=high
Eseguiamo:
# postmap /etc/postfix/tls_policy
Ricreiamo il database delle password:
# postmap hash:/etc/postfix/sasl_passwd
Ricreiamo il database dei server di relay:
# postmap hash:/etc/postfix/sender_dependent_relayhost_maps
e riavviamo Postfix:
# /etc/init.d/postfix restart
Guida scritta da: MaXeR | Debianized 60% |
Estesa da:
| |
Verificata da:
| |
Verificare ed estendere la guida | Cos'è una guida Debianized |