Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Mise en place d’un serveur mail avec linux

Par Allassane Kader KAMARA Publié le 07/08/2018 à 20:43:24 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

L’objectif dans cet article est de montrer comment mettre en place un serveur mail sur un système linux

Introduction

Chacun d’entre nous a au moins une fois dans sa vie envoyé un mail, mais est ce que vous vous êtes déjà posé la question de savoir comment cela fonctionne, comment cela peut-il être mis en place ?

Dans cet article, je vais démontrer comment mettre en place votre propre serveur de messagerie avec linux. Donc si vous êtes passionné par l’administration système et que vous disposez de maigre moyen pour acheter une licence d’un service de messagerie tel que exchange de Microsoft, alors je vous souhaite la bienvenue car tout ce que nous allons faire ici est open source et ne demande pas de très grande ressource, ne nécessite aussi pas de grands moyens financiers. Vous verrez ici comment installer et configurer les outils dont nous auront besoins pour mettre en place votre propre serveur mail sur un système linux. Pour cet article j'ai utlisé Unbuntu 16.04.

Fonctionnement

Un serveur de messagerie permet de gérer la réception et l’envoie de mail et cela met en œuvre deux protocoles qui sont entre autres le SMTP qui s’occupe de l’envoie de mail et le les protocole POP ou IMAP pour la réception.

Exemple : si un utilisateur envoie un mail, il ne sera pas en contact direct avec le destinataire. Le mail passe d’abord par deux serveurs qui sont, respectivement le serveur SMTP qui est l’agent de transfert de mail, c’est lui qui va l’acheminer au serveur de réception POP.

NB : les deux serveurs SMTP et POP peuvent être installé sur un même poste.

SMTP

Tout d’abord avant d’aller plus loin, il faut savoir que SMTP (Simple Mail Transfert Protocol) ou encore protocole simple de transfert de courrier en français est un protocole de communication qui est utilisé pour transférer le courrier électronique vers les serveurs de message électronique, il est simple d’ailleurs comme indiqué sur son nom, son principal objectif est de router les mails à partir de l'adresse du destinataire, il va aussi vérifier l'existance de celui ci d'abord avant d'envoyer le corps du message. Un serveur SMTP est un service qui écoute sur le port 25.

POP

Le protocole POP qui signifie Post Office Protocol ou encore protocole de bureau de poste en français permet de récupérer son courrier sur un serveur distant. Ce protocole est utile pour les personnes n’étant pas connectées à internet en permanence afin de consulter les mails reçus hors connexion.

IMAP

IMAP signifie Internet Message Access Protocol, tout comme POP, c'est un protocole de récupération de mails. Mais ce qui fait sa particularité c'est qu'avec le protocol IMAP, les mails restent stockés dans des dossiers sur le serveur et permet de proposer de nombreuses fonctionnalités très pratiques comme par exemple recopier sur le serveur des messages qui sont en local, effacer ou déplacer des messages sans les lire avec des règles de tri automatique.

Postfix

Postfix est le SMTP que nous allons étudier dans cet article, c’est lui que nous allons installer afin de configurer notre serveur mail.

En effet, c’est le serveur de messagerie électronique libre le plus répandu. C’est lui qui se chargera de la livraison des e-mails et a été conçu de façon modulaire autour de différents programmes dévolus chacun ayant une tâche précise. Cela le rend encore plus résistant en termes de sécurité.

Pour l’administration de postifix, nous allons utiliser quelques commandes qui sont entre autres :

  • #postfix : pour démarrer, arrêter et redémarrer postifix en mode root

  • #postfixconf : affiche ou permet de modifier les paramètres du fichier main.conf

  • #postalias : maintient les bases de données alias de postifix,

  • #postmap : maintient les tables de correspondances de Postfix.

DNS

Tout d’abord nous allons configurer notre DNS (Domaine Name Server) afin d’attribué un nom de domaine à l’adresse IP du serveur. Ici, le DNS joue un rôle très important. Il est utilisé à la fois par les programmes clients de courrier et par les serveurs de messagerie.

Jusqu’ici j’ai donné un bref éclaircissement sur les différents éléments nécessaires pour un serveur mail nous allons passer maintenant à l’installation et la configuration de ceux-ci. Pour la configuration du serveur, nous allons installer ces différents éléments :

  • Bind : pour la configuration du DNS

  • SquirrelMail : c’est l’interface web pour consulter son courrier électronique.

  • Apache : serveur http libre qui nous permettra d’accéder à notre interface web sur un navigateur.

  • Sans oublier l'installation de postifix, IMAP et POP.

Installation et configuration du DNS

Pour configurer le DNS, il faudra installer bind. Pour effectuer cela, sur votre machine, lacez votre inviter de commande et connectez-vous en mode root et tapez la commande #apt get-intall bind9 mais bien avant cela mettre à jour votre machine à l’aide de la commande #apt-get update && upgrade

Ensuite vous pouvez maintenant installez Bind.

Après l’installation de bind, nous allons passer maintenant à la configuration de notre DNS. Pour cela, rendez vous dans le répertoire /etc/bind et saisissez la commande #cd /etc/bind.

C’est dans ce répertoire que se trouves les fichiers de configuration de bind tels que :

  • /etc/bind/named.conf

  • /etc/bind/named.conf.options

  • /etc/bind/named.conf.default-zones

  • /etc/bind/named.conf.local

Vous pouvez aussi vérifier la liste des fichiers que contient le répertoire en saisissant la commande #ls -l

Maintenant il faut se rendre dans le fichier named.conf.local, c’est dans ce fichier que nous allons ajouter le nom de domaine à prendre en charge, et on indiquera dans ce fichier que le serveur que nous utilisons est le serveur principale du domaine, enfin on y ajoutera le chemin du fichier qui contiendra la correspondance entre les noms et les adresses IP pour ce domaine.

Donc pour cela, lancez votre inviter de commande toujours en étant dans le répertoire /etc/bind, tapez la commande suivante : #nano named.conf.local comme indiqué sur l'image ci-dessous :

Vous allez vous retrouvez dans le fichier et modifier le aisin :

  • supmail.net est le nom du domaine à prendre en charge

  • type master : cette ligne indique que le serveur est le serveur principal de ce domaine.

  • file ‘’/etc/bind/db.supmail’’ donne le chemin du fichier qui contiendra la correspondance entre les noms et les adresses IP pour ce domaine.

  • 0.168.192.in.addr.arpa est la partie réseau inversée de votre serveur DNS.

    Maintenant faites une copie de vos fichiers db.local et db.127 en saisissant les lignes de commandes respectives : #cp db.local db.supmail et #cp db.127 db.192 afin de garder les fichier originaux en cas de mauvaise manipulation.

    Ensuite rendez vous dans le premier fichier db.supmail afin d’apporter des modifications en saisissant la commande #nano db.supmail :

    Maintenant que vous y êtes, modifier le comme indiquer sur l’image ci-dessous :

    Ensuite faite Ctrl+X pour enregistrer et quitter. Il va falloir faire beaucoup attention pour ne pas publier le point « . » à la fin de .net car il permet à bind de remonter au sommet de l’arborescence des noms.

    • supmail.net. est le nom attribué au serveur

    • root.supmail.net. est la manière particulière dont Bind prend en compte l’adresse électronique de l’administrateur du serveur, avec un « . » à la place de @.

    • Ensuite, entre la parenthèse, vous avez un certain nombre de paramètre à savoir :

      • 2 ; Serial le numéro de série. Ce numéro permet aux serveurs esclaves de savoir s’il y a du nouveau, et de modifier le contenu de leurs bases.

      • Refresh, Retry et Expire sont des délais, exprimés en secondes, qui vont piloter le comportement des serveur esclaves ce qui signifie qu’à l’expiration du délai « refresh », l’esclave va entrer en contact avec le maître ; s’il ne le trouve pas, il essaiera de nouveau à la fin du délai « retry ». Et si, au bout du délai « expire », il n’est pas parvenu à ses fins, il considérera que le serveur maître a été retiré du service.

        - La ligne @ IN NS : indique le nom complet du serveur Bind,

        - La ligne IN MX 10 : indique l’enregistrement du champs MX du serveur smtp, ou encore le serveur mail à utiliser pour ce domaine.

        - La ligne @ IN A indique l’association du nom d’hôte à l’adresse IP.

        Nous allons aussi modifier le fichier db.192 que nous avons précédemment copié. Sur votre invité de commande encore, saisissez #nano db.192

        Maintenant que vous y êtes, remplacez encore « localhost. » par « ns.supmail.net. » et «root.localhost. » par « root.supmail.net. ». Enfin remplacer les deux dernières lignes respectivement par

        @ IN NS ns.supmail.net.

        1 IN PTR ns.supmail.net.

        Référez-vous à l’image ci-dessous :

Vous avez fini la configuration de Bind, vous devez maintenant le redémarrer. Pour effectuer cela, sur votre invité de commande, tapez #invoke-rc.d bind9 restart

La première étape est terminée, maintenant nous allons passer l’installation et la configuration de Postfix ainsi que les autres outils afin de finaliser la mise en place du serveur de messagerie.

installation de postifix

Pour installer postifix, sur votre inviter de commande, faites d’abord cd pour vous dans le répertoire racine et exécutez cette commande « apt-get install postfix » et laissez d'abord tous les différents paramétrages qui seront tout au long de l’installation par défaut.

Ensuite installer php, et apache « apt-get install apache2 php5 »

Si une erreur s’affiche qui vous dit que vous ne pouvez pas installer php5, alors remplacer le par php simplement pour qu’il installe la dernière version de php.

Enfin vous allez installer les autres packets qu'on avait cité plus haut : common, imap, pop, et squirelmail.

Sur votre invité de commende exécuter : apt-get install dovecot-common dovecot-imapd dovecot-pop3d squirelmail .

configuration posfix

Vous allez maintenant configurer postfix. Ouvrez votre terminal et exécutez «dpkg-reconfigure postfix »

Sur la première fenêtre sélectionnez « Local uniquement »

Ensuite sur la fenêtre qui suit, entrez votre nom de courrier : « mail.supmail.net ».

Remplissez la fenêtre suivante comme indiquer sur la figure ci-dessous en ajoutant cette foi-ci vos destinataires des couriels root et postmaster tout en indiquant encore votre nom de courrier "mail.supmail.net" et votre nom de domaine "supmail.net".

Sur la fenêtre indiquant le réseaux interne, rajouter à la fin l’adresse IP de votre réseau.

Laisser les deux prochaines fenêtres par défaut, et sur celle qui va suivre on vous demandera de choisir le Protocol internet à utiliser, choisissez « tous » et faites OK pour finalisez votre configuration.

Configuration squirremail

Sur votre terminal, exécutez nano /etc/squirremail/apache.cong . Et dans le fichier cherchez la ligne DocumentRoot et décommentez la, ensuite décommentez aussi ServerName et remplacez webmail.exemple.com par votre nom de courrier dans mon cas c’est « mail.supmail.com » comme indiquer sur l’image ci-dessous :

Ensuite vous allez aussi modifier votre fichier dovecot.conf. Exécutez la commande « nano /etc/dovecot.conf ». Et dans fichier, allez-y jusqu’à la dernière ligne et ajoutez :

protocols = imap pop3

#disable_plaintext_auth = no

mail_location = mbox :~/mail :INBOX=/var/mail/%u

mail_location = maildir :~/Maildir

Après cette configuration, vous allez maintenant attribuer une adresse IP statique à votre machine en lui donnant l’adresse que vous aviez associer au nom d’hôte pendant la configuration de bind et vous allez aussi préciser le masque sous réseaux. Pour effectuer cela, Sur votre invitez de commande exécuter la commande « ifconfig eth0 192.168.0.1 netmask 255.255.255.0

192.168.0.1 est l’adresse IP de votre machine et 255.255.255.0 est le masque sous réseaux. Enfin rédemarrer tous vos services, c’est-à-dire le service Bind, dovecot et postfix sur votre terminal :

- Bind : pour redémarrer bind, exécutez la commande invoke-rc.d bind9 restart

- apache : pour redémarrer, apache exécutez la commande invoke-rc.d apache2 restart

- postfix : pour redémarrer postfix, exécutez la commande : invoke-rc.d postfix restart

Envoie de mail

Notre serveur mail est enfin prêt à être utiliser. Il ne reste plus qu’à ajouter d’autres utilisateurs afin de tester l’envois de mail. Supposons que vous voulez ajouter l’utilisateurs Pierre, exécutez : adduser Pierre.

Après avoir ajouter vos utilisateurs, vous pouvez maintenant tester les envois de mail. Lancez votre navigateur, et dans la barre d’adresse, saisissez localhost, normalement si tout marche bien, vous devez avoir ce message « It works ! » qui montre que tout a bien fonctionné.

Ensuite dans cette même barre d’adresse entrer votre nom de courrier pour ma part c’est mail.supmal.net. Vous serez redirigé directement vers la page de connexion :

Connecter vous avec votre nom d'utilisateur et votre mot de passe. Lorsque vous êtes connecté vous allez maintenant essayer d’envoyer un mail par exemple à Pierre que vous aviez ajouté. Lorsque vous êtes connecté, voici à quoi ressemble votre page d’accueil. Et maintenant cliquez sur « compose » pour rédiger votre mail.

Maintenant vous pouvez par exemple envoyer un mail à l’utilisateur Pierre que vous avez ajouté en précisant le l'objet et le contenu du message et cliquez sur le bouton « send » pour envoyer le mail. Pierre peut se connecter et accéder à son mail qu'il a reçu.

Conclusion

En définitif ce qu’il faut retenir dans cet article, c’est que postfix est le smtp idéal pour configurer un serveur mail avec linux et aussi si vous voulez déployer un serveur mail et que vous ne diposez pas de très grand monyens, L’avantage avec postfix, c’est qu’il est simple et gratuit en plus ne demande pas de très grandes ressources pour être déployer.

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels