Configurare Exim4 per un client casalingo GNU/Debian.

Per utilizzare Exim4 per l’invio di email attraverso autistici.org occorre:

  • avere un indirizzo email sui server di autistici
  • installare il metapacchetto “exim4” o in alternativa i pacchetti “exim4-base” “exim4-config” “exim4-daemon-light”

Installazione e configurazione del software

Accedere ad una shell come utente root o diventarlo dalla propria shell nel qual caso:

$ su

Dare la password. Quindi:

# apt-get install exim4

oppure

# apt-get install exim4-base exim4-config exim4-daemon-light

Rispondere nel modo seguente alle domande di configurazione del pacchetto exim4-config:

 Exim: I pacchetti Debian di exim4 possono generare la configurazione finale a partire 
       da un file di configurazione monolitico 
       [...] 
       Dividere la configurazione in molti piccoli file?
 Tu:   No
 Exim: Selezionare il tipo di configurazione che si adatta meglio alle proprie
       esigenze.
       [...]
       Tipo di configurazione del sistema di posta:
 Tu:   posta inviata tramite uno smarthost; ricevuta via SMTP o fetchmail
 Exim: Il «mail name» del sistema è la porzione di indirizzo che indica il nome
       host, ossia quella che appare dopo il nome utente e il segno
       [...]
       Mail name del sistema:
 Tu:   //Nome_del_tuo_computer// o eventualmente //nome_del_tuo_computer@dominio//
 Exim: Inserire un elenco di indirizzi IP, separati da due punti (":"), sui
       quali  porsi in ascolto. È necessario raddoppiare i due punti (":")
       [...]
       Indirizzi IP sui quali attendere connessioni SMTP in ingresso:
 Tu:   //127.0.0.1//
 Exim: Inserire un elenco di domini, oltre al nome host locale
       (localhost.localdomain) e «localhost», per i quali questo sistema deve
       [...]
       Altre destinazioni per conto delle quali accettare posta:
 Tu:   Digita quello che hai risposto alla domanda "Mail name del sistema"
 Exim: Inserire le reti di computer locali per i quali si accetta di fare il
       relay della posta.
       [...]
       Sistemi per i quali fare il relay:
 Tu:   Lascia_la_riga_vuota
 Exim: Inserire il nome host del sistema a cui viene inviata la posta in uscita.
       [...]
       Sistema che gestisce la posta in uscita per questo host (smarthost):

 Tu:   //smtp.autistici.org::587//
 Exim: Si può scegliere di riscrivere l'intestazione dei messaggi di posta inQualche appunto sparso
       uscita per far sembrare che provengano da un altro sistema,
       [...]
       Omettere il mail name locale dai messaggi in uscita?
 Tu:   Sì
 Exim: Dato che si è scelto di non mostrare il mail name locale, bisogna
       specificare il nome di dominio da usare per la posta proveniente
       [...]
       Nome di dominio visibile per gli utenti locali:                                                                                                                             
 Tu:   Digita quello che hai risposto alla domanda "Mail name del sistema"
 Exim: Nella modalità predefinita, Exim esegue delle richieste DNS all'avvio,
       quando riceve e consegna un messaggio e in altre occasioni, allo
       [...]
       Mantenere al minimo il numero di richieste DNS (dial-on-demand)?
 Tu:   Sì

OK, l’installazione è terminata, dovrebbe essere lanciato l’MTA exim4

Starting MTA: exim4.

Se hai commesso errori o non sei sicuro della configurazione puoi sempre rivedere tutto con il comando:

# dpkg-reconfigure exim4-config

Le risposte verranno prese automaticamente dalla precedente configurazione ma potrai modificarle a tuo piacere. Occorre ancora qualche piccola configurazione manuale quindi armato del tuo editor preferito modifica (sempre con permessi di utente root altimenti non puoi salvare nulla):

a) /etc/exim4/passwd.client

Accoda la linea:

*.autistici.org:tuo_indirizzo_su@investici.org:tua_password

esempio:

ed /etc/exim4/passwd.client
/etc/exim4/passwd.client: No such file or directory [niente di preoccupante, vorrà dire che lo creeremo il file]
a
*.autistici.org:catastrofe@inventati.org:n3.3nf,ue
wq

b) /etc/email-addresses

Accoda una linea come la seguente:

tuo_username_sul_tuo_computer: tuo_indirizzo_su@investici.org

esempio:

echo devastatore: catastrofe@inventati.org » /etc/email-addresses

Devi ricaricare la configurazione di exim4 prima di testare il tutto quindi:

# /etc/init.d/exim4 reload

Prova a mandarti una email al tuo indirizzo su Investici e verifica il file

# less /var/log/exim4/mainlog

Trucchetto. Se a less dai il comando <Shift>+<f> leggerà automaticamente qualsiasi cosa venga accodata al file. Per chiudere less dovrai dare <CTRL>+<c> e poi <q>

dovrebbe esserci un messaggio come il seguente:

 2005-11-04 14:44:23 1EY1rj-0002uP-27 <= catastrofe@inventati.org U=andrea P=
 local S=774 id=20051104134423.GA11165@demolitore
 2005-11-04 14:44:29 1EY1rj-0002uP-27 => catastrofe@inventati.org R=smarthost
 T=remote_smtp_smarthost H=smtp.autistici.org [62.94.221.169] X=TLS-1.0:RSA_A
 ES_256_CBC_SHA:32
 2005-11-04 14:44:29 1EY1rj-0002uP-27 Completed

Se è così siamo a buon punto ma verifica se effettivamente ti è arrivato scaricandolo dal server.

I comandi per gestire il daemon Exim4 oltre a reload sono:

# /etc/init.d/exim4 stop|start|restart|reload

Verifica dell'identità del server

In questo modo exim4 utilizza il certificato del server per stabilire una connessione sicura ma, c’è sempre un ma, potrebbe essere che il server a cui ci stiamo rivolgendo non sia effettivamente il server di autistici ma un altro server che si intromette per fregarti la password (Middle-Man, Uomo di Mezzo) per essere sicuri che il server sia davvero quello giusto occorre che exim4 verifichi l’identità in modo sicuro, questo lo si ottiene fornendo un certificato pubblico che può essere confrontato con il relativo certificato privato posseduto solo ed unicamnete dal server di Autistici quindi:

# wget -O peercerts http://ca.autistici.org/ca.pem

Questo scarica il certificato pubblico nel file peercerts (puoi chiamarlo come vuoi ma poi ricordati di utilizzare lo stesso nome nella configurazione). Ora occorre modificare a mano il file /etc/exim4/exim4.conf.template. Cerca la sezione: “transport/30_exim4-config_remote_smtp_smarthost”, linea 1346 probabilmente, e aggiungi le linee contrassegnate con un “+”.

remote_smtp_smarthost:
  debug_print = "T: remote_smtp_smarthost for $local_part@$domain"
  driver = smtp
  hosts_try_auth = ${if exists {CONFDIR/passwd.client}{DCsmarthost}{}}
+ hosts_require_tls = DCsmarthost
  tls_tempfail_tryclear = false
+ tls_verify_certificates = /etc/exim4/peercerts
  DEBCONFheaders_rewriteDEBCONF
  DEBCONFreturn_pathDEBCONF

OK, adesso devi mettere il file col certificato in /etc/exim4 e ricaricare la configurazione quindi:

# mv peercerts /etc/exim4/

# /etc/init.d/exim4 reload

Ci siamo, solo tre cose ancora:

1) devi cambiare la tua password su Investici se hai testato Exim4 senza utilizzare il certificato di autenticazione, qualcuno potrebbe aver catturato la tua password frapponendosi tra te e autistici.org.

2) la password nel file /etc/exim4/passwd.client è leggibile da chiunque acceda al pc con privilegio di root quindi sarebbe buona cosa far si che il filesystem venga criptato. E’ importante sapere che anche criptando il filesystem, se qualcuno dovesse accedere come root alla tua macchina potrebbe facilmente scavalcare l’ostacolo.

3) Di default exim4 limita il numero di consegne eseguibili in un singolo processo a 10. Ciò è una seccatura per utenti dial-up (modem analogico) perchè capita spesso che le email da scaricare siano più di 10 col risultato che occorre aspettare la successiva esecuzione di una coda di exim4 (vedi cron) per vederli apparire nel MUA preferito. Per ovviare all’inconveniente occorre settare a 0 (zero) la seguente opzione. Dovete quindi aprire con un editor il file:

/etc/exim4/exim4.conf.template

e aggiungere dove volete, ma nella sezione main, la seguente riga

smtp_accept_queue_per_connection=0

Per comodità l’ho piazzata dopo l’opzione “message_size_limit”.

Di seguito la traduzione del manuale di exim4:

smtp_accept_queue_per_connection
Uso:  main
Tipo:  integer
Predefinito:  10

Questa opzione limita il numero di consegne processate quando Exim parte
automaticamente quando riceve messaggi via SMTP, via demone o attraverso
l'uso delle opzioni -bs o -bS. Se il valore dell'opzione è maggiore di
zero, e il numero di messaggi ricevuti in una singola sessione SMTP
eccede questo numero, i messaggi successivi vengono accodati nella coda
ma non viene avviato il processo di consegna. Questo aiuta a limitare il
numero di processi quando un server viene riavviato dopo un'interruzione
e ci sono molte email in attesa su altri sistemi. Su grandi sistemi, il
valore predefinito probabilmente deve essere aumentato, su sistemi
dial-in probabilmente andreabbe impostato a zero (disabilitato).

Ringraziamenti

Ho scritto questa incompleta e imprecisa guida perchè mi son trovato nella merda, ho provato per giorni a configurare exim4 e non ci riuscivo poi ho chiesto aiuto ad un vero amico che ha avuto la pazienza di starmi dietro. In realtà tutta la parte tecnica è opera sua io mi sono limitato a metterla in bella copia. (nota dell’amico: non è vero sei troppo modesto).

Appendice 1: Password su filesystem cifrato

bighost:~# dpkg -l | grep cfs
ii  cfs            1.4.1-15       Cryptographic Filesystem
bighost:~# su -s /bin/bash - Debian-exim
Debian-exim@bighost:~$ cmkdir zeximp
Key:
Again:
Debian-exim@bighost:~$ cattach zeximp
Key:
Debian-exim@bighost:~$ cd /crypt
Debian-exim@bighost:/crypt$ cd zeximp
Debian-exim@bighost:/crypt/zeximp$ cp /etc/exim4/passwd.client .
Debian-exim@bighost:/crypt/zeximp$ ls -l
total 4
-rw-r-----  1 Debian-exim Debian-exim XX Oct 23 19:56 passwd.client
Debian-exim@bighost:/crypt/zeximp$ exit
logout
bighost:~# cd /etc/exim4/
bighost:/etc/exim4# wipe -fs passwd.client
bighost:/etc/exim4# ln -s /crypt/zeximp/passwd.client 
bighost:/etc/exim4# ls -l
total 76
drwxr-xr-x  9 root root  4096 Oct 22 01:52 conf.d
-rw-r--r--  1 root root 62255 May 27 10:10 exim4.conf.template
lrwxrwxrwx  1 root root    27 Oct 23 19:57 passwd.client -> /crypt/zeximp/passwd.client
-rw-r--r--  1 root root  1026 Oct 23 17:52 update-exim4.conf.conf
bighost:/etc/exim4# cd /etc/init.d/
bighost:/etc/init.d# patch -p2 < /tmp/_etc_init.d_exim4-20051023cfs.diff 
patching file exim4
bighost:/etc/init.d# 

_etc_init.d_exim4-20051023cfs.diff

--- etc/init.d/exim4	2005-10-23 20:25:05.000000000 +0200
+++ etc/init.d/exim4	2005-10-23 20:25:31.000000000 +0200
@@ -5,6 +5,7 @@
 # Modified for Debian GNU/Linux by Ian Murdock <imurdock@gnu.ai.mit.edu>.
 # Modified for exim by Tim Cutts <timc@chiark.greenend.org.uk>
 # Modified for exim4 by Andreas Metzler <ametzler@downhill.at.eu.org>
+# Modified for using cfs by <http://www.inventati.org/inventa>
 
 set -e
 
@@ -51,6 +52,11 @@
 
 start_exim()
 {
+  (cd /crypt; ls > /dev/null) # Trigger fucking update.
+  ls /crypt | grep -q '^zeximp$' \
+      || su -s /bin/bash \
+           -c "cattach zeximp; (cd /crypt; cd zeximp; ls > /dev/null)" \
+           - Debian-exim
   case ${QUEUERUNNER} in
     combined)
       start-stop-daemon --start --pidfile "$PIDFILE" \
 
  ai-exim4.txt · Ultima modifica: 07.04.2012 16:42 by 127.0.0.1
 
RSS: Modifiche Recenti Contenuti: Licenza Creative Commons Valid XHTML 1.0 Valid CSS Sito fatto con: DokuWiki Sito ospitato da: Inventati.org