PosfixSmtpSaslAuth » Cronologia » Versione 12
« Precedente |
Versione 12/13
(diff)
| Successivo »
Simone Piccardi, 30-10-2023 13:05
Come utilizzare un server postfix come client presso un relay esterno.¶
Autenticazione generica per un relay_host¶
Innanzitutto vanno installati i pacchetti necessari per avere il supporto SASL e dei meccanismi di autenticazione.
apt-get install postfix libsasl2-modules
Una volta configurato il server per la rete locale, bisogna fornirgli le credenziali per autenticarsi presso il relay esterno.
Nel file /etc/postfix/main.cf
occorre inserire le seguenti direttive:
# Il server da usare come relay relayhost = relay.name.tld # Le seguenti variabili servono ad abilitare l'autenticazione SASL # e indicano a postfix il file contentente le password smtp_sasl_auth_enable = yes smtp_sasl_security_options = noanonymous smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
All'interno del file contenente le password vanno inserite le credenziali
con la seguente sintassi:
host.name.tld username:password
Le ultime operazioni da eseguire sono la creazione della mappa per le password ed il reload di postfix con:
postmap /etc/postfix/sasl_passwd service postfix restart
Autenticazione differenziata per dominio del mittente¶
La cosa si complica qualora si voglia usare un diverso relay (con una diversa autenticazione) a seconda del mittente, in tal caso la precedente configurazione va modificata per abilitare le sender_dependent_relayhost_maps
, in questo caso occorrerà indicare nella mappa indicata da questa direttiva (ad esempio /etc/postfix/sender_relay
) le corrispondenze fra mittente e suo dominio ed il server di relay da usare, con qualcosa del tipo:
@dominio1.it relay1.name.tld @dominio2.it relay2.name.tld
oltre a questo si può poi impostare una autenticazione dipendente dal mitttente (questo consente di autenticare con utenti diversi, anche sullo stesso server di relay, le email con mittenti provenienti da domini diversi) abilitando smtp_sender_dependent_authentication
, e si dovranno specificare a quel punto in sasl_passwd
le relative password usando nel primo campo non il nome del server di relay, ma gli indirizzi dei mittenti (anche in forma generica come @domain), in sostanza con qualcosa:
@dominio1.it username1:password1 @dominio2.it username2:password2
per cui per la posta spedita da dominio1.it
verranno usate le credenziali del primo utente (relativo al server di relay indicato prima) per quella spedita da dominio2.it
quella del secondo utente.
Riassumendo, una volta configurati in questo modo /etc/postfix/sender_relay
e /etc/postfix/sasl_passwd
la nuova configurazione in main.cf
sarà:
# relay for domains using maps relayhost = sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay smtp_sender_dependent_authentication = yes smtp_sasl_auth_enable=yes smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd smtp_sasl_security_options=noanonymous
e per attivare la nuova configurazione occorrerà eseguire:
postmap /etc/postfix/sasl_passwd postmap /etc/postfix/sender_relay service postfix restart
Configurazione aggiuntiva per l'invio al relay solo su SMTPs¶
Le configurazioni precedenti non funzionano qualora il server di relay accetti solo comunicazioni in SMTPs sulla porta 465. In tal caso per l'invio è necessario a main.cf
aggiungere le direttive:
smtp_tls_wrappermode=yes smtp_tls_security_level=encrypt
in questo modo però tutte le comunicazioni vengono eseguite chiedendo l'uso di TLS, cosa che fa fallire eventuali relay che non accettano questa configurazione, per questo è opportuno definire in master.cf
un opportuno transport per eseguire l'invio con TLS, aggiungendo le righe:
smtps unix - - y - - smtp -o smtp_tls_security_level=encrypt -o smtp_tls_wrappermode=yes
ed a questo punto si potrà indicare in /etc/postfix/sender_relay
l'uso di SMTPs specificando il relay con:
@dominio3.it smtps:smtpsonly.name.tld:465
Aggiornato da Simone Piccardi circa un anno fa · 12 revisions