Première approche de Qmail
Généralités
Fonctionnement général
Lors de l'envoi d'un mail, d'un expéditeur à un destinataire, le mail passe par de nombreux services ayant chacun un but précis. Ces services peuvent être divisés en trois catégories.
MUA (Mail User Agent) :
Autrement dit le client de messagerie, cet outil permet à l'utilisateur d'écrire ses mails et de les envoyer, et de recevoir ses mails pour les lire.
Il en existe deux types :
- mailbox : Ce format est celui de sendmail. Il stock tous les mails dans le même fichier. Les performances de ce système peuvent devenir désastreuses quand les boîtes mails deviennent grosse (quelques centaines de Mo).
- maildir : Ce format est apparu avec qmail. Avec maildir, chaque mail est stocké dans un fichier, eux même répartis dans trois répertoires (lu, non lu, tmp), avec des fichiers d'index. Ce format est beaucoup plus performant que mailbox.
MTA (Mail Transfert Agent) :
Le MTA s'occupe uniquement de la redistribution des mails de l'expéditeur provenant d’un MUA ou d’un autre MTA, jusqu’au serveur du destinataire.
Nous reviendrons plus en détail sur les différents MTA existants.
MDA (Mail Delivery Agent) :
Le MDA s'occupe de la distribution du courrier dans les boîtes des utilisateurs. C'est ici que l'utilisateur pourra appliquer ses filtres (anti-virus, anti-spam...).
Il s’occupe également des problèmes comme disque plein ou bien corruption de la boîte aux lettres et signale au MTA toute erreur dans la délivrance.
Chaque MDA à des avantages et des inconvénients, notamment à propos du format de stockage des courriers.
C'est le MDA qui permet à l'utilisateur final de mettre en place des filtres sur ses mails (anti-virus, anti-spam, tri dans des dossiers, redirection vers d'autres comptes ...)
Certains MTA, comme Sendmail, intègrent leur propre MDA. Il peut parfois être utile de ne pas laisser celui par défaut.
Une des différences entres ces différents MDA est le format de stockage des mails.
Le trajet d'un mail est plutôt simple : L'expéditeur écrit un mail grâce à son MUA, et l'envoie à son serveur de courrier sortant (MTA). Ce MTA transfert le courrier au serveur mail du destinataire, en faisant éventuellement transiter ce courrier par d'autres MTA. Une fois le courrier arrivé sur le MTA du destinataire, le MDA s'occupe de distribuer le courrier dans la boîte mail de la bonne personne. Le destinataire n'a plus qu'à se connecter à son serveur mail pour regarder s’il a des nouveaux courriers dans sa boîte et les récupérer pour les lire.
Les différents protocoles
La messagerie électronique fonctionne à partir de 3 protocoles principaux dont chacun ayant une variante sécurisée.
SMTP (Simple Mail Transport Protocol)
Le SMTP est le protocole de communication utilisé pour le transport du mail entre l'expéditeur et le serveur mail du destinataire. Il utilise le port 25 (465 pour le SMTP securisé).
POP3 (Post Office Protocol version 3)
Le protocole POP permet de récupérer les mails situés sur un serveur de messagerie. Ce protocole très vieux et de moins en moins utilisé nécessite une connexion à un réseau TCP/IP.
Ce protocole utilise le port 110 (995 pour le POPS ou POP3 over SSL).
Quelques commandes de base vous permettant de tester un serveur POP.
• user : permet de spécifier le nom d'utilisateur.
• pass : permet de spécifier le mot de passe.
• list : permet de lister les messages stockés sur le serveur. Le premier chiffre de chaque ligne est le numéro du message, le deuxième chiffre est sa taille en octets.
• top n m: affiche les n premières lignes du mail m.
• retr n : récupère l'intégralité du message n.
• quit : se déconnecte du serveur. Supprime les messages qui auront été lu avec la commande retr.
IMAP (Internet Mail Access Protocol)
IMAP permet tout comme le protocole POP3 de récupérer le contenu de sa boîte mail, mais offre de nombreuses fonctionnalités supplémentaires :
• Les mails peuvent être classés dans différents dossiers créés sur le serveur.
• Tous les mails sont conservés sur le serveur, ils sont donc tous accessible depuis différents endroits avec différents clients mails.
• La connexion entre le client et le serveur mail est persistante, ce qui permet au client de savoir instantanément si de nouveaux messages sont arrivés sur le serveur.
Le protocole IMAP utilise le port 143 (993 pour l'IMAPS Imap over SSL).
Rappel sur le DNS
Il est essentiel de bien configurer son DNS pour veiller au bon fonctionnement d'un serveur mail.
Les champs MX (Mail eXchanger) doivent être renseignés car ils permettent la correspondance entre un nom de domaine et le serveur mail qui reçoit les messages des utilisateurs de ce domaine.
Le champ MX prend un entier en argument. Cet entier défini la priorité du serveur mail. Plus la valeur est petite, plus la priorité est élevée.
IN MX 10 mail
IN MX 20 mx2
Ici, mail est le serveur principal, mx2 est le serveur secondaire.
Comme mail a une priorité plus élevée que mx2, tous les mails seront envoyés à mail.
Si jamais mail est inaccessible, alors tous les courriers seront envoyés au serveur secondaire mx2. Ce serveur stockera alors les mails temporairement, et les enverra dès que possible au serveur primaire.
Les différents types de serveurs MTA
Il existe principalement deux types de serveurs : les serveurs primaires et les serveurs secondaires.
En fonction du MTA il sera nécessaire, ou non, de configurer de façon spécifique chacun des serveurs.
En général la seule chose qu'il sera nécessaire de configurer sera d'indiquer au serveur secondaire qu'il ne doit pas délivrer les mails en local.
Des MTA comme Sendmail conserveront les mails dans le spool, et interrogent le DNS régulièrement; s’ils sont secondaires, ils essaieront d'envoyer les mails qu'ils ont dans le spool vers le serveur primaire.
Le serveur primaire quand à lui reçoit les mails et les délivre localement.
Comme nous l'avons vu précédemment, les Mail Transfert Agent (MTA) s'occupent de l'acheminement du mail de l'expéditeur jusqu'au serveur mail du destinataire.
Les quatre MTA les plus populaires et utilisés sont Sendmail, Postfix, Qmail, Exim. Ils ont chacun leurs avantages et leurs inconvénients.
Voici un comparatif de ces différents MTA.
SendMail :
Avantages:
De loin le plus puissant, il résiste particulièrement bien à la charge,
Le plus ancien, il a donc une très grande expérience du point de vue de la sécurité : pendant longtemps, il a eu de nombreux problèmes de sécurité, qui sont maintenant corrigés.
Inconvénients:
Sendmail est très critiqué pour sa lenteur, sa complexité et sa maintenance difficile en comparaison avec d'autres MTA tels que Qmail et Postfix.
L'architecture est très vieille et a peu évoluée, Sendmail est très monolithique, ce qui le rend particulièrement sensible en cas de faille de sécurité.
Postfix
Il s’agit d’un serveur de courriel par défaut dans plusieurs systèmes de type UNIX (Free et Orange).
La licence de Postfix est IBM Public License 1.0. C'est une licence libre, mais incompatible avec la GPL.
Avantages:
Adapté à de gros besoins,
Beaucoup plus simple que Sendmail, facile à configurer.
Relativement sécurisé (configuration de base très sécurisée).
Postfix gère le format MailDir de QMail.
Inconvénients:
Pas aussi sécurisé que Q-Mail.
Exim
Avantages:
Très simple à configurer, hautement configurable.
Inconvénients:
Exim suit le modèle selon lequel a été conçu sendmail, où un programme unique contrôle toutes les fonctionnalités du MTA. Ce design monolithique est généralement considéré comme structurellement non sécurisé à cause du manque de séparation des composants individuels du système.
Non adapté à des gros besoins.
Qmail
Avantages:
Comparé à sendmail ou postfix, qmail possède également une architecture modulaire et est très sécurisé.
Inconvénients:
N'est pas conçu pour de gros besoins (tiens moins bien la charge qu'un Sendmail ou Postfix).
Licence non libre. L'auteur de QMail exige de vérifier lui même tous les patchs (pour la cohérence de la sécurité).
Assez fastidieux à installer puisqu’il nécessite l’utilisation de patches presque obligatoire pour obtenir un serveur fonctionnel sans bogues.
Heureusement est né netqmail, une variante de qmail qui contient les patches nécessaires à un bon fonctionnement et qui s'appliquent très simplement.
Récapitulatif des MTA