Chapitre 10. Monter un serveur de mail

Table des matières
1. Configurer Postfix
1.1. Installer Postfix
1.2. main.cf
1.3. Les alias
1.4. Les adresses virtuelles
1.5. Les commandes de base d'administration
2. Ajouter des serveurs POP et/ou IMAP...
2.1. Installer un serveur POP3
2.2. Installer un serveur IMAP

Vous avez réussi à faire fonctionner votre serveur DNS ? Vous avez prévu des champs "MX" pour faire fonctionner un serveur mail ? Alors suivez ce qui suit...

1. Configurer Postfix

1.1. Installer Postfix

Si vous avez sauté le chapitre Configurer son serveur de mail local, alors je vous invite à y retourner et à suivre la procédure qui y est décrite ! Vous aurez alors un serveur Postfix avec une configuration pour délivrer le mail en local.

1.2. main.cf

La configuration de Postfix se fait dans le fichier /etc/postfix/main.cf. Utilisez mon fichier d'exemple pour comprendre les paramètres et bien configurer votre serveur :


# cp ~/config/main.cf /etc/postfix/

ou :


% wget http://people.via.ecp.fr/~alexis/formation-linux/config/main.cf
# mv main.cf /etc/postfix/

Une fois que vous avez personnalisé le fichier main.cf en lisant les commentaires contenus dans le fichier, il faut dire à Postfix de relire sa configuration :


# /etc/init.d/postfix reload

Les utilisateurs qui ont des comptes sur le serveur peuvent alors reçevoir du mail à l'adresse nom_du_compte@nom_de_domaine. Le mail reçu pour l'utilisateur toto est stocké dans le fichier /var/mail/toto (sauf si l'utilisateur a un fichier .procmailrc dans son home : cf Le mail en console pour comprendre procmail).

1.3. Les alias

Les alias permettent de faire des correspondances entre des adresses mail et des comptes locaux, d'autres adresses mail ou encore des commandes à exécuter. Ils sont définis dans le fichier /etc/aliases. La syntaxe de ce fichier est très simple :


# /etc/aliases
# Fichier d'alias mail
# NE PAS OUBLIER d'exécuter "newaliases" après chaque modification

# Fait suivre le mail reçu à l'adresse <alexis.delattre@nom_de_domaine>
# au compte local "alexis" :
alexis.delattre:	alexis

# Fait suivre le mail reçu à l'adresse <toto@nom_de_domaine>
# à l'adresse <titi@yahoo.fr> :
toto:			titi@yahoo.fr

# Fait suivre le mail reçu à l'adresse <machin@nom_de_domaine>
# aux comptes "user1" et "user2" et à l'adresse <bidulle@exemple.org> :
machin:			user1,user2,bidulle@exemple.org

# A la réception d'un mail à l'adresse <bruit@nom_de_domaine>,
# exécute la commande "/usr/lib/ecartis/ecartis -s bruit" :
bruit:			"|/usr/lib/ecartis/ecartis -s bruit"

Normalement, on définit aussi dans ce fichier à quel compte local (ou à quelle adresse) le serveur de mail doit faire suivre le mail destiné à l'utilisateur root. En effet, comme il n'y a pas besoin d'avoir tous les pouvois pour lire le mail du root, il serait absurde (et même dangereux) de lire les mails du root en tant que root. Il est préférable de faire suivre le mail du root vers un autre compte ou une autre adresse.

Il faut également faire des alias pour les adresses postmaster et abuse, qui sont deux adresses standard pour pouvoir joindre les administrateurs du serveur de mail d'un domaine. Par exemple, si vous utilisez un compte local admin pour lire les logs et les mails d'administration, ajoutez les lignes suivantes au fichier d'alias :


root:			admin
postmaster:		admin
abuse:			admin

Ensuite, exécutez la commande suivante pour qu'il regénère la base de donnée d'alias contenue dans le fichier /etc/aliases.db (ne pas oublier d'exécuter cette commande après chaque modification du fichier /etc/aliases) :


# newaliases

1.4. Les adresses virtuelles

Quand le domaine de l'adresse mail n'est pas celui de la machine, on passe par un mécanisme d'adresses virtuelles pour faire correspondre ces adresses mail à des comptes locaux, à d'autres adresses mail ou encore à des commandes à exécuter.

Le nom du fichier contenant les correspondances pour les adresses virtuelles est définit dans le fichier de configuration de Postfix /etc/postfix/main.cf par le paramètre virtual_maps :


virtual_maps = hash:/etc/postfix/virtual

La syntaxe du fichier est semblable à celle du fichier d'alias, mais sans la séparation par les deux-points :


# /etc/postfix/virtual
# Fichier de correspondance pour les adresses virtuelles
# NE PAS OUBLIER d'exécuter "postmap /etc/postfix/virtual"
# après chaque modification

# Fait correspondre une adresse virtuelle à un compte local
postmaster@exemple.org	admin
alexis@exemple.org	alexis

# Fait correspondre une adresse virtuelle à une autre adresse mail
toto@exemple.org	titi@yahoo.fr

# Fait correspondre une adresse virtuelle à une commande à exécuter
bruit@exemple.org	"|/usr/lib/ecartis/ecartis -s bruit"

Ensuite, exécutez la commande suivante pour qu'il tienne compte des modifications :


# postmap /etc/postfix/virtual

1.5. Les commandes de base d'administration

Voici une petite liste des commandes de base d'administration de Postfix :

  • Liste la queue de mails en attente d'envoi :

    
% mailq
    

    Cette commande est équivalente à la commande postqueue -p.

  • Force Postfix à réessayer d'envoyer les mails en attente d'envoi immédiatement :

    
% postqueue -f
    
  • Supprime un mail de la queue des mails en attente d'envoi :

    
# postsuper -d mail_ID
    

    mail_ID est l'identifiant du mail dans la queue (il apparaît à gauche dans la sortie de la commande mailq).

2. Ajouter des serveurs POP et/ou IMAP...

Attention

Attention, les protocoles POP et IMAP font transiter les mots de passe en clair sur le réseau ! Il est possible de les sécuriser en les faisant passer par des tunnels SSH (cf L'accès à distance par SSH) ou faisant du SSL (non expliqué ici).

2.1. Installer un serveur POP3

Pour ajouter un service POP3 à votre serveur de mail, il suffit d'installer qpopper :


# apt-get install qpopper

La configuration de qpopper se fait dans le fichier /etc/qpopper.conf. Par défaut, tout est commenté, mais les paramètres par défaut doivent vous permettre de l'utiliser normalement.

2.2. Installer un serveur IMAP

De même, mais avec le package uw-imapd :


# apt-get install uw-imapd

Il n'y a pas de fichier de configuration... donc ça devrait marcher tout seul !