Serveur SMTP, POP3 et IMAP : Postfix et Courier-imap

17 Sep. 2006
Auteur : tuffgong
Responsable : TrustRobot
Score ( voter ) :
Connexes : Même auteur | Même responsable | Historique
Ce tutoriel a pour vocation de vous aider pour la mise en place d'un système de messagerie complet sur votre système GNU/Linux supportant les protocoles POP3 et IMAP. Ce dernier sera également équipé d'une protection antivirale ainsi que de filtres anti-SPAM. Vous trouverez plus d'infos sur le protocole imap ici. Avant toute chose, il est impératif de s'assurer que le package sendmail n'est pas installé sur votre système et de le supprimer dans le cas contraire.

1. Logiciels utilisés:

2. Postfix:

2.1 Installation de Postfix:

Télécharger les sources les plus à jour de postfix ici ou là. Avant de compiler postfix, vous devez créer en root un utilisateur postfix avec son propre groupe ainsi qu'un groupe appelé postdrop sans aucun utilisateur:
# groupadd postfix # groupadd postdrop # useradd -g postfix -d /dev/null -s /bin/false postfix
Rajoutez également la ligne suivante dans le fichier /etc/aliases:
postfix: root
L'installation se déroule ainsi:
$ tar xvzf postfix-1.1.11.tar.gz -C /tmp $ cd /tmp/postfix-1.1.11/ $ make $ su Password # make install

2.2 Configuration de Postfix:

3. Procmail:

3.1 Installation de Procmail:

Récupérez tout d'abord les sources de Procmail ici. Décompressez l'archive et éditez le fichier authenticate.c avant la compilation pour ajouter le support des Maildir:
$ tar xvzf procmail-3.22.tar.gz $ cd procmail-3.22/src/ $ cp authenticate.c authenticate.c.backup $ sed -e 's|#define MAILSPOOLHOME "/.mail"|#define MAILSPOOLHOME "/Maildir/"|g' authenticate.c.backup > authenticate.c $ cd .. $ su Password: # echo "" | make BASENAME=/usr install

3.2 Configuration de Procmail:

Chaque utilisateur devra enregistrer le fichier fourni ici dans son répertoire personnel.
$ mv /où_est/procmail ~/.procmailrc $ chmod 600 ~/.procmailrc $ su Password # touch /var/log/procmailrc.log # chmod 666 /var/log/procmailrc.log

4. Courier-Imap:

4.1 Installation de Courier-imap:

Commencez par téléchargez les sources les plus à jour de courier-imap ici et décompressez l'archive de la manière suivante:
$ tar jxvf courier-imap-1.6.0.20021025.tar.bz2 -C /tmp $ cd /tmp/courier-imap-1.6.0.20021025
La compilation de courier-imap s'effectue ainsi:
$ ./configure --prefix=/usr/courier \ --sysconfdir=/etc/courier \ --with-piddir=/var/run \ --with-authpam \ --without-authuserdb \ --without-authmysql \ --enable-workarounds-for-imap-client-bugs $ make $ su Password: # make install # make install-configure

4.2 Configuration de Courier-imap:

5. Avmailgate:

Télechargez ici Antivir Mailgate for Linux qui constitue une protection antivirale pour votre système de messagerie sous Linux compatible avec Postfix. De plus, Avmailgate est gratuit pour un usage personnel. Il vous suffit pour cela de récupérer une licence gratuite ici L'installation s'effectue ainsi:
$ tar xvzf avlxmgt.tgz -C /tmp $ cd /tmp/antivir-mailgate-2.0.1.9/ $ su Password: # ./avinstall.pl
Le programme d'installation vous posera une série de question dont les réponses par défaut conviennent dans la majorité des cas. Il vous demandera également de spécifier le chemin d'accès où est stocké la licence du programme. Par ailleurs, rajoutez les deux lignes suivantes dans le fichier /etc/services:
antivir 10024/tcp
smtp-backdoor 10025/tcp
Editez également le fichier /etc/avmailgate.conf afin de modifier les lignes:
ListenAddress localhost port antivir
ForwardTo SMTP: localhost port smtp-backdoor

6. Anomy Mail Sanitizer:

6.1 Installation de Anomy Mail Sanitizer:

Récupérez Anomy Mail Sanitizer ici Installez le ensuite de la manière suivante:
$ tar xvzf anomy-sanitizer-1.57.tar.gz -C /temp $ cd /tmp/ $ su Password # mv anomy /usr # chmod 750 /usr/anomy

6.2 Configuration de Anomy Mail Sanitizer:

Enregistrer le fichier fourni ici dans /usr/anomy/anomy.conf.
$ su Password: # cp /où_est/anomy /usr/anomy/anomy.conf

7. Spam Assassin:

Téléchargez Spam assassin ici et installez le comme suit:
$ tar xvzf Mail-SpamAssassin-2.43.tar.gz $ cd /tmp/Mail-SpamAssassin-2.43 $ perl Makefile.PL $ make $ su Password # make install

8. Razor:

Récupérez les sources de razor-agents ici et installez le:
$ tar xvzf razor-agents-2.22.tar.gz -C /tmp $ cd /tmp/razor-agents-2.22 $ perl Makefile.PL $ make $ su Password # make install

9. Création des Maildir:

Chaque utilisateur souhaitant disposer d'un compte de messagerie devra créer un répertoire intitulé Maildir dans son répertoire personnel via la commande maildirmake:
$ cd ~ $ maildirmake Maildir
Cette commande crée donc le répertoire ~/Maildir servant à stocker les courriel de l'utilisateur ainsi que le répertoire ~/Maildir/.Trash qui servira de corbeille pour les messages effacés. Il est bien entendu tout à fait possible de créer d'autres dossiers tels que les dossiers Envoyés et Brouillons afin de gérer au mieux ces messages. Cela s'effectue ainsi:
$ maildirmake -f Envoyés Maildir $ maildirmake -f Brouillons Maildir
Il convient également de créer un dossier SPAM dédié à la réception de cet type de messages:
$maildirmake /home/admin/Maildir/.Spam
Pour finir, lancez avmailgate, postfix, courier-imap et courier-pop3: Vous pouvez à présent tester l'envoi de courriers en local via la commande mail:
$ mail -s "sujet_du_message" destinataire [Entrée] $ test [Entrée] $ . [Entrée] $ Cc: [Entrée]
Le destinataire doit être un nom d'utilisateur existant sur votre système. Vous pouvez également vérifier le bon fonctionnement de courier-imap à l'aide d'un client telnet:
$ telnet 127.0.0.1 imap2 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. * OK Courier-IMAP ready. Copyright 1998-2002 Double Precision, Inc. See COPYING for distribution information. AB LOGIN destinataire mot_de_passe AB OK LOGIN Ok. BC SELECT inbox * FLAGS (\Draft \Answered \Flagged \Deleted \Seen \Recent) * OK [PERMANENTFLAGS (\Draft \Answered \Flagged \Deleted \Seen)] Limited * 1 EXISTS * 1 RECENT * OK [UIDVALIDITY 1037125269] Ok BC OK [READ-WRITE] Ok ZZZZ LOGOUT * BYE Courier-IMAP server shutting down ZZZZ OK LOGOUT completed Connection closed by foreign host.
On remarque qu'ici tout fonctionne puisque le mail a bien été délivré par postfix et pris en charge par courier-imap. Il ne vous reste plus qu'à configurer votre client de messagerie préféré afin qu'il récupère vos messages via le protocole imap ou pop3. Ce tutoriel n'ayant pas pour vocation de présenter la configuration des clients de messagerie, je vous renvoie ici pour la configuration des principaux clients de messagerie disponibles sous GNU/Linux et pour la configuration avec le protocole imap de ceux présents sous Windows. Sachez néanmoins qu'il vous faudra utiliser la valeur attribuée au paramètre myhostname du fichier de configuration de postfix (/etc/postfix/main.cf) comme adresse de serveur imap (ou pop3) et smtp lors de la configuration de votre client de messagerie quelqu'il soit. Ce tutoriel pourra, je l'espère, vous aider pour la mise en place d'un serveur de messagerie sous GNU/Linux. N'hésitez pas également à me signaler toutes erreurs ou imprécisions et à consulter le forum pour toutes vos questions.