configurare un mailserver domestico con exim4

Discussioni sui sistemi operativi Unix like, con un occhio di riguardo per Linux.

Moderatori: cb_123, thrantir, netvandal, CaberNET54

configurare un mailserver domestico con exim4

Messaggiodi dannyb78 il 03 dic 2007, 12:51

Dopo avervi stressati nelle settimane scorse con i miei problemi da principiante, nel tentativo (riuscito) di costruirmi un server di prova per siti web basati su php/mysql, eccomi qua con un nuovo capitolo della saga. Alcuni degli script del sito su cui sto lavorando devono essere in grado di inviare delle email di conferma agli utenti o agli amministratori del sito. Per verificare il funzionamento di questi script ho quindi deciso di installare exim4, lo stesso mailserver presente sul server che pubblicherà il sito.
Dopo ore di frustranti ricerche sul web ho finalmente trovato questa guida su http://www.inventati.org che riporto, ritenendola interessante per la comunità. Ringrazio ovviamente l'autore e tutti coloro che vi hanno collaborato.
La guida è tuttaltro che perfetta ma se si hanno un minimo di nozioni di base sui mailserver e sulle reti consente di impostare tutte le opzioni necessarie per un server domesticoo per un piccolo sito internet.

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: //mail.autistici.org//
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:

smtp.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
smtp.autistici.org:catastrofe@inventati.org:n3.3nf,ue
wqb) /etc/email-addresses

Accoda una linea come la seguente:

tuo_username_sul_tuo_computer: mailto:tuo_indirizzo_su@investici.org

esempio:

echo devastatore: mailto: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 <= mailto:catastrofe@inventati.org U=andrea P=
local S=774 id=20051104134423.GA11165@demolitore
2005-11-04 14:44:29 1EY1rj-0002uP-27 => mailto: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 SMPT, 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 m**da, 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" \
CM Cosmos S | CM Pro Real Power 1000W | ASUS P6T6 WS Revolution | intel i7 965 extreme | CM V8 | Corsair DHX 1600C8 6*2GB | ASUS EAH4870X2 | Creative X-Fi Titanium Fatal1ty Champion Series | WD Velociraptor 300 +Seagate 1,5TB | ASUS Bluray BC-08B1ST | NZXT Sentry LX | Panasonic TH-D42PT84

MTB CLUB CECINA - XII GRANFONDO COSTA DEGLI ETRUSCHI - Marina di Bibbona ||| Foto edizione 2009!!!
Avatar utente
dannyb78
Luce delle stelle
Luce delle stelle
 
Messaggi: 2648
Iscritto il: 26 giu 2005, 16:33
Località: Cecina

 

Re: configurare un mailserver domestico con exim4

Messaggiodi CaberNET54 il 03 dic 2007, 14:14

:D Altra ottima prova di approfondimento delle enormi potenzialità presenti nel mondo Linux ed opensource, complimenti Dannyb78 =D>
Immagine
ASROCK 880G Extreme3 - PHENOM II X6 1055T (OC Daily 3724 Mhz @ 1,3375 Vcore rock-solid) - Cooling by Noctua NH-D14 - Corsair 8GB (4x XMS3 2GB) PC-12800 - POV 8800GT 512Mb @ EXO 650/1950/1625 + Zalman GV1000 - OCZ Vertex2 120GB - 2 x WD Caviar 1 Tb - Enermax Chakra Monster Fan & Modu82+ 625W - APC BACK-UPS RS 800VA.
Immagine
multiboot (WINDOWS7 Ultimate 64bit - UBUNTU 10.04 LTS 64bit)
SEMINA LINUX CHE TANTO WINDOWS SI PIANTA DA SOLO
Avatar utente
CaberNET54
Moderatore
Moderatore
 
Messaggi: 2335
Iscritto il: 02 gen 2004, 08:17
Località: Venezia

Re: configurare un mailserver domestico con exim4

Messaggiodi thrantir il 03 dic 2007, 14:43

:thumleft: :thumleft: :thumleft:
Fletto i muscoli e sono nel vuoto
Principi di architettura degli eleboratori
X postare immagini
-----BEGIN GEEK CODE BLOCK-----
GCS/IT/L/MU d- s: a C++$>+++ UL+>++ P L+++>++++ E--- W++ N++>+++ o+>++ K? w O-- M- VMS? V- PS++ Y+ PGP+ t 5? X+ R++>+++ tv+ b+++>++++ DI+++ D++ G e++ h- r++ y++
------END GEEK CODE BLOCK------
Addio Dani, sono più ricco perchè ti ho conosciuto
Avatar utente
thrantir
Moderatore
Moderatore
 
Messaggi: 8897
Iscritto il: 27 mag 2003, 13:32
Località: Pisa

Re: configurare un mailserver domestico con exim4

Messaggiodi dannyb78 il 03 dic 2007, 16:47

CaberNET54 ha scritto::D Altra ottima prova di approfondimento delle enormi potenzialità presenti nel mondo Linux ed opensource, complimenti Dannyb78 =D>

complimenti all'autore della guida, io ho solo seguito i suoi consigli.

Certo che oggi con un po' di pazienza si riesce a fare di tutto seguendo i consigli dei forum e gli howto dei produttori. Due settimane fa non avevo mai visto linux, oggi ho un web server perfettamente funzionante in grado di ospitare siti php/mysql, con un mail server e addirittura un'istanza di phplist tutto perfettamente funzionante. Terrificante 8O
CM Cosmos S | CM Pro Real Power 1000W | ASUS P6T6 WS Revolution | intel i7 965 extreme | CM V8 | Corsair DHX 1600C8 6*2GB | ASUS EAH4870X2 | Creative X-Fi Titanium Fatal1ty Champion Series | WD Velociraptor 300 +Seagate 1,5TB | ASUS Bluray BC-08B1ST | NZXT Sentry LX | Panasonic TH-D42PT84

MTB CLUB CECINA - XII GRANFONDO COSTA DEGLI ETRUSCHI - Marina di Bibbona ||| Foto edizione 2009!!!
Avatar utente
dannyb78
Luce delle stelle
Luce delle stelle
 
Messaggi: 2648
Iscritto il: 26 giu 2005, 16:33
Località: Cecina


Torna a Linux e Unix

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

cron