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.
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:
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:
Fichier de configuration main.cf - /etc/postfix/main.cf
Voici les paramètres importants à configurer dans ce fichier (commentaires et lignes inutiles exclues):
# Répertoires d'installation de Postfix:
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
program_directory = /usr/lib/postfix
queue_directory = /var/spool/postfix
# Mise en place des permissions:
setgid_group = postdrop
mail_owner = postfix
# Nom de la machine, du domaine et gestion du réseau:
myhostname = tuffgong.trustonme.net
mydomain = trustonme.net
masquerade_domains = trustonme.net
mynetworks = 192.168.0.0/24, 127.0.0.0/8
# Gestion des alias:
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
# Paramètre d'envoi du courriel:
myorigin = $mydomain
default_transport = smtp
# Serveur d'envoi de votre Fournisseur d'accès à Internet:
relayhost = smtp.mon.fai
# Paramètre de reception du courriel:
mydestination = $myhostname, localhost.$mydomain, $mydomain, localhost
inet_interfaces = all
# Utilisation de Maildir pour recevoir et gérer les mails via courier-imap:
home_mailbox = Maildir/
mailbox_command = /usr/bin/procmail
# Prise en charge de l'Antivirus:
content_filter = smtp:127.0.0.1:10024
Il est à noter que certains répertoires d'installation de Postfix ainsi que certaines options de configuration du programme peuvent différer dans votre cas.
Fichier de configuration master.cf - /etc/postfix/master.cf
Dans ce fichier, rajoutez simplement la ligne suivante sous la ligne commençant par smtp:
127.0.0.1:smtp-backdoor inet n - n - - smtpd -o content_filter=
Voici également un script de démarrage de Postfix
# chmod 755 /etc/init.d/postfix
# ln -s /etc/init.d/postfix /etc/rc2.d/S64postfix
# ln -s /etc/init.d/postfix /etc/rc3.d/S64postfix
# ln -s /etc/init.d/postfix /etc/rc4.d/S64postfix
# ln -s /etc/init.d/postfix /etc/rc5.d/S64postfix
# ln -s /etc/init.d/postfix /etc/rc0.d/K64postfix
# ln -s /etc/init.d/postfix /etc/rc1.d/K64postfix
# ln -s /etc/init.d/postfix /etc/rc6.d/K64postfix
3. Procmail:
3.1 Installation de Procmail:
Récupérez tout d'abord les sources de Procmail.
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 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 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:
# cp /usr/courier/libexec/imapd.rc /etc/init.d/courier-imap
# chmod 755 /etc/init.d/courier-imap
# ln -s /etc/init.d/courier-imap /etc/rc2.d/S65courier-imap
# ln -s /etc/init.d/courier-imap /etc/rc3.d/S65courier-imap
# ln -s /etc/init.d/courier-imap /etc/rc4.d/S65courier-imap
# ln -s /etc/init.d/courier-imap /etc/rc5.d/S65courier-imap
# ln -s /etc/init.d/courier-imap /etc/rc0.d/K65courier-imap
# ln -s /etc/init.d/courier-imap /etc/rc1.d/K65courier-imap
# ln -s /etc/init.d/courier-imap /etc/rc6.d/K65courier-imap
# cp /usr/courier/libexec/pop3d.rc /etc/init.d/courier-pop3
# chmod 755 /etc/init.d/courier-pop3
# ln -s /etc/init.d/courier-pop3 /etc/rc2.d/S65courier-pop3
# ln -s /etc/init.d/courier-pop3 /etc/rc3.d/S65courier-pop3
# ln -s /etc/init.d/courier-pop3 /etc/rc4.d/S65courier-pop3
# ln -s /etc/init.d/courier-pop3 /etc/rc5.d/S65courier-pop3
# ln -s /etc/init.d/courier-pop3 /etc/rc0.d/K65courier-pop3
# ln -s /etc/init.d/courier-pop3 /etc/rc1.d/K65courier-pop3
# ln -s /etc/init.d/courier-pop3 /etc/rc6.d/K65courier-pop3
5. Avmailgate:
Télechargez 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
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
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 dans /usr/anomy/anomy.conf.
$ su
Password:
# cp /où_est/anomy /usr/anomy/anomy.conf
7. Spam Assassin:
Téléchargez Spam assassin 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 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:
# /usr/sbin/avgated
# /usr/sbin/avgatefwd
# /etc/init.d/postfix start
# /etc/init.d/courier-imap start
# /etc/init.d/courier-pop3 start
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.