-
Notifications
You must be signed in to change notification settings - Fork 0
Analyse Mail
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:
- contact@woodytoys.be, rédirigée chez la secrétaire
- b2b@woodytoys.be, rédirigée sur les commerciaux
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.
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.
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?
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 |
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 |
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
- 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 |
- 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:
| 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 |
- 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 |
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/
- 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
Developing a Messaging Architecture
Email Service in Microservice Architecture
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
