Skip to content

Analyse Mail

Gabrielle Cruz edited this page Aug 4, 2023 · 3 revisions

Identification des fonctionnalités depuis le CdC

L'entreprise souhaite fournir une adresse mail à chaque employé sous le format nom.prenom@woodytoys.be.

Aussi, elle dispose deux adresses mail de références:

Les employés doivent pouvoir consulter leur courrier électronique (un service de stockage mail) et en envoyer à l'aide d'un client mail classique, et non par les webmails. Ils doivent également pouvoir utiliser leurs mail en-dehors du réseau interne - par exemple, en déplacement ou à domicile.

Identification des besoins techniques

Pour répondre aux besoins identifiés plus haut, il faut:

  • 1 serveur pour l'envoie des mails
  • 1 serveur pour le stockage et réception des mails
  • Un outil qui gére le mail de chaque utilisateur

Le mail doit être accessible à l'interieur et surtout à l'extérieur. Surtout, l'accès à ces mails doit être encrypté. Une question à poser est comment on peut éviter la réception des mails spam qui peuvent infiltrer le réseau. Il est possible de mettre en place une service anti-spam pour répondre à ce besoin.

Nous avons identifié quelques services à mettre en place: un MTA (Mail Transfer Agent), un MDA (Mail Delivery Agent), un MUA (Mail User Agent), une service d'authentification, une service anti-spam, et un MRA (Mail Retrieval Agent) pour permettre l'àcces du mail depuis l'exterieur.

Identification des choix architecturaux

Discussion des solutions possibles

Nous avons une grande question à poser pour déterminer l'architecture de notre serveur mail:

  • comment nous allons stocker le mail de chaque utilisateur?
  • comment nous allons gérer les utilisateurs qui utilise le système mail?

Mail Storage

Il existe deux façons courantes de stocker les courriels des utilisateurs : le système de fichiers natif de Linux et une base de données. Chaque système a ses avantages et ses inconvénients pour la mise en œuvre, et dépend également des exigences de l'infrastructure qui en a besoin. Basée sur ce site web qui compare les deux systèmes, la table de comparaison ci-dessous résume leurs avantages et inconvénients:

Système Avantages Inconvenients Cas d'utilisation
File System accès simple et léger aux fichiers, la sauvegarde et téléchargement des fichiers dans le FS est plus simple, la migration des fichiers en local ou au cloud est facile, l'expansion du serveur est plus rentable que payer pour l'entretien des bases de données pas d'operations ACID qui garantie la validité du stockage, sécurité en bas niveau gestion des gros fichiers et beaucoup de téléchargements des fichiers, gestion d'un grand nombre des users
Database les fichiers sont synchronisées avec la DB, il est plus sécurisé que sauvegarder dans un filesystem, la sauvegarde des données des utilisateurs sont garanties la sauvegarde de la DB est lourde, memoire moins efficace, conversion des fichiers en blob pour le stockage gestion plus sécurisé et confidentiel des fichiers, gestion d'un petit nombre des users et fichiers

User Identity Management

Pour la gestion des utilisateurs de notre système mail, il y a deux users à considerer: les users natives de Linux, et les users virtuelles. La table de comparaison ci-dessous a été générée par ChatGPT à la demande de faire une simple comparaison entre ces deux types d'users:

Utilisateur Avantages Inconvénients
user natif de Linux gestion plus facile, gestion par des outils standards de Linux, peut gérer autres choses que le mail doit avoir un compte système sur le serveur mail, peut accéder le système entier
user virtuel ne nécessite pas d'avoir un compte système sur le serveur mail, peut avoir un accès limité à seulement leur mail plus compliqué à gérer qu'un user Linux, a besoin des outils supplementaire pour son gestion

Justification de choix posé

Traduction vers le schema réseau

Choix des solutions logicielles

Selon les besoins téchniques demandées par le client au-dessous, nous devons implémenter les services suivantes:

  • un Mail User Agent pour le client
  • un Mail Transfer Agent pour la transmission des mail entre le client et son destination
  • un Mail Delivery Agent pour télécharger les mails qui arrivent
  • un service anti-spam pour protéger les boîtes mails des attaques spam
  • un Mail Retrieval Agent pour que l'utilisateur peut accèder leur mail hors du réseau interne

Descriptif des solutions possibles

Mail User Agent

  • Mutt - un client mail pour Unix, il supporte la plupart des formats de boîte mail comme mbox et Maildir, et les protocoles POP3 et IMAP
  • Alpine - développé à l'Universite de Washington, c'est un reécriture du système Pine qui supporte l'Unicode
  • Sylpheed - un client mail simple et leger qui stocke le mail en MH Message Handling System
  • ClawsMail - un client mail basé sur Sylpheed qui est configuré pour se tourner aux clients/distro Linux plus petits
MUA Avantages Inconvenients
Mutt léger et rapide, très configurable, supporte plusieurs comptes utilisateurs, lance dans le terminal, les mails sont filtrables par les "regular expressions" difficile à utiliser, n'a pas une filtre spam native, lance dans le terminal, donc il ne supporte pas le mail HTML
Alpine facile à utiliser, supporte plusieurs comptes, possède une filtre spam native, l’aide contextuel apparaît dans l’écran n'a pas beaucoup des outils plus complèxes, ne supporte pas des mails HTML, mises à jour infréquents
Sylpheed fiable et n'a aucun defaut sur sa stabilité, paramétres compréhensive, très léger mailbox non-encrypté
ClawsMail client qui utilise moins de ressources, open source, plusiers plugins pour plus des fonctionnalités, UI traditionelle et propre, peut sauvegarder les emails dans un format text, filtres très puissants, mots de passes encryptées, supporté par Windows mots de passes en plain format, sauvegarde non-compressée des mails, implementation moins facile, UI plus agée

Mail Transfer Agent

  • Sendmail - un des MTAs les plus populaires et les plus anciens, il utilise les protocoles SMTP pour envoyer et recevoir les messages; cependant, il ne supporte pas les protocol POP et IMAP
  • Postfix - un outil open-source qui est une alternative de Sendmail; il est développé pour être plus simple, efficace, et sécurisé.
  • Exim - un MTA sous license GNU, fléxible et customisable dans son configuration

Table de comparaison des services et fonctionnalités:

Comparison table

MTA Avantages Inconvénients
Postfix focus vers la sécurité, documentation extensive, compatible avec Sendmail, développement active, configuration simple, haute vitesse d'opération de queue customisation difficile
Sendmail portabilité, fléxibilité, configurabilité difficile à customizer, mechanismes faibles de sécurité
Exim compatible avec Sendmail, communauté supportive, scalabilité, configuration fléxible très complèxe, architecture monolithique, basse vitesse d'opération de queue

Mail Delivery Agent

  • Procmail - un serveur MDA pour filtrer le courrier entrant et trier les mails vers différents boîtes à partir des certains critères; il peut aussi supprimer les mails spam
  • Dovecot - un serveur IMAP et POP3 pour l'Unix, conçu pour garantir la sécurité; il gére les formats des mailbox mbox et Maildir
MDA Avantages Inconvénients
Dovecot Documentation extensive, associé avec Postfix, application de quota, indexation de mailbox pendant la livraison de mail, support native de maildir, mbox et dbox pas encore du support STMPUTF8
Procmail Fiable et pas beaucoup de vulnérabilités, système de filtrage robuste et facile à utiliser, utilisation très répandu pas beaucoup d'entretien, syntaxe archaïque, seulement le support natif de mbox

Justification de choix des technologies

Pour mettre en place le MTA, nous allons partir sur Postfix car ce service est le plus répandu. De plus, son documentation nous sera d'une grande utilité surtout qu'il est connu pour être admin friendly. Le fait que le service soit géré par Google nous montre également un certains sérieux dans ce service et il nous assure une certaine qualité. Il est plus lourd que ses concurrents mais la différence n'est pas suffisament grande pour être un réel obstacle. De plus, PostFix est compatible avec le MDA choisi ci dessous.

Pour mettre en place le MTA, nous allons partir sur Postfix pour quelques raisons. Ce service est le plus répandu, utilisé et géré par Google qui démontre un certain niveau de fiabilité. Il fournit également une documentation complète et admin-friendly. Finalement, il offre une sécurité plus renforcée que les autres services en haut. Cependant, Postfix ne gére que le protocole SMTP, qui nécessite un service qui peut gérer les protocoles IMAP et POP3.

Ensuite, la solution la plus adapté pour le MDA semble être Dovecot. Cette solution propose des avantages pour un système très leger en memoire (2,1 Mb). Aussi, il a une documentation claire et compréhensible en anglais, et il est mise à jour régulièrement. De plus, il est un excellent complément au service Postfix, en gérant les protocoles IMAP et POP3. Son maintenance est très facile car les messages d'erreur sont adapté pour être user-friendly, et il est facilement migrables aux autres serveurs POP3/IMAP.

Ce sont pour ces différentes raisons que nous allons travailler avec ces services qui se veulent fiables, simples, puissants et flexibles.

Lien de la documentation dovecot: https://doc.dovecot.org/

Lien de la documentation postfix : http://x.guimard.free.fr/postfix/

Eléments de configuration

Pour installer Postfix, voici les étapes qu'il faudra suivre :

  • S'assurer que le service DNS est fonctionnel.
  • Ajouter le serveur MX pour le DNS dans le SOA.
  • Installer Postfix puis le configurer en tant que serveur SMTP ou SMTPS pour le chiffrement.
  • Installer Dovecot et le configurer en tant que serveur POP3 et IMAP voir POP3S et IMAPS pour le chiffrement.
  • Attribuez une adresse mail à chaque employé.
  • Créer les addresses contact@woodytoys.be et b2b@woodytoys.be.
  • Vérifier que les emails soient consultables depuis l'entreprise et depuis l'extérieur.
  • Vérifier que l'on peut envoyer un email depuis l'entreprise et depuis l'extérieur.

Configurer PostFix avec Dovecot : https://guide.ubuntu-fr.org/server/postfix.html

Bibliographie

Best MTAs for Linux

Developing a Messaging Architecture

Email Architecture

Email Service in Microservice Architecture

Cyrus

Procmail

Dovecot

Comparison of Email Clients

File System vs. Database - DZone

email - Mail Server Storage Backend: Filesystem VS Database - Server Fault

8 Reasons Why You Should Run Linux in a Virtual Machine (makeuseof.com)

Why, When, and How To Use a Virtual Machine - Linux.com

Advantages and Disadvantages of Using Linux (itsfoss.com)

Setting up and configuring a mail server | Linuxize

A sysadmin's guide to configuring an email server | Enable Sysadmin (redhat.com)

How Does Email Work? (freecodecamp.org)

Claws Mail vs Sylpheed detailed comparison as of 2023 - Slant

Mutt vs Sylpheed detailed comparison as of 2023 - Slant

Mutt vs Alpine detailed comparison as of 2023 - Slant

Mail Transfer Agent (MTA) Explained | Mailtrap Blog

Postfix vs Sendmail vs Exim - Choosing MTA | Mailtrap

Dovecot-lda vs Procmail detailed comparison as of 2023 - Slant

Clone this wiki locally