Progetto

Generale

Profilo

PosfixSmtpSaslAuth » Cronologia » Versione 10

Versione 9 (Simone Piccardi, 20-03-2023 17:10) → Versione 10/13 (Simone Piccardi, 20-03-2023 17:11)

h1. Come utilizzare un server postfix come client presso un relay esterno. 

 h2. Autenticazione generica per un relay_host 

 Innanzitutto vanno installati i pacchetti necessari per avere il supporto SASL e dei meccanismi di autenticazione. 
 <pre> 
 apt-get install postfix libsasl2-modules 
 </pre> 

 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: 

 <pre> 
 # 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 
 </pre> 

 All'interno del file contenente le password vanno inserite le credenziali 
 con la seguente sintassi: 

 <pre> 
 host.name.tld                username:password 
 </pre> 

 Le ultime operazioni da eseguire sono la creazione della mappa per le password ed il reload di postfix con: 

 <pre> 
 postmap /etc/postfix/sasl_passwd 
 service postfix restart 
 </pre> 

 h2. 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, dominio, con qualcosa del tipo: 

 <pre> 
 @dominio1.it        relay1.name.tld 
 @dominio2.it        relay2.name.tld 
 </pre> 

 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: 

 <pre> 
 @dominio1.it        username1:password1 
 @dominio2.it        username2:password2 
 </pre> 

 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@ @@/etc/postfix/sasl_passwd@ la nuova configurazione in @main.cf@ sarà: 

 <pre> 
 # 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 
 </pre> 

 e per attivare la nuova configurazione occorrerà eseguire:  

 <pre> 
 postmap /etc/postfix/sasl_passwd 
 postmap /etc/postfix/sender_relay 
 service postfix restart 
 </pre>