Mailserver con Exim, Mutt e Dovecot

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Debian-swirl.png Versioni Compatibili

ERRORE: valore non valido ( Debian Etch 4.0
Debian Lenny 5.0
Debian Squeeze
Debian Sid )! Vedi qui.

Introduzione

In questa guida vedremo come installare un server di posta elettronica utilizzando tre strumenti installabili dai repository di Debian: Exim, Mutt e Dovecot.

Exim

La prima cosa che dobbiamo installare è un Mail Transfer Agent (MTA). Un MTA è un software il cui compito è quello di smistare e ricevere la posta da e verso altri server. Come MTA useremo Exim, giunto alla versione 4:

apt-get install exim4-config 

Questa installazione non configurerà automaticamente il pacchetto, per cui al termine dovremo eseguirne la riconfigurazione:

dpkg-reconfigure exim4-config 

Vediamo nel dettaglio la configurazione:

  • General type of mail configuration: scegliete internet site; le email saranno inviate e ricevute direttamente tramite il server SMTP del vostro provider.
  • System mail name dovrebbe essere lo stesso FQDN utilizzato nei record DNS MX.
  • IP-addresses to listen on for incoming SMTP connections deve essere l'indirizzo IP della scheda di rete che connette il server a internet. Se il server si trova dietro a un firewall, andrà poi configurato quest'ultimo per effettuare il forward delle richieste POP3 e IMAP verso l'IP del nostro server di posta
  • Local domains indica i domini che dovranno essere serviti localmente. In questa guida sarà utilizzato il dominio locale raptor.loc. I domini non specificati qui saranno serviti attraverso internet.
  • Domains to relay mail for: indicate ogni indirizzo IP non locale (se ne avete) che avete inserito nelle configurazioni precedenti
  • machines to relay mail for: non stiamo usando questo server come smarthost, quindi lasciate il campo vuoto.
  • delivery method for local mail: varia a seconda del tipo di mail server che si utilizza. In questa guida saranno installati un server POP3 e un server IMAP, e sarà scelto come formato per le caselle di posta il formato Maildir, in cui le mail sono salvate nella home di ogni utente.

/etc/aliases

Questo è il file in cui vengono impostati gli alias per i diversi account presenti nel sistema. Di default dovreste già avere una lunga lista di indirizzi email utilizzati dai servizi di sistema:

# /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root

Se intendete dirottare la posta di root verso il vostro utente normale, potete aggiungere alla fine del file la linea:

root: vostro_account_utente

DNS MX Records

Se desideriamo che il nostro mailserver sia conosciuto su internet, dobbiamo registrare un Mail eXchange (MX) record per ogni dominio non locale.
Se abbiamo un server DNS gestito da noi e che non serve solo la nostra LAN, possiamo aggiungere i record MX per conto nostro, con una linea simile a questa:

IN MX 10 mail.yourdomain.com 

Dobbiamo inoltre aggiungere anche una linea che specifichi l'indirizzo IP del mailserver chiamato mail:

mail A X.X.X.X 

dove X.X.X.X è l'indirizzo IP pubblico del mailserver o del firewall che lo protegge.
Una volta effettuate le modifiche dobbiamo riavviare il nostro server DNS:

/etc/init.d/bind9 restart 

Ora possiamo testare il nostro record MX con un host lookup specifico:

host -t MX yourdomainhere.com 

Dovrebbe esserci restituito qualcosa di simile:

nostrodiminio.it MX 10 mail.nostrodominio.it 

Mutt

Mutt è un Mail User Agent (MUA). Un MUA è un programma che permette agli utenti di collegarsi alla loro mailbox per controllare e leggere le proprie mail. Per installarlo seguiamo la solita strada:

apt-get install mutt

Mutt e il formato Maildir

Mutt di default si aspetta di utilizzare delle mailbox in formato mailbox. Siccome in questa guida intendiamo utilizzare il formato maildir, avremo bisogno di introdurre alcune modifiche alla configurazione del programma. Gli utenti del sistema dovranno avere il loro file di configurazione all'interno della loro home directory. Prima di tutto, come utente normale diverso da root, copiamo il file di configurazione di esempio di mutt:

zcat /usr/share/doc/mutt/examples/sample.muttrc.gz > ~/.muttrc 

Osservando il file, si può notare che l'ultima riga punta ad un altro file, ~/.muttrc-local. Commentatela e sostituitela con queste:

set mbox_type=Maildir
set folder="~/Maildir"
set mask="!^\\.[^.]"
set mbox="~/Maildir"
set record="+.Sent"
set postponed="+.Drafts"
set spoolfile="~/Maildir"

Errori comuni

Se, all'avvio di Mutt, ricevete un errore come questo:

Error in /home/ferdy/.muttrc, line 339: dset: unknown command
source: errors in /home/ferdy/.muttrc

significa che ci sono errori di battitura all'interno del file che abbiamo appena visto.
Se invece ottenete un errore come questo:

Error in /home/ferdy/.muttrc, line 346: /home/ferdy/.muttrc-local: No such file or directory
source: errors in /home/ferdy/.muttrc

significa che avete inserito le righe viste in precedenza, ma vi siete dimenticati di commentare o cancellare la linea che fa riferimento al file ~/.muttrc-local.

Estendere le modifiche a tutti gli utenti

Se desiderate che le modifiche appena effettuate abbiano effetto su tutti gli utenti, dovete copiare la versione modificata di .muttrc nella home directory di ogni utente e dovete essere certi che ogni nuovo utente riceva la versione modificata di questo file.

Impostare .muttrc per tutti gli utenti

Per effettuare la modifica velocemente, potete utilizzare lo script seguente. Create un nuovo file script.sh sul vostro mailserver, copiateci il contenuto listato qui sotto, rendetelo eseguibile (chmod +x script.sh) e infine eseguitelo come utente root da una home directory che contiene il corretto file .muttrc file.

#!/bin/bash

# Replace this line if your users' directories are stored somewhere else:
HOMEDIR="/home/"

if [ `id -u` != "0" ]  # Are you root?
then
  echo "Error: This script must be run as the root user."
  exit
elif [ ! -e .muttrc ]  # Is .muttrc here?
then
  echo "Error: .muttrc is not in this directory.  Move to a directory where the"
  echo "correct file to be copied exists."
  exit
fi

for x in `ls $HOMEDIR`; do
  cp .muttrc $HOMEDIR$x
  chown $x:$x $HOMEDIR$x/.muttrc

  # Uncomment these if you need to copy .muttrc-local, too...
  # And make sure .muttrc-local is in this directory!
  #cp .muttrc-local $HOMEDIR$x
  #chown $x:$x $HOMEDIR$x/.muttrc-local

  echo "Copied to $HOMEDIR$x ..."
done

echo "Done!"

exit

Per essere certi che anche gli utenti di nuova creazione ricevano una copia corretta del file .muttrc, mettetene una copia all'interno della directory /etc/skel.

Dovecot

A questo punto, se abbiamo installato Mutt, i nostri utenti possono entrare sul mailserver via SSH e leggere le loro email. Però non possono ancora leggere le email attraverso un programma come Thunderbird, Icedove o Outlook. Perchè ciò sia possibile, dobbiamo adesso installare un server IMAP/POP3. In questa guida verrà utilizzato Dovecot.

  • se volete installare un server IMAP:
apt-get install dovecot-imapd
  • se volete installare un server POP3:
apt-get install dovecot-pop3d
  • se volete offire entrambi i servizi, installateli entrambi.
Info.png Nota
La differenza principale tra IMAP e POP è il modo di archiviare le email. Su un server IMAP le email sono salvate sul mailserver, mentre con un server POP le email sono scaricate in locale dal client che le legge. IMAP permette quindi di leggere le stesse mail da più macchine, ma richiede più spazio di archiviazione sul server.

Qualsiasi installazione sia stata fatta, avrete installato anche il pacchetto dovecot-common, che è il "motore" vero e proprio di Dovecot.

Configurazione di Dovecot

Il file di configurazione di Dovecot è /etc/dovecot/dovecot.conf. Apritelo e cercate una linea come la seguente:

# Protocols we want to be serving: imap imaps pop3 pop3s
# If you only want to use dovecot-auth, you can set this to "none".
#protocols = imap imaps

Decommentate la linea #protocols e aggiungete i servizi che il vostro server dovrà supportare. La s in imaps e in pop3s indica un protocollo secure, in cui le password non sono inviate al server in formato plain text. A seconda del server che avete installato, specificate le voci corrette tra queste:

  • imap
  • imaps
  • pop3
  • pop3s

Un riavvio di Dovecot dovrebbe ora essere sufficiente:

/etc/init.d/dovecot restart


--Ferdybassi 14:55, 4 gen 2010 (CET)