Mailserver con Exim, Mutt e Dovecot
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 installare un server IMAP/POP server. 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.
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)