User Tools

Site Tools


doc:appunti:linux:sa:exim

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
doc:appunti:linux:sa:exim [2012/09/29 21:56] – [Smarthost] niccolodoc:appunti:linux:sa:exim [2019/01/21 10:27] – [Smarthost] niccolo
Line 90: Line 90:
 Per le versioni più vecchie di Exim (es. la 3?) sostituire le variabili consigliate **$auth1**, **$auth2** e **$auth3** con le obsolete **$1**, **$2** e **$3**. Vedere anche questa pagina per un [[authdaemon_problem|problema del Courier authdaemon]]. Per le versioni più vecchie di Exim (es. la 3?) sostituire le variabili consigliate **$auth1**, **$auth2** e **$auth3** con le obsolete **$1**, **$2** e **$3**. Vedere anche questa pagina per un [[authdaemon_problem|problema del Courier authdaemon]].
  
-Attenzione che in questo caso Exim deve accedere al socket ''**/var/run/courier/authdaemon/socket**'', rispetto ad una installazione Debian standard ci sono i seguenti permessi che non bastano:+Attenzione che in questo caso Exim deve accedere al socket ''**/var/run/courier/authdaemon/socket**'', rispetto ad una installazione Debian 8 (Jessie) standard ci sono i seguenti permessi che impediscono ad Exim di accedere al socket:
  
 <code> <code>
-drwxrwx--- 3 daemon daemon 1024 May  9 14:40 /var/run/courier/ +drwxr-x--- 2 daemon daemon 100 Mar  8 15:38 /var/run/courier/authdaemon/
-drwxrwx--- 2 daemon daemon 1024 May  9 14:40 /var/run/courier/authdaemon/+
 </code> </code>
  
-Sistemati in questo modo, speriamo che non sia troppo permissivo: +La soluzione suggerita è aggiungere l'utente **Debian-exim** al gruppo **daemon**. Verificare che la directory ''/var/run/courier/'' abbia mode 0755, nelle precedenti release era 0750, non sufficiente.
- +
-<code> +
-chmod 755 /var/run/courier +
-chgrp Debian-exim /var/run/courier/authdaemon +
-</code> +
- +
-Anche in una installazione Debian più recente (Lenny) **non funziona** tutto alla prima, perché i permessi sono: +
- +
-<code> +
-drwxr-xr-x 3 daemon daemon 4096 2006-07-06 16:40 /var/run/courier/ +
-drwxr-x--- 2 daemon daemon 4096 2006-07-06 16:40 /var/run/courier/authdaemon/ +
-</code> +
- +
-Si può cambiare il mode della directory ''authdaemon'' a **0755** (forse la via migliore) oppure aggiungere l'utente **Debian-exim** al gruppo **daemon**.+
  
 Per abilitare l'autenticazione in chiaro (senza TLS) basta definire la macro in ''**conf.d/main/00_local**'': Per abilitare l'autenticazione in chiaro (senza TLS) basta definire la macro in ''**conf.d/main/00_local**'':
Line 146: Line 131:
 </code> </code>
  
 +Questa configurazione abilita la cifratura con STARTTLS, cioè la porta di comunicazione è la tradizionale TCP/25 e la cifratura inizia dopo il comando STARTTLS.
 +
 +===== Cifratura SSL su porta TCP/465 =====
 +
 +Questo metodo sarebbe obsoleto rispetto al TLS su porta TCP/25 (con uso del comando STARTTLS), tuttavia la pessima abitudine di alcuni provider di filtrare la porta 25 in uscita, lo rende ancora interessante.
 +
 +Anzitutto si deve dire al demone di stare in ascolto sulle due porte: 25 e 465, in **''/etc/default/exim4''** si mette (l'opzione **''-oP''** è necessaria quando si specifica l'opzione **''-oX''**):
 +
 +<file>
 +SMTPLISTENEROPTIONS='-oX 465:25 -oP /var/run/exim4/exim.pid'
 +</file>
 +
 +Quindi si deve indicare che sulla porta 465 si vuole usare la cifratura SSL (non il comando STARTTLS come si fa sulla tradizionale porta 25), in **''/etc/exim4/conf.d/main/03_exim4-config_tlsoptions''** si mette:
 +
 +<file>
 +tls_on_connect_ports=465
 +</file>
 ===== Utilizzo dei system filter ===== ===== Utilizzo dei system filter =====
  
Line 307: Line 309:
  
 <file> <file>
 +dc_eximconfig_configtype='smarthost'
 dc_smarthost='10.0.1.205' dc_smarthost='10.0.1.205'
 </file> </file>
 +
 +Se non è necessario gestire posta localmente, è più indicata la configurazione //satellite//. È ovviamente possibile indicare uno hostname e una porta TCP (ad esempio la //submission// invece che la //smtp//):
 +
 +<file>
 +dc_eximconfig_configtype='satellite'
 +dc_smarthost='mail.rigacci.org::587'
 +</file>
 +
  
 Dopo la modifica fare un reload di Exim e controllare che il file **''/var/lib/exim4/config.autogenerated''** contenga: Dopo la modifica fare un reload di Exim e controllare che il file **''/var/lib/exim4/config.autogenerated''** contenga:
Line 316: Line 327:
 </file> </file>
  
-===== Smarthost per dominio privato =====+Per fare un test su quale **transport** viene usato si può usare il comando:
  
-Configurare uno smarthost per un dominio privato presenta qualche problema. Anzitutto non è detto che si voglia pubblicare un'informazione pubblica come il **record MX** per un dominio di posta privato. Inoltre se lo smarthost in questione è su un **indirizzo IP privato** (ad esempio raggiungibile tramite una VPN), Exim fallisce con il router **dnslookup**, generando messaggi di errore del tipo:+<code> 
 +exim -bt "niccolo@rigacci.org" 
 +R: smarthost for niccolo@rigacci.org 
 +niccolo@rigacci.org 
 +  router = smarthost, transport = remote_smtp_smarthost 
 +  host smarthost.texnet.it [62.48.51.128]  
 +</code> 
 + 
 +In assenza di smarthost invece si ha: 
 + 
 +<code> 
 +exim -bt "niccolo@rigacci.org" 
 +R: dnslookup for niccolo@rigacci.org 
 +niccolo@rigacci.org 
 +  router = dnslookup, transport = remote_smtp 
 +  host mail.rigacci.org [78.47.114.234] MX=10 
 +</code> 
 + 
 +Se lo **smarthost richiede autenticazione**, è possibile aggiungere le credenziali nel file **/etc/exim4/passwd.client**: 
 + 
 +<file> 
 +smarthost.domain.org:login:password 
 +</file> 
 + 
 +Se un messaggio non è partito (è rimasto in coda, il suo ID è visibile con **mailq**), è possibile chiedere un nuovo invio e tracciare la sessione con: 
 + 
 +<code> 
 +exim -v -M 1glXAU-0000Ig-1n 
 +</code> 
 + 
 +In questo modo è possibile verificare che lo smarthost annunci correttamente l'**AUTH PLAIN LOGIN**, magari solo dopo lo **STARTTLS**, e che Exim effettui tutta la sessione correttamente. 
 +===== Smarthost per domini privati ===== 
 + 
 +Configurare uno smarthost per un dominio privato presenta qualche problema; anzitutto non è detto che si voglia pubblicare sul DNS un'informazione come il **record MX** per un dominio di posta privato. Inoltre se lo smarthost in questione è su un **indirizzo IP privato** (ad esempio raggiungibile tramite una VPN), Exim fallisce con il router **dnslookup**, generando messaggi di errore del tipo:
  
 <code> <code>
Line 344: Line 388:
     naxos.rigacci.org    172.16.3.78 ; \     naxos.rigacci.org    172.16.3.78 ; \
     naxos.my.rigacci.org 172.16.3.78     naxos.my.rigacci.org 172.16.3.78
 +</file>
 +
 +===== Address rewrite =====
 +
 +Uno dei casi più utilizzati di address rewrite è modificare l'indirizzo mittente dei messaggi di sistema, che altrimenti risultano provenienti da qualcosa del genere: **''%%root@host.dominio.it%%''**. Per un server che non gestisce un dominio di posta tale indirizzo è quasi certamente inesistente, e il destinatario può facilmente rifiutarlo.
 +
 +Exim onora il file **''/etc/email-addresses''** nel quale si inseriscono righe del tipo:
 +
 +<file>
 +root: support@domain.it
 +</file>
 +
 +in questo modo tutte le mail generate dall'utente locale **root** avranno il mittente indicato.
 +
 +Fare attenzione alle informazioni **[[wp>Sender_Policy_Framework|SPF]]**: il messaggio potrebbe essere rifiutato se il dominio email dichiara che gli host di origine dei messaggi sono altri.
 +
 +Il metodo visto sopra consente di riscrivere solo gli **indirizzi locali** (cioè senza la parte **''@dominio''**). Per riscrivere anche gli indirizzi in messaggi ricevuti via SMTP si può aggiungere un pezzetto di configurazione, in Debian basta creare un file **''/etc/exim4/conf.d/rewrite/32_local-rewriting''** con qualcosa del genere:
 +
 +<file>
 +### rewrite/32_local-rewriting
 +#################################
 +
 +# Rewrite the headers: From, Sender, Reply-To and the envelope From
 +# Test it with:
 +#     exim -brw NAS@192.168.1.254
 +
 +NAS@192.168.1.254  info@domain.org  fsrF
 </file> </file>
doc/appunti/linux/sa/exim.txt · Last modified: 2019/01/21 11:08 by niccolo