Serveur de courrier électronique Objectif: Mettre en oeuvre un serveur de courrier électronique Contenu: Principes, acheminement, protocoles, fonctionnement Mise-en-oeuvre Postfix Configuration Durée: 1/2 journée
Principes plusieurs standards : SMTP pour l'envoi, POP: pour la récupération par pur transfert des messages IMAP: pour la récupération en permettant de laisser les messages sur le serveur pour les consulter de n'importe où. Le MUA de l'expéditeur envoie par SMTP le message à un serveur de courrier (celui de son fournisseur d'accès en général) Le premier MTA envoie le message au MTA du destinataire (celui de son domaine domaine2.org) qui le stocke en attente de consultation. Le destinataire, par l'intermédiaire de son MUA, demande à son serveur de courrier les nouveaux messages. Le serveur envoie le message au MUA du destinataire.
Acheminement des courriels Image sous licence GFDL réalisée par DenisG (www.denisg.net)
Résolution de noms Une adresse est du type nom_du_compte@domaine.tld Pour envoyer un message à cette adresse, le serveur SMTP doit résoudre le nom pour trouver l'adresse du serveur SMTP du domaine destinataire requête DNS: dig libre-services.fr MX retourne les adresses des serveurs de messagerie avec leur priorité: 10 mx1.ocsa-data.net 15 mx1.ocsa-data.net Le serveur expéditeur peut alors contacter le serveur destinataire en utilisant le protocole SMTP pour lui envoyer le message
protocole SMTP c'est le protocole pour envoyer un message à un MTA port 25 simple, il utilise quelques mots clés les messages de réponses sont des codes numériques + texte explicatif: 220 le service est prêt 250 le transfert d'un courriel est terminé 550 boîte aux lettres non trouvée basé sur l'ascii, on peut effectuer une session avec telnet SMTP ne connaît que ASCII US (7 bits), ESMTP (Extended) peut travailler en mode 8 bits (et donc véhiculer des fichiers binaires). sécurisable par l'utilisation de chiffrage SSL et de certificats
Fonctionnalités des MTA Un MTA peut rejeter un message pour une de ces raisons : serveur non concerné : seuls les membres d'un certain réseau sont autorisés (celui du FAI) les messages sont acceptés seulement pour les destinataires de tel domaine non respect des normes : message ou requête mal-formés expéditeur en liste noire : les serveurs connus comme étant utilisés par les spammeurs sont répertoriés dans des listes noires Le rejet d'un message provoque généralement l'envoi d'un email à l'expéditeur l'informant que le message a été refusé (bounce) Pour palier les défaillances d'un MTA, on peut utiliser un second. On définit leur ordre de priorité dans la configuration DNS Les MTA savent gérer les indisponibilités des serveurs destinataires en plaçant les messages en file d'attente. Après plusieurs tentatives de retransmettre le message, le message est rejeté.
Session SMTP $ telnet smtp1.laposte.net smtp Trying 81.255.54.11... Connected to smtp1.laposte.net. Escape character is '^]'. 220 smtp.laposte.net ESMTP Service (7.3.118.3) ready HELO ifrance.com 250 smtp.laposte.net MAIL FROM: <tsalomon@ifrance.com> 250 MAIL FROM:<tsalomon@ifrance.com> OK RCPT TO: <thierry-roger.salomon@laposte.net> 250 RCPT TO:<thierry-roger.salomon@laposte.net> OK DATA 354 Start mail input; end with <CRLF>.<CRLF> salut ça va?. 250 <461CECB90195D0A8> Mail accepted QUIT
protocole POP3 C'est le protocole pour récupérer les messages enregistrés par le MTA dans une boîte aux lettres Implémenté par un logiciel serveur qui écoute sur le port 110 Le logiciel serveur POP écoute et authentifie les connexions pour livrer ensuite les messages contenus dans la boîte aux lettres protocole simple, avec quelques commande utilise des messages ASCII comme SMTP POP3S (POP3 over SSL) utilise SSL pour sécuriser la communication avec le serveur. Utilise le port 995.
session POP3 $ telnet pop.ocsa-data.net pop3 Trying 194.36.166.12... Connected to pop.ocsa-data.net. Escape character is '^]'. +OK Server ready. USER tr.salomon@libre-services.fr +OK Password required PASS xxxxxxxx +OK Logged in. STAT +OK 43 1099448 LIST +OK 43 messages: 1 19535 2 5817 [...] RETR 11 +OK 1696 octets Return-path: <arnaud.poulain@atelierblanc.asso.fr> Envelope-to: tr.salomon@libre-services.fr Received: from [127.0.0.1] (helo=localhost) by node2-2.ocsa-data.net with esmtp (Exim - FreeBSD Rulez) id 1HghDv-000Ebf-7u for <tr.salomon@libre-services.fr>; Wed, 25 Apr 2007 15:07:55
Mise-en-Oeuvre Démarche: installer un serveur SMTP installer un serveur POP ou IMAP créer les boîtes aux lettres installer et paramétrer les MUA sur les postes clients Logiciels sur Linux Les logiciels de base, les Mail XXX Agents: MUA (User) : mail, Mutt, Kmail, Claws Mail, Thunderbird, Evolution MDA (Delivery): procmail, maildrop MTA (Transport): sendmail, postfix, exim, qmail serveurs POP/IMAP: dovecot, courier, cyrus, ipopd, uw-imapd Logiciels complémentaires: fetchmail: qui rapatrie le courriel à partir d'un serveur (automatisable) Gestionnaires de listes de diffusion: majordomo, mailman, sympa
types de fonctionnement de postfix Site Internet: Le courrier est expédié et reçu directement, en utilisant SMTP. Site Internet utilisant un «smarthost» (machine relais): Le courrier est reçu sur cette machine soit directement par SMTP soit grâce à un utilitaire comme fetchmail. Le courrier sortant est envoyé grâce au «smarthost». Système satellite: Aucun courrier n'est reçu localement. Tout le courrier est envoyé au «smarthost» qui le distribue. Distribution locale seulement: Le système ne dialogue avec aucun autre serveur interne ou externe. Le courrier est distribué aux utilisateurs locaux.
Tests de dépannage activité des serveurs ps ax grep -e master -e qmgr -e pickup netstat -a grep smtp telnet {nom_du_serveur} smtp les messages arrivent-ils? par défaut les BAL sont dans le répertoire /var/spool/mail ATTENTION: il existe d'autres endroits pour stocker les BAL (répertoire de connexion) et d'autres formats (Maildir, MH) le courrier en attente mailq journaux /var/log/mail.*
Postfix logiciel serveur de messagerie SMTP rapide, simple et sécurisé compatible avec sendmail très populaire galaxie de petits programmes spécialisés (master, qmgr, pickup, smtp, sendmail, etc) fichiers de configuration dans /etc/postfix: main.cf: fichier principal de configuration master.cf configure le démon master virtual sert à rediriger le courrier alias sert à créer des alias etc.
Configuration C'est principalement le fichier main.cf qui est concerné paramètres principaux: myhostname, mydomain, myorigin, mydestination Il peut faire référence à des tables de comptes qui peuvent être stockées dans des fichiers ou des bases de données postfix peut gérer plusieurs domaines en même temps à laquelle la machine n'appartient pas: domaines virtuels On peut stocker ses domaines et comptes virtuels dans des bases de données, un serveur LDAP, etc. On peut interfacer postfix avec un filtre antispam, antivirus, etc. Pour en savoir plus, http://postfix.traduc.org/