Progetto

Generale

Profilo

PosfixSmtpSaslAuth » Cronologia » Versione 13

Simone Piccardi, 30-10-2023 13:06

1 5 Amministratore Truelite
h1. Come utilizzare un server postfix come client presso un relay esterno.
2
3 8 Simone Piccardi
h2. Autenticazione generica per un relay_host
4
5 1 Amministratore Truelite
Innanzitutto vanno installati i pacchetti necessari per avere il supporto SASL e dei meccanismi di autenticazione.
6 5 Amministratore Truelite
<pre>
7 7 Simone Piccardi
apt-get install postfix libsasl2-modules
8 1 Amministratore Truelite
</pre>
9
10 5 Amministratore Truelite
Una volta configurato il server per la rete locale, bisogna fornirgli le credenziali per autenticarsi presso il relay esterno.
11 6 Simone Piccardi
Nel file @/etc/postfix/main.cf@ occorre inserire le seguenti direttive:
12
13 1 Amministratore Truelite
<pre>
14
# Il server da usare come relay
15 8 Simone Piccardi
relayhost = relay.name.tld
16 1 Amministratore Truelite
# Le seguenti variabili servono ad abilitare l'autenticazione SASL
17
# e indicano a postfix il file contentente le password
18
smtp_sasl_auth_enable = yes
19
smtp_sasl_security_options = noanonymous
20
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
21
</pre>
22 5 Amministratore Truelite
23 1 Amministratore Truelite
All'interno del file contenente le password vanno inserite le credenziali
24
con la seguente sintassi:
25 6 Simone Piccardi
26 5 Amministratore Truelite
<pre>
27 1 Amministratore Truelite
host.name.tld              username:password
28
</pre>
29 5 Amministratore Truelite
30 1 Amministratore Truelite
Le ultime operazioni da eseguire sono la creazione della mappa per le password ed il reload di postfix con:
31 5 Amministratore Truelite
32 1 Amministratore Truelite
<pre>
33
postmap /etc/postfix/sasl_passwd
34 8 Simone Piccardi
service postfix restart
35
</pre>
36
37
h2. Autenticazione differenziata per dominio del mittente
38
39 10 Simone Piccardi
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:
40 8 Simone Piccardi
41
<pre>
42
@dominio1.it      relay1.name.tld
43
@dominio2.it      relay2.name.tld
44
</pre>
45
46
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:
47
48
<pre>
49
@dominio1.it      username1:password1
50
@dominio2.it      username2:password2
51
</pre>
52
53
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.
54
55 10 Simone Piccardi
Riassumendo, una volta configurati in questo modo @/etc/postfix/sender_relay@ e @/etc/postfix/sasl_passwd@ la nuova configurazione in @main.cf@ sarà:
56 8 Simone Piccardi
57
<pre>
58
# relay for domains using maps 
59
relayhost = 
60
sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay
61
smtp_sender_dependent_authentication = yes
62
smtp_sasl_auth_enable=yes
63
smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd
64
smtp_sasl_security_options=noanonymous
65 5 Amministratore Truelite
</pre>
66 9 Simone Piccardi
67
e per attivare la nuova configurazione occorrerà eseguire: 
68
69
<pre>
70
postmap /etc/postfix/sasl_passwd
71
postmap /etc/postfix/sender_relay
72
service postfix restart
73
</pre>
74 11 Simone Piccardi
75
h2. Configurazione aggiuntiva per l'invio al relay solo su SMTPs
76
77
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:
78
79
<pre>
80
smtp_tls_wrappermode=yes
81
smtp_tls_security_level=encrypt
82
</pre>
83
84 13 Simone Piccardi
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 quando si hanno situazioni miste è opportuno definire in @master.cf@ un opportuno transport per eseguire l'invio con TLS, aggiungendo le righe:
85 11 Simone Piccardi
86
<pre>
87
smtps       unix  -       -       y       -       -       smtp
88
   -o smtp_tls_security_level=encrypt
89
   -o smtp_tls_wrappermode=yes
90
</pre>
91
92
ed a questo punto si potrà indicare in @/etc/postfix/sender_relay@ l'uso di SMTPs specificando il relay con:
93
94
<pre>
95
@dominio3.it      smtps:smtpsonly.name.tld:465
96
</pre>