PosfixSmtpSaslAuth » Cronologia » Versione 12
Simone Piccardi, 30-10-2023 13:05
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 | 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: |
||
85 | |||
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> |