UNIVERSITE GASTON BERGER DE SAINT-LOUIS              UFR DE SCIENCES APPLIQUEES ET DE TECHNOLOGIE                         ...
DédicacesJe dédie ce mémoire:A Allah le tout puissant par qui le savoir a un sens,A ma chère mère Rokhaya BADIANE qui, de ...
RemerciementsCe travail a été réalisé à l’Université Gaston Berger de Saint Louis. Nos remerciements vont àl’endroit de to...
Table des matièresDédicaces                                                                   1Remerciements              ...
3.1.2       Configurer Postfix et Dovecot pour SASL                         483.2           Sécurisation des communication...
Liste des tableauxTableau 1 : Récapitulatif des principales commandes SMTP__________________________71Tableau 2 : Principa...
Liste des figuresFigure 1 : Architecture de fonctionnement des différents éléments du système de messagerie____ 19Figure 2...
Liste des siglesTIC: Technologies de l’Information et de la CommunicationSMTP/ESMTP: Simple Mail Transfer Protocol / Exten...
IntroductionIl ne fait désormais plus aucun doute que les technologies de linformation et de lacommunication représentent ...
Partie 1: Présentation générale1.1 Besoins d’une PME/PMI en termes de TICInternet entraîne des changements de taille dans ...
permet de réduire le nombre dappels internes et externes, de rencontres entre direction etpersonnel. Il est aussi un excel...
Partie 2: Mise en place du système de          messagerie2.1 Des concepts clés de la messagerie électronique   2.1.1      ...
 expéditeur en liste noire : les serveurs connus comme étant utilisés par les       spammeurs sont répertoriés dans des l...
de l’utilisateur. Pour cela il est souvent considéré comme le point final d’un système demessagerie. Il est possible de pl...
courrier électronique vers les serveurs de messagerie électronique en connexion point àpoint.C’est un protocole de la suit...
Exemple dun envoi SMTP, (C) désigne le client et (S) le serveur :(C) telnet mail.minfo.sn 25(S) 220 mail.minfo.sn SMTP rea...
2.1.2.2        Protocoles POP3 et IMAPLes protocoles POP (Post Office Protocol) et IMAP (Internet Message Access Protocol)...
les règles de base pour permettre de relier un client (système composé dun affichage etdun clavier) à un interpréteur de c...
Figure 1 : Architecture de fonctionnement des différents éléments du système de messagerieDans ce système on distingue qua...
d’une fonction de transport. Lorsque par exemple utilisateur@minfo.sn envoie un   mél à utilisateur@miage.sn, les deux se ...
2.2.2       Principe de fonctionnementLe fonctionnement d’un système messagerie est décomposé en au moins deux étapessigni...
2.3 Etapes pour mettre en place un système de messagerie2.3.1 Mise en place des services préalables   2.3.1.1     Ubuntu-S...
Figure 2 : Menu d’installation d’Ubuntu Server 10.04 LTSNous allons choisir, l’option Installer Ubuntu Server. Il s’en sui...
Figure 3 : choix d’une adresse IP fixe pour le serveurNous mettrons ensuite le bon masque de sous-réseau. Dans notre cas, ...
 Une partition /boot juste pour le démarrage du système. Et enfin un espace d’échange « swap ».Après le formatage des pa...
Toutes ces précédentes étapes réussies, notre serveur est enfin prêt à être exploité. Nousaurons l’écran suivant représent...
permet didentifier une maison de façon certaine. Mais si une adresse chiffrée est plus facileà manipuler par un ordinateur...
# apt-get install bind9Ceci nous permettra d’installer bind, un outil permettant la configuration d’un serveur denoms sous...
 Création des fichiers "minfo.sn" et "minfo.sn.rev".                 Dans le répertoire    /etc/bind/, nous irons créer c...
 Dans le fichier /etc/bind/named.conf.options, nous allons remplacer la ligne    directory "var/cache/bind "; par directo...
2.3.1.3     Installation et configuration d’un service web (Apache)Nous avons vu que pour consulter ses messages et pour e...
2.3.2 Mise en place du service de messagerie   2.3.2.1     Mise en place du MTA       2.3.2.1.1      Etude comparative de ...
Sendmail est très critiqué pour sa lenteur, sa complexité et sa maintenance difficile encomparaison avec dautres Mail Tran...
Exim :Exim est un serveur de messagerie électronique utilisé sur de nombreux systèmes de typeUNIX. La première version a é...
# dpkg-reconfigure postfixViendra un écran (capture ci-contre) où on aura à fournir le type de configuration. Dans cecas, ...
Les autres options qui suivent peuvent être laissées par défaut. Elles indiquentsuccessivement la taille maximale des boit...
Client légerUn client léger est une application cliente entièrement gérée par un serveur, de la gestion austockage des don...
serveur par le protocole SOAP. Zimbra propose aussi un logiciel client utilisable en modedéconnecté : le Yahoo! Zimbra Des...
Installation de RoundCube :Pour que RoundCube fonctionne correctement, il faut bien entendu que la machine hébergeun serve...
mysql> GRANT ALL PRIVILEGES ON webmail.* TO user@localhost IDENTIFIED BYmon_mot_de_passe;Query OK, 0 rows affected (0.01 s...
Options -FollowSymLinks                     AllowOverride None          </Directory>          <Directory /var/www/webmail/...
 L’étape 1 (Check environment) :Celui-ci devrait bien se passer à part quelques modules optionnels dont on n’aura pas bes...
 Activons ip_check;        Désactivons enable_spellcheck                (sinon tous nos mails seront envoyés à          ...
Figure 8 : Interface de connexion de RoundCube Webmail                            Figure 9 : Boite aux lettres d’un utilis...
2.3.2.3        Mise en place de Dovecot comme MDA et serveur IMAPComme vu un peu plus haut dans ce document, la mise en pl...
Grâce à ces quelques commandes, nous venons d’installer les serveurs IMAP et POP3 (carDovecot les intègre tous les deux).N...
Partie 3: Sécuriser le                                          système                    de          messagerieLa sécuri...
3.1.2       Configurer Postfix et Dovecot pour SASLLa première étape dans la configuration de SASL est l’édition des fichi...
auth default {       [...]       socket listen {               [...]               # Client for postfix SASL              ...
couple login/password au serveur. On peut maintenant commencer la session telnet commeindiquée ci-dessous:(C) # telnet mai...
3.2 Sécurisation des communications    3.2.1         Protection contre l’Open-Relay et le spamOn parle d’Open-Relay lorsqu...
# Requiert que les adresses reçues avec les commandes SMTP "MAIL FROM" et# "RCPT TO" soient# encadrées par <>. Ceci stoppe...
reject_non_fqdn_recipient,       reject_unknown_recipient_domain,       reject_unauth_destination,       permitNotons que ...
x509_extensions = server_cert[ req_distinguished_name ]countryName = SNstateOrProvinceName = SenegalorganizationName = MIN...
smtp" par "imap" et de le renommer par /etc/ssl/imapd.cnf. On appliquera cesmêmes modifications sur la commande de générat...
Pour le cas de SMTPS, la configuration d’OpenSSL se fera dans ses principaux fichiers deconfiguration.     Il   nous   suf...
Hello !!.250 2.0.0 Ok: queued as 8EF8730102C3quit221 2.0.0 Bye    3.2.4      Configuration d’un firewallLe but d’un firewa...
 25 (SMTP) : pour que le serveur puissent recevoir les mails provenant des autres   serveurs de mails.    465 (SMTPS) : ...
3.3 Gérer l’intégrité des donnéesCe volet de la sécurité des serveurs mails concerne le contenu des messages. En effetmain...
Cette commande a permis de modifier le fichier master.cf afin d’indiquer le routage desmessages. Le message sera maintenan...
Mise en place d'un système de messagerie sécurisée pour une PME/PMI
Mise en place d'un système de messagerie sécurisée pour une PME/PMI
Mise en place d'un système de messagerie sécurisée pour une PME/PMI
Mise en place d'un système de messagerie sécurisée pour une PME/PMI
Mise en place d'un système de messagerie sécurisée pour une PME/PMI
Mise en place d'un système de messagerie sécurisée pour une PME/PMI
Mise en place d'un système de messagerie sécurisée pour une PME/PMI
Mise en place d'un système de messagerie sécurisée pour une PME/PMI
Mise en place d'un système de messagerie sécurisée pour une PME/PMI
Mise en place d'un système de messagerie sécurisée pour une PME/PMI
Mise en place d'un système de messagerie sécurisée pour une PME/PMI
Mise en place d'un système de messagerie sécurisée pour une PME/PMI
Mise en place d'un système de messagerie sécurisée pour une PME/PMI
Mise en place d'un système de messagerie sécurisée pour une PME/PMI
Prochain SlideShare
Chargement dans…5
×

Mise en place d'un système de messagerie sécurisée pour une PME/PMI

14 781 vues

Publié le

Ce document reflète un travail qui a consisté à mettre en place un système de messagerie sécurisée pour une PME/PMI. J'y aborde les concepts clés de la messagerie électronique avant de montrer un cas simple de mise en place d'un tel système pour enfin terminer par sa sécurisation.

0 commentaire
6 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
14 781
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
731
Commentaires
0
J’aime
6
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Mise en place d'un système de messagerie sécurisée pour une PME/PMI

  1. 1. UNIVERSITE GASTON BERGER DE SAINT-LOUIS UFR DE SCIENCES APPLIQUEES ET DE TECHNOLOGIE SECTION INFORMATIQUE MEMOIRE DE MAITRISE INFORMATIQUE MISE EN PLACE D’UN SYSTEME DE MESSAGERIE SECURISEE POUR UNE PME / PMI PRESENTE ET SOUTENU PAR : Papa Cheikh CISSE et Mactar Ndiaga SECKSous la direction de :M. TRAORE MahamadouAnnée Académique 2009/2010 Numéro d’ordre : 29
  2. 2. DédicacesJe dédie ce mémoire:A Allah le tout puissant par qui le savoir a un sens,A ma chère mère Rokhaya BADIANE qui, de par sa bravoure, a su faire de moi l’homme que je suisdevenu. Maman, tu n’as jamais baissé les bras dans la difficulté et tu as toujours cru en ton fils aîné.Ce travail t’est dédié.A mon défunt et regretté père Ibrahima CISSE qui, de son vivant, n’a cessé d’inculquer en moi l’art debien faire et celui de ne jamais laisser tomber devant une difficulté. Je lui dois cette réussite.A mes très respectueux petits frères Mamadou Lakhassane et Papa Ali CISSE.A ma chère sœur Aissatou Cisse sans qui ce mémoire n’aurait pas pu être rédigé. Tu comprendras.A ma tante Ndeye Seyni Badiane qui m’a accompagné à devenir un homme.A mes oncles Saër Badiane, Mamadou Lakhassane Cisse qui me sont si chères et à qui je suis trèsreconnaissant.A tata Mary et à tata Ndeye Marème Diakhaté.Enfin à toute ma famille, mes amis, voisins, camarades de classe et toute personne qui de près ou deloin n’a cessé de me soutenir durant mon parcours. Papa Cheikh CISSEAu nom de Dieu clément et miséricordieuxCe travail fruit de dur labeur est dédié à ma famille au sens africain du termeEn tête mon défunt père Pape Thioro Gor Seck qui a semé et entretenu la plante que je suis et qui n’apas eu le temps de voir les fruits de celle-ci.A ma chouette mère Awa Niang qui a toujours été mon dernier rempart, ses prières me donnentl’énergie et la force pour avancer.A mes aimables frères et sœur pour tout le soutien moral et l’amour qu’ils me portent.A mon homonyme Ndiaga Seck et à toute la famille SeckA ma tante Adjara Niang et toute la famille Niang et KamaraA mes amis d’enfance à khomboleA mes amis de l’université Gaston berger de Saint-LouisEt à toute personne qui a participé de près ou de loin à la réussite de ce travail. Mactar Ndiaga SECKPrésenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 2
  3. 3. RemerciementsCe travail a été réalisé à l’Université Gaston Berger de Saint Louis. Nos remerciements vont àl’endroit de tout le corps administratif et professoral qui a assuré notre formation,notamment à:  La direction de l’UFR de Sciences Appliquées et de Technologies  La section informatique de l’UGB  M. TRAORE Mahamadou, notre encadreur, pour ses bonnes directives.  Mme DIOP Aichetou du service technique de l’UFR SAT  M. AMEKOUDI Stefano Komla A. du Centre d’Accès à l’information de Saint Louis (Agence Universitaire de la Francophonie) pour sa disponibilité et ses bons conseils. Nous lui sommes très reconnaissants  M. FALL Ibrahima du Centre d’Accès à l’information de Saint Louis et à tout le personnel de ce service pour son accueil et sa convivialité.Notre reconnaissance ensuite à nos proches, amis et à toutes les personnes de bonnevolonté qui nous ont aidé tout au long de notre parcours.Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 3
  4. 4. Table des matièresDédicaces 1Remerciements 3Table des matières 4Liste des tableaux 6Liste des figures 7Liste des sigles 8Introduction 9Partie 1: Présentation générale 101.1 Besoins d’une PME/PMI en termes de TIC 101.2 Apports d’un système de messagerie à une PME/PMI 101.3 Enjeux et objectif de sécurité pour un tel système 11Partie 2: Mise en place du système de messagerie 122.1 Des concepts clés de la messagerie électronique 12 2.1.1 Les agents de la messagerie 12 2.1.1.1 Le MTA (Mail Transfert Agent) 11 2.1.1.2 Le MUA (Mail User Agent) 12 2.1.1.3 Le MDA (Mail Delivery Agent) 12 2.1.2 Les protocoles 14 2.1.2.1 Protocole SMTP 13 2.1.2.1 Protocoles POP3 et IMAP 15 2.1.2.2 Protocole Telnet 162.2 Architecture et principe de fonctionnement 18 2.2.1 Architecture de fonctionnement 18 2.2.2 Principe de fonctionnement 212.3 Etapes pour mettre en place un système de messagerie 22 2.3.1 Mise en place des services préalables 22 2.3.2 Mise en place du service de messagerie 32Partie 3: Sécuriser le système de messagerie 473.1 Authentification SMTP avec SASL 47 3.1.1 Principes et objectifs de SASL 47Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 4
  5. 5. 3.1.2 Configurer Postfix et Dovecot pour SASL 483.2 Sécurisation des communications 51 3.2.1 Protection contre l’Open-Relay et le spam 51 3.2.2 Les certificats SSL 53 3.2.3 Chiffrement des communications IMAP et SMTP avec OpenSSL 55 3.2.4 Configuration d’un firewall 573.3 Gérer l’intégrité des données 59 3.3.1 Filtrage de contenu avec Amavis 59 3.3.2 Intégration d’un antivirus : ClamAV 60 3.3.3 Intégration d’un Anti Spam : Spamassassin 61 3.3.4 Tri des messages avec SIEVE 65Bibliographie / Webographie 69Conclusion 70Annexes 71Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 5
  6. 6. Liste des tableauxTableau 1 : Récapitulatif des principales commandes SMTP__________________________71Tableau 2 : Principales commandes POP3 et leurs descriptions_______________________73Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 6
  7. 7. Liste des figuresFigure 1 : Architecture de fonctionnement des différents éléments du système de messagerie____ 19Figure 2 : Menu d’installation d’Ubuntu Server 10.04 LTS__________________________________ 23Figure 3 : choix d’une adresse IP fixe pour le serveur______________________________________24Figure 4 : Sélection de services à installer en même temps qu’Ubuntu-Server__________________25Figure 5 : Ecran de première connexion au serveur_______________________________________ 26Figure 6 : Première étape de la configuration de Postfix___________________________________ 35Figure 7 : Interface de configuration de RoundCube (RoundCube Installer) ____________________42Figure 8 : Interface de connexion du RoundCube Webmail_________________________________43Figure 9 : Boite aux lettres d’un utilisateur______________________________________________43Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 7
  8. 8. Liste des siglesTIC: Technologies de l’Information et de la CommunicationSMTP/ESMTP: Simple Mail Transfer Protocol / Extended Simple Mail Transfer ProtocolPOP/POP3: Post Office Protocol / Post Office Protocol 3IMAP: Internet Message Access ProtocolSSL/TLS: Secure Socket Layer / Transport Layer SecuritySSH: Secure ShellMTA: Mail Transfer AgentMUA: Mail User AgentMDA: Mail Deliver AgentTCP/IP: Transmission Control Protocol / Internet ProtocolFTP: File Transfer ProtocolHTML/ XHTML: HyperText Markup Language / eXtensible HyperText Markup LanguageHTTP: HyperText Transfer ProtocolLTS: Long Term SupportPME/PMI: Petite et Moyenne Entreprise / Petite et Moyenne IndustrieDNS: Domain Name SystemUID: User IDentifierGID: Group IDentifierGPL: General Public LicenseAJAX: Asynchronous JavaScript And XML.SOAP: Simple Object Access ProtocolLDAP: Lightweight Directory Access ProtocolCSS: Cascade Style SheetsMIME: Multipurpose Internet Mail ExtensionsSASL: Simple Authentication and Security LayerFQDN: Fully Qualified Domain NameCRLF: Carriage Return Line FeedFAI: Fournisseur d’Accès à InternetUFW : Uncomplicated FireWallPrésenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 8
  9. 9. IntroductionIl ne fait désormais plus aucun doute que les technologies de linformation et de lacommunication représentent la révolution la plus importante et la plus innovante qui amarqué la vie de lhumanité en ce siècle passé. En effet, elles viennent nous apporter demultiples conforts à notre mode de vie en révolutionnant le travail des individus par leurcapacité de traitement dinformation, dune part, et de rapprochement des distances duneautre.Parmi ces technologies, la messagerie électronique, aussi appelée «electronic-mail» ou «e-mail», est assez développée dans les organisations aux cours de ces dix dernières années,grâce à sa facilité dutilisation et son utilité perçue.Il est devenu lun des outils les plus répandus dans linternet des entreprises ou desparticuliers. Cest un service gratuit qui constitue un moyen de communication privilégiéentre des personnes à travers Internet. Utilisé pour des applications très variées -personnelles, professionnelles, associatives, politiques, etc., celui-ci occupe une place deplus en plus prépondérante par rapport aux moyens de communication traditionnels. Outreson faible coût, la messagerie électronique a lavantage doptimiser la communication et ladiffusion dinformations ce qui la rend indispensable au sein d’une PME/PMI.Dès lors, cette forte utilisation de la messagerie électronique constitue l’une de sesprincipales faiblesses, dans la mesure où elle attire les spammeurs et autres polluposteursde l’internet. Ceux-ci non seulement en profitent pour promouvoir des produits de toutgenre, mais peuvent aller jusqu’à intercepter quelques messages circulant sur le réseau.C’est à cause de cela que le courrier des utilisateurs est devenu la ressource la plus sensibled’un système informatique obligeant les entreprises à sécuriser leurs systèmes demessagerie internes.Ainsi, nous allons dans le cadre de ce mémoire, indiquer comment un système demessagerie, de par sa mise en place et sa sécurisation pourrait répondre aux besoins entermes de TIC d’une PME/PMI. Pour cela après avoir éclairci sur ces quelques apports, nousexpliquerons le fonctionnement d’un système de messagerie électronique, avant de passer àsa mise en place pour la PME/PMI pour enfin terminer par sa sécurisation.Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 9
  10. 10. Partie 1: Présentation générale1.1 Besoins d’une PME/PMI en termes de TICInternet entraîne des changements de taille dans la nature des pratiques commerciales. Bonnombre de ces changements se traduiront par des avantages concurrentiels pour la plupartdes entreprises, en particulier les PME. Internet donne accès à tout un monde de nouveauxmarchés et il est aussi facile dy entrer que de transmettre un message par courrierélectronique. Il sagit peut-être là de lavantage le plus évident que les entreprises pourraienten retirer.Les entreprises veulent trouver de nouveaux clients dans leur environnement immédiat,dans la province voisine ou sur un autre continent. Cela s’explique que le courrierélectronique a été adopté par presque tous les organismes qui ont besoin de communiqueravec le reste du monde, en grande partie parce quil coûte infiniment moins cher .1.2 Apports d’un système de messagerie à une PME/PMILe système de messagerie est aujourdhui le moyen de communication le plus populaire surInternet. Cest également l’un des moins chers à mettre en œuvre, parce que simple, rapideet fiable. En raison de sa popularité, le courrier électronique permet de communiquer avecun vaste auditoire. Il tend à prendre une place de plus en plus prépondérante par rapportaux moyens de communication traditionnels. Bien quil puisse incorporer des graphiques,des fichiers sonores et visuels, il sert principalement à lenvoi de textes avec ou sansdocuments annexés. Grâce au courrier électronique, les PME/PMI peuvent communiqueravec leurs clients et fournisseurs dans le but déchanger des renseignements commerciaux,relatifs à leurs activités quotidiennes, y compris des renseignements sur les ventes, la prisede rendez-vous, le soutien à la clientèle, la diffusion de documents, la prise de commandes,lenvoi des factures et la vérification des comptes en souffrance. La messagerie électroniquePrésenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 10
  11. 11. permet de réduire le nombre dappels internes et externes, de rencontres entre direction etpersonnel. Il est aussi un excellent moyen de coordination dune équipe ou dun service. Onpeut citer d’autres cas que l’utilisation de la messagerie favorise: Un texte expédié par un système de messagerie électronique sera non seulement lu par son destinataire mais il pourra également être stocké dans un fichier. La grande majorité des systèmes actuels permettent denvoyer des fichiers attachés à vos messages. Ces fichiers peuvent être, par exemple, des données spécifiques à une application de votre client ou fournisseur. Cest aussi souvent des fichiers de lun des tableurs ou système de traitement de textes présents sur le marché. La transmission est immédiate, et votre interlocuteur pourra avoir accès à son courrier en déplacement ou depuis son domicile. Des filtres sélectifs peuvent être programmés pour trier les messages adressés à un destinataire.1.3 Enjeux et objectif de sécurité pour un tel systèmeLa messagerie électronique est devenue le système critique d’une entreprise puisque c’est lecœur de toutes communications entre employés. Le fonctionnement de ce service impacteradirectement sur l’activité de votre compagnie. Les responsables de certaines entreprisescroient parfois à tort que, les données qu’ils abritent n’étant pas confidentielles, l’enjeu de lasécurité est nul pour leur entreprise. Pour autant, accepteraient-ils une indisponibilité deleurs ressources 80% du temps pour cause de réinstallation suite à une compromission ?Supporteraient-ils que l’accès réseau, qu’ils payent fort cher chaque mois, soit utilisé à 99 %pour un site «warez» et se trouve indisponible pour leurs propres besoins ? Se satisferaient-ils d’être mis en liste noire par leurs correspondants pour avoir négligé un serveur demessagerie qui autorise le relais ? On pense tous que non. D’où la raison pour une PME/PMId’investir en sécurité de sa messagerie.Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 11
  12. 12. Partie 2: Mise en place du système de messagerie2.1 Des concepts clés de la messagerie électronique 2.1.1 Les agents de la messagerieUn système de messagerie électronique est l’ensemble des éléments contribuant àtransmettre un courriel de l’émetteur au récepteur. 2.1.1.1 Le MTA (Mail Transfert Agent)Le MTA est un programme qui permet d’envoyer le message d’un serveur à un autre. Celogiciel est situé sur chaque serveur de messagerie. Il est composé d’un agent de routage etd’un agent de transmission. Il envoie le message via un protocole sortant. Notons que lesprotocoles sortants permettent de gérer la transmission du courrier entre les systèmes demessagerie et le plus utilisé est le Simple Mail Transfert Protocol (SMTP). Les messages sonttransférés au MTA du destinataire, sauf si celui-ci est le MTA traitant actuellement le mail :dans ce cas le message est transféré à un MDA. Lorsquun MTA veut transférer un message àun MTA qui est indisponible, il met ce message dans sa file dattente : il essaiera plusieursfois de retransmettre le message, jusquà ce que le MTA destinataire soit à nouveaudisponible. Au-delà dun certain nombre dessais infructueux (ou dune certaine durée selonla configuration), le message sera rejeté par le MTA. Il peut rejeter un message reçu pourune de ces raisons :  serveur non concerné : les MTA sont en général configurés pour naccepter que des messages expédiés par des personnes appartenant à un certain réseau (par exemple celui des clients pour un FAI) et/ou que des messages destinés à certaines adresses.Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 12
  13. 13.  expéditeur en liste noire : les serveurs connus comme étant utilisés par les spammeurs sont répertoriés dans des listes noires ; certains MTA rejettent les messages expédiés depuis ces serveursLe rejet dun message provoque généralement lenvoi dun email à lexpéditeur linformantque le message a été refusé. Cependant, cela est de moins en moins systématique en raisonde lengorgement des réseaux et de la multiplication des virus et spammeurs qui indiquentune fausse adresse dexpéditeur.Il existe plusieurs MTA et les plus côtoyés sur internet sont : Sendmail, Postfix, Exim4, Qmail. 2.1.1.2 Le MUA (Mail User Agent)C’est un logiciel client de messagerie qui fournit un environnement pour la gestion descourriels (saisie, suppression, réception). Il est également capable d’expédier le message auMTA le plus proche.Il faut faire la distinction entre le MUA installé sur le système de l’utilisateur qui est appeléclient de messagerie (par exemple Mozilla Thunderbird, Microsoft Outlook, Eudora Mail,Incredimail) et celui accessible via un navigateur appelé webmail. Ce dernier est un site web(Hotmail, LaPoste…) qui remplit les mêmes fonctions que le client de messagerie mais qui nenécessite pas d’installer quoi que ce soit sur son ordinateur pour gérer son courrier, unsimple navigateur (Mozilla, Internet Explorer) étant suffisant. Un avantage de webmail d’unetelle méthode de consultation est la possibilité de le faire à partir de n’importe quellemachine connectée au réseau dans le monde, le courrier restant en permanence sur leserveur. Un désavantage du webmail est un possible ralentissement si trop d’utilisateurstravaillent simultanément. 2.1.1.3 Le MDA (Mail Delivery Agent)Le MDA est un agent qui est en charge de la gestion des boites aux lettres. Il prélève lecourrier dans les files d’attentes du MTA et le dépose dans le répertoire de boites aux lettresPrésenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 13
  14. 14. de l’utilisateur. Pour cela il est souvent considéré comme le point final d’un système demessagerie. Il est possible de placer des fonctions de sécurité à ce niveau : appels antiviruset ou anti spam.Par exemple dans le MDA on peut appliquer à tous les mails :  des filtres anti-spam qui permettent de se débarrasser des courriers indésirables.  des filtres anti-virus pour contrôler les virus.Le MDA est l’outil de personnalisation des fonctions de sécurité. Si l’utilisateur souhaiterégler lui-même les paramètres de fonctionnement des outils de sécurité, c’est là quel’opération doit se faire. De ce fait il est possible des filtres personnalisés pour trier les mailsdans différents dossiers.Il existe plusieurs serveurs MDA, les plus courants sont Cyrus, Procmail, Maildrop, Dovecot. 2.1.2 Les protocolesUn protocole est une méthode standard qui permet la communication entre des processus(sexécutant éventuellement sur différentes machines), cest-à-dire un ensemble de règles etde procédures à respecter pour émettre et recevoir des données sur un réseau. Il en existeplusieurs selon ce que lon attend de la communication.On les classe généralement en deux catégories: Les protocoles orientés connexion: Il sagit des protocoles opérant un contrôle de transmission des données pendant une communication établie entre deux machines. Les protocoles non orientés connexion: lorsqu’aucune connexion n’est établie entre la machine émettrice et celle réceptrice. 2.1.2.1 Protocole SMTPLe Simple Mail Transfer Protocol (littéralement «Protocole simple de transfert de courrier»),généralement abrégé SMTP, est un protocole de communication utilisé pour transférer lePrésenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 14
  15. 15. courrier électronique vers les serveurs de messagerie électronique en connexion point àpoint.C’est un protocole de la suite TCP/IP qui fonctionne en mode connecté et qui est duneutilisation assez simple.Sendmail est lun des premiers serveurs de messagerie électronique à utiliser SMTP. Depuis,la plupart des clients de messagerie peuvent lutiliser pour envoyer les messages.Lors dun envoi SMTP, on commence par spécifier lexpéditeur du message puis, le ou lesdestinataires, puis, en général après avoir vérifié leur existence, le corps du message esttransféré. Il est possible de tester un serveur SMTP en utilisant la commande telnet sur leport 25 dun serveur distant.Procédure dun envoi SMTP : Lors de louverture de la session SMTP, la première commande à envoyer est la commande HELO suivie dun espace et du nom de domaine de votre machine (afin de dire "bonjour je suis telle machine"), puis valider par entrée. Depuis avril 2001, les spécifications du protocole SMTP imposent que la commande HELO soit remplacée par la commande EHLO. La seconde commande est "MAIL FROM:" suivie de ladresse email de lexpéditeur. Si la commande est acceptée le serveur renvoie le message "250 OK" La commande suivante est "RCPT TO:" suivie de ladresse email du destinataire. Si la commande est acceptée le serveur renvoie le message "250 OK" La commande DATA est la troisième étape de lenvoi. Elle annonce le début du corps du message. Si la commande est acceptée le serveur renvoie un message intermédiaire numéroté 354 indiquant que lenvoi du corps du mail peut commencer et considère lensemble des lignes suivantes jusquà la fin du message repéré par une ligne contenant uniquement un point. Le corps du mail contient éventuellement certains des en-têtes suivants :  Date  Subject  Cc  Bcc  FromPrésenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 15
  16. 16. Exemple dun envoi SMTP, (C) désigne le client et (S) le serveur :(C) telnet mail.minfo.sn 25(S) 220 mail.minfo.sn SMTP ready(C) EHLO mail.minfo.sn(S) 250 mail.minfo.sn(C) MAIL FROM : <admin@minfo.sn>(S) 250 OK(C) RCPT TO: <kelkun@kelkpart.com>(S) 250 OK(C) DATA(S) 354 Start mail input; end with <CRLF>.<CRLF>(C) Subject: Salut !(C) Bonjour,(C) Ceci est juste un test.(C) Ciao!(C) .(S) 250 OK(C) QUIT(S) 221 mail.minfo.sn closing transmissionIl existe ainsi une syntaxe précise pour envoyer des messages et une série de codes retourpour indiquer le statut de la demande.Pour les codes de retour, émis par le serveur, il est possible de se repérer facilement à l’aidedu premier chiffre du code :  Code 2 : La demande a été exécutée sans erreur.  Code 3 : La demande est en cours d’exécution  Code 4 : Indique une erreur temporaire  Code 5 : La demande n’est pas valide et n’a pas pu être traitée. Vérifiez votre syntaxe.Voir en annexe un récapitulatif des principales commandes SMTP ainsi que les différentscodes de retour du protocole SMTP et leurs significations.Cependant, le protocole SMTP ne permet pas la récupération de mails, d’où l’utilité desprotocoles tels que POP3 et IMAP.Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 16
  17. 17. 2.1.2.2 Protocoles POP3 et IMAPLes protocoles POP (Post Office Protocol) et IMAP (Internet Message Access Protocol)permettent daller récupérer du courrier sur un serveur distant.Tout comme dans le cas du protocole SMTP, le protocole POP fonctionne grâce à descommandes textuelles envoyées au serveur POP. Chacune des commandes envoyées par leclient (validée par la touche « Entrée ») est composée dun mot-clé, éventuellementaccompagné dun ou plusieurs arguments et est suivie dune réponse du serveur POPcomposée dun numéro et dun message descriptif.Le protocole POP3 gère ainsi lauthentification à laide dun nom dutilisateur et dun mot depasse, il nest par contre pas sécurisé car les mots de passe, au même titre que les mails,circulent en clair sur le réseau. Dautre part le protocole POP3 bloque la boîte aux lettreslors de la consultation, ce qui signifie quune consultation simultanée par deux utilisateursdune même boîte aux lettres est impossible.En annexe, un tableau récapitulatif des commandes POP3.Le protocole IMAP (Internet Message Access Protocol) est un protocole alternatif auprotocole POP3 mais beaucoup plus complet et offrant beaucoup plus de possibilités :  IMAP permet de gérer plusieurs accès simultanés.  IMAP permet de gérer plusieurs boîtes aux lettres.  IMAP permet de trier le courrier selon plus de critères.Le protocole IMAP permet de répondre beaucoup mieux à des besoins de déplacement. Ilminimise également les échanges de données sur le réseau. La plupart des clients demessagerie implémentent le protocole IMAP puisque celui-ci est largement utilisé par lesdifférents fournisseurs daccès à Internet. 2.1.2.3 Protocole TelnetLe protocole Telnet est un protocole standard permettant à un ordinateur de se connecter àdistance à un autre ordinateur, via lInternet, en mode caractère uniquement. C’est unprotocole proposant linterfaçage de terminaux et dapplications à travers Internet. Il fournitPrésenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 17
  18. 18. les règles de base pour permettre de relier un client (système composé dun affichage etdun clavier) à un interpréteur de commande (côté serveur). Dès que la connexion estétablie, tout se passe comme si lutilisateur Telnet se trouvait aux commandes delordinateur distant; il peut alors utiliser le langage de commande disponible sur lhôtedistant et lancer lexécution de programmes qui sexécuteront sur cet hôte.Le protocole Telnet sappuie sur une connexion TCP pour envoyer des données au formatASCII entre lesquelles sintercalent des séquences de contrôle Telnet. Il fournit ainsi unsystème orienté communication, bidirectionnel. C’est un protocole de base, sur lequelsappuient certains autres protocoles de la suite TCP/IP (FTP, SMTP, POP3, ...). Ainsi, Telnetpermet de transférer des fichiers FTP, de lire le courrier électronique, de visionner desdocuments HTML, de consulter des catalogues de bibliothèques ou de banques de donnéesqui rendent leur logiciel de consultation de catalogue accessible. Les spécifications de Telnetne mentionnent pas dauthentification car Telnet est totalement séparé des applications quilutilisent (le protocole FTP par exemple définit une séquence dauthentification au-dessusde Telnet). De ce fait, Telnet est un protocole de transfert de données non sûr, cest-à-direque les données quil véhicule circulent en clair sur le réseau (de manière non chiffrée).Lorsque le protocole Telnet est utilisé pour connecter un hôte distant à un serveur, c’est leport 23 qui est utilisé.2.2 Architecture et principe de fonctionnement 2.2.1 Architecture de fonctionnementLes différents éléments d’un système de messagerie sont agencés selon une architecturelogique, pour en assurer le fonctionnement. L’architecture d’un système de messagerie peutêtre représentée de la sorte :Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 18
  19. 19. Figure 1 : Architecture de fonctionnement des différents éléments du système de messagerieDans ce système on distingue quatre éléments fondamentaux : Le MUA (Mail User Agent). C’est l’outil qui est directement en interaction avec l’utilisateur dans un système de messagerie. Il peut être soit un webmail, comme RoundCube, SquirrelMail, Gmail, Yahoo ou bien d’autres, soit un client de messagerie tel que Mozilla Thunderbird, Outlook Express, etc. Dans le premier cas on parlera de client de messagerie léger et pour le second, il s’agit d’un client de messagerie lourd. Le MUA est donc un logiciel ou un service web qui fournit un environnement pour la gestion du courrier électronique. Il offre à l’internaute les services les plus essentiels pour un courriel tel que la saisie, l’envoi, la réception et la suppression de messages. Les plus modernes d’entre eux intègrent encore plus de fonctionnalités et permettent même le filtrage des messages reçus selon les besoins de l’utilisateur. Le MTA pour Mail Transfert Agent est l’agent de messagerie qui permet d’acheminer le courriel d’un serveur à un autre. C’est un programme doté d’une fonction de routage etPrésenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 19
  20. 20. d’une fonction de transport. Lorsque par exemple utilisateur@minfo.sn envoie un mél à utilisateur@miage.sn, les deux se trouvant sur deux domaines différents, c’est le MTA du domaine minfo.sn qui se charge de la transmission du message. Pour cela, il établit un canal de transmission avec le MTA du domaine miage.sn par émissions successives de requêtes bidirectionnelles. Dans le cas d’un système de messagerie interne l’émetteur et le récepteur du courriel sont dans la plupart des cas dans un même domaine et le serveur MTA est le même pour ces deux utilisateurs. Ainsi, pour pouvoir assurer cette fonction de transport de courriel, les MTA implémentent un protocole sortant tel que le protocole SMTP (Voir chapitre sur protocole SMTP). Ces protocoles sortants permettent de gérer la transmission du courrier entre les systèmes de messagerie. Parmi les MTA les plus en vue sur internet figurent Sendmail, Postfix utilisé dans notre cas, Exim4 et Qmail. Le serveur de protocoles entrants encore appelé serveur IMAP/POP3 est un outil assurant la réception et la distribution du courriel. C’est lui qui se charge d’aller récupérer le courriel sur le MTA. Pour cela, comme pour le serveur MTA avec les protocoles sortants, le serveur de protocoles entrants comme son nom l’indique implémente un protocole entrant qui est la plupart du temps le POP3 (Post Office Protocol version 3) et le protocole IMAP pour Internet Message Access Protocol. Dans un système de messagerie, il est d’une nécessité d’avoir un serveur de protocoles entrants. Dans notre cas, c’est Dovecot qui est configuré pour jouer ce rôle. Le MDA (Mail Delivery Agent) est un programme qui est en charge de la gestion des boîtes aux lettres. Il assure la livraison du courriel dans la boîte à messages du destinataire. C’est lui qui récupère le courriel du serveur IMAP/POP3, et le met à disposition du MUA. Pour cela, il est souvent considéré comme le point final dun système de messagerie. Dans le MDA, il est possible de filtrer les courriels et aussi de supprimer les spams. Il existe plusieurs serveurs MDA et parmi les plus courants figurent Dovecot, Procmail, Maildrop et Cyrus. Ici, nous avons choisi Dovecot, intégré dans la version serveur de Ubuntu 10.04 LTS, comme notre MDA.Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 20
  21. 21. 2.2.2 Principe de fonctionnementLe fonctionnement d’un système messagerie est décomposé en au moins deux étapessignificatives et indépendantes: l’envoi et la réception. Nous allons étudier la manière dontun est délivré un message électronique provenant de user@minfo.sn verssecretaire@ugb.sn par exemple. L’utilisateur user envoie via son Mail User Agent(MUA), qui n’est rien d’autre qu’un logiciel de messagerie (Mozilla Thunderbird parexemple), un message électronique en passant par le serveur mail de son domaine. Pour lasoumission du message, c’est le Simple Mail Transfert Protocole (SMTP) qui est utilisé. Leserveur mail est appelé Mail Transfert Agent(MTA), son rôle est de relayer les mails ou de lesaccepter s’ils sont destinés au domaine courant.C’est donc ce que fait le serveur SMTP du domaine minfo.sn, il doit transmettre lemessage de user vers secretaire@ugb.sn. Le mécanisme de fonctionnement de SMTPest quil commence dabord par vérifier lexistence de lexpéditeur et du ou des destinataire(s), indiqués dans lentête du message avant de transmettre le contenu.Pour connaître l’adresse du serveur de mail du domaine ugb.sn, le MTA fait une requêteDNS de type MX sur le domaine cible.En réponse, il obtient la liste des serveurs de messagerie de ugb.sn capables d’accepter lesmails pour le domaine. L’échange entre ces deux serveurs (les deux MTA) se fait via leprotocole SMTP. Le MTA d’ugb.sn, après réception du courriel, doit procéder à son envoi. Ilsait cependant que ce domaine est local, il ne lui reste plus qu’à délivrer son message dans laboîte aux lettres de l’utilisateur correspondant à secretariat@ugb.sn.C’est alors à l’utilisateur de se connecter à sa boîte aux lettres via le protocole IMAP ou POP3et de récupérer ses mails. Ces différents protocoles sont détaillés un peu plus en haut.Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 21
  22. 22. 2.3 Etapes pour mettre en place un système de messagerie2.3.1 Mise en place des services préalables 2.3.1.1 Ubuntu-Server 10.04 LTSUn serveur peut reposer sur différents types de systèmes d’exploitation. Pour en mettre unen place, il faut procéder à deux étapes:  Installation et configuration du système dexploitation.  Installation et configuration du ou des applications adaptées aux services désirés.Dans le cas dUbuntu, nimporte quelle variante peut donc servir de base pour mettre enplace un serveur. Cependant, ceux-ci sont très souvent configurés pour avoir une efficacitémaximale.Ainsi, la variante serveur dUbuntu version 10.04, en plus d’être gratuite, possèdeun noyau optimisé et est dépourvue denvironnement graphique qui est la plupart du tempsgourmand en ressources et superflu dans le cas dun serveur amené à être manipulé assezrarement. Cette variante est donc la plus adaptée pour la mise en place de notre serveurpour une PME/PMI.L’édition serveur d’Ubuntu 10.04 propose à l’installation la plupart des services dont onpourrait avoir besoin dans un réseau d’entreprise et facilite leur configuration. Cette versionintègre Postfix et Dovecot pour le service mail et vous propose sa configuration au momentde l’installation du système. Il intègre aussi Samba pour un serveur de fichier etd’impression, Apache (avec des modules PHP, Perl, Python), MySQL, PostgreSQL, pour unserveur web ainsi que Java et Ruby.Ces quelques captures montrent les principales étapes de l’installation d’Ubuntu-Server10.04 LTS.Lorsqu’on boote avec un CD ou une image d’Ubuntu Server 10.04 LTS, nous avons le joliécran ci-dessous :Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 22
  23. 23. Figure 2 : Menu d’installation d’Ubuntu Server 10.04 LTSNous allons choisir, l’option Installer Ubuntu Server. Il s’en suivra le choix de nos paramètresrégionaux puis celui de l’agencement de notre clavier. Nous allons devoir choisir notre pays,notre langage, etc.Après cela, le programme d’installation d’Ubuntu Server va passer à la configuration duréseau. Cela suppose que nous avons sur notre futur serveur tous les matériels réseauxnécessaires à sa bonne marche. Choisissons l’option Configurer vous-même le réseau. Ainsiapparait par la suite un écran qui nous invite à choisir pour notre futur serveur une adresseIP comme ceci :Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 23
  24. 24. Figure 3 : choix d’une adresse IP fixe pour le serveurNous mettrons ensuite le bon masque de sous-réseau. Dans notre cas, le masque choisi est255.255.255.0. Comme passerelle, nous laissons le champ vide, et pour l’adresse duserveur de noms, nous mettons 192.168.10.1. Cela est du fait que, le serveur sur lequelon installe ce système d’exploitation jouera en même temps le rôle de serveur de noms (Voirchapitre suivant pour la configuration d’un serveur DNS).On passera, après cela, aux choix des noms de machine (ou hostname) et de domaine quimettront fin aux étapes de configuration du réseau. Voici les valeurs choisies dans notre cas :Nom de machine : mailDomaine : minfo.snCeci veut dire que le serveur sera mail.minfo.sn. C’est-à-dire la machine qui s’appellemail dans le domaine minfo.sn.Après ces étapes, le setup va passer à la détection des disques et autres périphériques surnotre serveur. Ceci nous amènera par la suite au partitionnement. Cependant, nous ne nousattarderons pas sur ce point. Dans notre présent cas, nous avons juste choisi : Une partition / pour le système de fichiers racine. Une autre /home de taille suffisamment grande car c’est dans ce répertoire que l’on choisira par la suite de garder les courriels des utilisateurs du système (Voir configuration du serveur IMAP).Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 24
  25. 25.  Une partition /boot juste pour le démarrage du système. Et enfin un espace d’échange « swap ».Après le formatage des partitions et l’installation du système de base, on aura à créer uncompte d’utilisateur pour le système et à choisir son mot de passe. Arrive enfin, l’étape duchoix des services réseaux à installer en même temps que notre système d’exploitation. Figure 4 : Sélection de services à installer en même temps que Ubuntu-ServerAinsi comme le montre la capture précédente, nous avons juste choisi de mettre en place lesserveurs DNS, LAMP et Mail. Pour le DNS, le système va installer le programme bind, pourLAMP on aura Apache, MySQL et PHP d’installé et enfin pour le serveur Mail, le système vamettre Postfix en place. Faut aussi savoir que tous ces outils peuvent être installés bienaprès la mise en place du système d’exploitation (Voir les chapitres suivants concernant lesinstallations et configurations des différents services).L’installation de notre système d’exploitation va se poursuivre pour enfin terminer avec laconfiguration de ces différents services.Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 25
  26. 26. Toutes ces précédentes étapes réussies, notre serveur est enfin prêt à être exploité. Nousaurons l’écran suivant représentant le shell de première connexion. Il indique en premièreligne, la version du système d’exploitation du serveur (Ubuntu 10.04 LTS), le nom de lamachine (mail) et le terminal actif (tty1). En deuxième ligne, le système vous invite à mettrevotre login pour l’authentification système. Figure 5 : Ecran de première connexion au serveur. 2.3.1.2 Installation et configuration d’un service DNSLe DNS pour Domain Name System est lensemble des règles utilisées par les machines et leslogiciels pour établir, entre autres choses, la correspondance entre les noms de machines etles adresses IP, dont chaque machine sur internet est pourvue. Le serveur de noms permetdassocier une adresse IP à un nom. Dans un réseau, chaque machine se voit attribuer uneadresse IP unique qui permet de lidentifier. Cest un peu comme une adresse postale, quiPrésenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 26
  27. 27. permet didentifier une maison de façon certaine. Mais si une adresse chiffrée est plus facileà manipuler par un ordinateur, elle est difficile à mémoriser par un humain. Ainsi, on sesouvient facilement de www.ugb.sn, mais plus difficilement de 196.1.99.13. Le serveurde noms va permettre de trouver ladresse IP à partir dun nom (ou inversement), quelordinateur pourra ensuite interroger. Pour résoudre un nom en adresse IP, la méthode laplus simple consiste à mettre tous les noms dhôtes et leurs adresses associées dans lefichier etc/hosts. Cette méthode peut se révéler fastidieuse à la longue : chaque foisquon veut insérer une nouvelle machine dans le réseau, il faut modifier lefichier /etc/hosts de chaque machine. Le DNS a été conçu pour résoudre ce problème.Nous allons ainsi configurer un service de résolution de noms.D’abord, nous devons avoir ceci dans le fichier etc/resolv.conf:# Liste des serveurs à contacter pour résoudre un nom. Il faut mieux# mettre en premier le serveur de noms local, pour éviter de passer par# internet pour une machine du réseau local. On peut mettre# jusquà 3 adresses. Ici 192.168.10.1 qui est l’adresse ip de notre# serveur de nomsnameserver 192.168.10.1nameserver xxx.xxx.xxx.xxxDans etc/host.conf, il doit être indiqué quels services de conversion de noms sontdisponibles, et dans quel ordre il faut les appliquer :# On indique le nom de notre domaine local.domain minfo.sn# Liste des domaines à cherchersearch minfo.sn# Valeurs possibles: hosts, bind.order hosts, bindNous pouvons passer à la propre mise en place du DNS en lançant, avec les privilèges desuper-utilisateur, la commande suivante :Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 27
  28. 28. # apt-get install bind9Ceci nous permettra d’installer bind, un outil permettant la configuration d’un serveur denoms sous linux.Lorsque l’installation réussit, nous aurons dans le répertoire /etc/bind/ les principauxfichiers de configuration que nous allons adapter à notre cas. Nous allons suivre les étapessuivantes : Edition du fichier de configuration principal /etc/bind/named.conf. Dans ce fichier nous allons indiquer à bind d’autres fichiers à consulter pour la résolution simple (file "minfo.sn") et la résolution inverse (file "minfo.sn.rev") de noms. Ces fichiers sont appelés fichiers de zone. Notre fichier named.conf devra ressembler à ceci :[…]include "/etc/bind/named.conf.options";include "/etc/bind/named.conf.local";include "/etc/bind/named.conf.default-zones";zone "0.0.127.in-addr-arpa"{ type master; file "named.local";};zone "10.168.192.in-addr.arpa"{ type master; file "minfo.sn.rev";};zone "minfo.sn"{ type master; file "minfo.sn";};type master pour indiquer à bind, qu’il s’agit ici d’un serveur DNS primaire ayant autoritésur la zone déclarée.Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 28
  29. 29.  Création des fichiers "minfo.sn" et "minfo.sn.rev". Dans le répertoire /etc/bind/, nous irons créer ces deux fichiers. Pour cela nous ferons un vi <nom_fichier_à_créer> à chaque fois. Voici les contenus de chacun des deux fichiers.minfo.sn$TTL 604800@ IN SOA mail.minfo.sn. root.mail.minfo.sn. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTLminfo.sn. IN NS mail.minfo.sn.mail IN A 192.168.10.1www IN CNAME mailminfo.sn IN MX 10 mail.minfo.sn.minfo.sn.rev$TTL 604800@ IN SOA mail.minfo.sn. root.mail.minfo.sn. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL@ IN NS mail.minfo.sn.@ IN A 192.168.10.11 IN PTR mail.minfo.sn.Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 29
  30. 30.  Dans le fichier /etc/bind/named.conf.options, nous allons remplacer la ligne directory "var/cache/bind "; par directory "/etc/bind";. Ceci pour indiquer à bind l’emplacement des fichiers de zone.Après ces trois étapes, nous avons un DNS fonctionnel que nous pourrons tester de cettemanière :# nslookup //commande nslookup> set type=any //requête du client> minfo.sn //requête du clientServer: 192.168.10.1 //début de la réponse du serveurAddress: 192.168.10.1#53minfo.sn origin = mail.minfo.sn mail addr = root.mail.minfo.sn serial = 2 refresh = 604800 retry = 86400 expire = 2419200 minimum = 604800minfo.sn nameserver = mail.minfo.sn //fin réponse serveur> mail.minfo.snServer: 192.168.10.1Address: 192.168.10.1#53Name: mail.minfo.snAddress: 192.168.10.1> 192.168.10.1Server: 192.168.10.1Address: 192.168.10.1#531.10.168.192.in-addr.arpa name = mail.minfo.sn>Ce test montre que notre serveur de noms de domaines est bien configuré et qu’il peutrésoudre une adresse ip à partir d’un nom et vice-versa.Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 30
  31. 31. 2.3.1.3 Installation et configuration d’un service web (Apache)Nous avons vu que pour consulter ses messages et pour en envoyer, l’utilisateur avait lechoix entre utiliser un client lourd de messagerie tel que Mozilla Thunderbird, Outlook parmitant d’autres, ou utiliser un webmail, c’est-à-dire un client léger. Ce webmail n’est riend’autre qu’une sorte de site web. De ce fait, il n’est accessible que via un navigateur web telque Firefox de Mozilla, Internet Explorer, etc.Ainsi, lorsque l’utilisateur, via un quelconque poste client, accède à son compte demessagerie grâce à un navigateur, cela suppose qu’il y’a en plus du service de messagerie, unservice web disponible sur le serveur mail. Dès lors, pour que les employés d’une structuretelle qu’une PME/PMI puissent de n’importe quelle manière accéder à leurs messagesélectroniques, il nous faudra installer et configurer un service web.Pour installer un serveur web (serveur HTTP), nous allons utiliser une application bienconnue des administrateurs réseaux : Apache.Lorsque le choix du système d’exploitation devant héberger le serveur est porté sur laversion 10.04 d’Ubuntu, l’installation d’Apache peut se faire directement lors de l’installationdu système en cochant LAMP (Voir chapitre sur Ubuntu Server 10.04 LTS). Si par contre, teln’est pas le cas, il nous suffira juste de lancer la commande suivante pour procéder àl’installation d’un serveur web :# apt-get install apache2 mysql-server php5 php5-mysqlD’autres configurations d’Apache concernant son fonctionnement avec les autres outils dusystème de messagerie seront faites par la suite au niveau des sections concernées.Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 31
  32. 32. 2.3.2 Mise en place du service de messagerie 2.3.2.1 Mise en place du MTA 2.3.2.1.1 Etude comparative de différents serveurs MTAPour la mise en place de notre système de messagerie nous disposons de plusieurs serveurs,tous ayant une certaine particularité. Le choix du type serveur de mail à utiliser est encoreun sujet houleux. Un mauvais choix peut signifier une perte de temps et d’argent, diminuerla sûreté et accroitre les risques du réseau. Un bon choix peut, dépendre de l’architecturede votre système de messagerie, demeurer substantiellement inchangé pour des années. Lechoix d’un MTA nécessite d’abord la comparaison des caractéristiques de chacun. De ce faiton peut analyser certaines caractéristiques comme :  Une bonne sécurité  Habilité à manipuler pour une grande quantité de messages  Interaction avec les bases de données sur plusieurs formats.  Pouvoir de dialoguer avec beaucoup de variantes SMTP utilisées  Qualité de la tierce documentation utilisable.Parmi les plus utilisés nous avons :Sendmail :Sendmail est le doyen de tous les serveurs de messagerie. Son code est ouvert et fut à uneépoque la plus répandu sur les réseaux grâce à ses bonnes performances et une grandepublicité par les universités. Sendmail est un programme très flexible supportant un largeéventail de moyens de transfert et de livraison de courriers électroniques, incluant lepopulaire SMTP. La première version de Sendmail a été écrite au début des années 1980 parEric Allman (Université de Berkeley), qui avait également écrit Deliver Mail.Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 32
  33. 33. Sendmail est très critiqué pour sa lenteur, sa complexité et sa maintenance difficile encomparaison avec dautres Mail Transfert Agent (MTA) tels que Qmail et Postfix Toutefois, ilreste le MTA le plus populaire sur Internet, ce qui est certainement dû à sa mise en œuvrepar défaut dans les différentes variantes dUnix – à titre dexemple, Sendmail a été présentdans Mac OS X avec les versions 10.0 à 10.3.Qmail :Qmail est un serveur de messagerie électronique pour Linux et autres dérivés dUnix, créépar le cryptologue Daniel J. Bernstein. A la différence de Sendmail, Qmail n’est pasmonolithique. Le système Qmail se compose de plusieurs programmes tournant sous desUID/GID différents et non nuls rendant difficile toute tentative d’intrusion. Qmail présenteun haut niveau de sécurité grâce à sa structure « éclatée » et de très bonnes performancesgrâce à une gestion de queue très rapide. Sa configuration très simple via un ensemble defichiers de contrôle et de variables denvironnement, domaines virtuels. Qmail de par sataille et son architecture, pas de vulnérabilité depuis quelques années, et une architecturevraiment sécurisée pour éviter même en cas de problèmes, la perte de messages ou encoremême corruption de messages en cas crash système.Postfix :Postfix est un serveur de messagerie électronique développé par le célèbre spécialiste ensécurité Wietse Venema et a tout axe sur l’écriture d’un remplaçant et sécurisé de Sendmail.Il a été conçu comme une alternative plus rapide, et plus facile à administrer et plussécurisée. Il est le serveur de courriel par défaut dans plusieurs systèmes de type UNIX,comme Mac OS X, NetBSD, diverses distributions GNU/Linux. Postfix permet de gérerpresque tous les cas dune utilisation professionnelle. Utilisé avec une liste publique anti-spam, il permet déviter bon nombre de spams sans même devoir scanner les contenus demessage. Objectif réussi puisque Postfix est devenu l’une des références grâce à la qualité duprogramme et son architecture modulaire. Enfin il dispose de nombreuses fonctionnalités etégalement d’une syntaxe « humaine ». De plus il est un peu gourmand en ressourcesystème.Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 33
  34. 34. Exim :Exim est un serveur de messagerie électronique utilisé sur de nombreux systèmes de typeUNIX. La première version a été écrite en 1995 par Philip Hazel pour le service informatiquede lUniversité de Cambridge: le nom était alors l’acronyme de EXperimental Internet Mailer(gestionnaire de mail internet expérimental). Basé au départ sur Sendmail, il a largementévolué pour devenir lun des MTA les plus flexibles et robustes.Exim4 a été développé autour d’une architecture monolithique (c’est-à-dire qu’il n’y a qu’unseul gros programme qui tourne plutôt que plusieurs petits programmes avec des privilègesdifférents), son auteur Philip Hazel avait pourtant essayé de le rendre modulaire de la mêmefaçon que Postfix mais cette séparation entrainait une forte duplication de codes pour gérertoutes les fonctionnalités disponibles. Il faut tout de même relativiser : l’architecturemonolithique du programme ne facilite pas une approche sécuritaire mais le logiciel estl’œuvre d’une seule personne en grande partie, le code est donc cohérent et tous les pointscritiques sont connus de son auteur. Même si la sécurité n’est pas aussi forte que sousPostfix, son auteur s’est attaché à ne pas reproduire le passé de Sendmail. Dernier point etnon des moindres, Exim est le seul MTA à être sous licence GPL, contrairement à Qmail. 2.3.2.1.2 Installation et configuration de PostfixPostfix est l’agent de transfert courrier (MTA) par défaut d’Ubuntu. Il est dans les dépôtsmain, donc il reçoit les mises à jour de sécurité. Cette partie décrit son installation et saconfiguration pour en faire un serveur SMTP.L’installation du serveur SMTP proprement dite est très simple. Il suffit d’installer le paquetPostfix, si ce n’est déjà fait lors de l’installation du système d’exploitation, avec lacommande :# apt-get install postfixCette ligne permettra d’installer postfix comme serveur mail, à nous de le configurer enfaisant :Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 34
  35. 35. # dpkg-reconfigure postfixViendra un écran (capture ci-contre) où on aura à fournir le type de configuration. Dans cecas, on choisira l’option "Site Internet" : Figure 6 : Première étape de la configuration de PostfixViendra après le choix du nom du serveur. Nous mettrons simplement le nom de domaineprincipal de notre serveur à savoir minfo.sn. Ensuite, pour que des courriels à destination de« root » et de « postmaster » soient redirigés vers le compte utilisateur de l’administrateursystème, nous mettrons /etc/aliases pour le choix suivant, puis on indiquera la liste desdomaines, séparés par des virgules, que notre serveur reconnaitra comme lui appartenant.Dans notre cas on pourra choisir :minfo.sn, mail.minfo.sn, localhostNous allons après cette étape indiquer les réseaux pour lesquels notre serveur pourrarelayer le courriel. On aura comme information dans ce champ les adresses 127.0.0.0/8et 192.168.10.0/24 séparées par un espace. Postfix va par la suite nous demander sinous voulons choisir Procmail pour la distribution locale. Nous choisissons de refuser (No)car nous mettrons par la suite notre propre agent de distribution à savoir Dovecot (Voirchapitres sur Dovecot).Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 35
  36. 36. Les autres options qui suivent peuvent être laissées par défaut. Elles indiquentsuccessivement la taille maximale des boites aux lettres à choisir (celle-ci sera illimitée c’est-à-dire laissée à 0), le caractère d’extension des adresses locales (+) et les versions d’ip àutiliser (nous choisirons l’option tous).Après toutes ces modifications nous avons un serveur mail bien configuré avec Postfix.Voici une liste de tous les choix faits lors de l’installation du serveur mail :Site internetminfo.sn/etc/aliasesminfo.sn, mail.minfo.sn, localhost.minfo.sn, localhost127.0.0.0/8 192.168.10.0/24No0+tous 2.3.2.2 Mise en place du MUA 2.3.2.2.1 Etude comparative de différents MUALes courriels ne sont autres que des fichiers envoyés de serveurs à serveurs, un peu commesi une lettre ou un colis était envoyé du bureau de Poste de chez vous au bureau de Poste dudestinataire. Par ailleurs, il existe ce que l’on appelle des clients mail, qui permettent detraiter ce courrier. Ces clients peuvent être en ligne, c’est à dire que vous y accédez via unsite web (Hotmail et Gmail sont typiquement des clients mail en ligne) ou client léger, oubien, il existe également des applications que vous installez sur votre ordinateur, et qui vontrégulièrement synchroniser votre espace de stockage de mails sur votre ordinateur avec lecontenu du serveur de mail que vous utilisez. Là, on sera davantage dans des logiciels typeMozilla Thunderbird ou Microsoft Outlook.Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 36
  37. 37. Client légerUn client léger est une application cliente entièrement gérée par un serveur, de la gestion austockage des données. Les utilisateurs de l’application auront accès aux données par unportail sécurisé depuis leur navigateur (Internet Explorer, Firefox…).Pour les systèmes en client léger, l’installation est beaucoup plus simple. On a tendance àpenser que les applications Web sont moins sécurisées. Pourtant elles permettent deréduire les risques à un seul serveur. Bien entendu, la sécurisation de celui-ci estprimordiale, surtout lors d’un partage de l’application sur Internet.On peut distinguer quelques types de client léger : SquirrelMail :SquirrelMail est une application qui permet de consulter son courrier électronique, stockésur un serveur, grâce à un simple navigateur. SquirrelMail est écrit en PHP. Les fonctions debase peuvent être étendues par des plugins. RoundCube Webmail:RoundCube est le projet le plus récent et dont l’objectif est de réaliser un Webmail utilisantles technologies XHTML et CSS 2 pour offrir à l’utilisateur une ergonomie la plus prochepossible de celle d’un logiciel de messagerie classique installé sur son PC.L’installation est simple et nécessite une base de données MySQL ou PostgreSQL. Laconnexion à un annuaire LDAP est également possible. A l’usage RoundCube se révèle trèsagréable, simple et complet. ZimbraZimbra est un logiciel serveur collaboratif qui permet à ses utilisateurs de stocker, organiseret partager rendez-vous, contacts, courriels, liens, documents et plus. Il logiciel développésur un mode "Web service" : Son interface entièrement en AJAX est chargée à la premièreconnexion, puis les interactions et ajouts/modifications dinformations sont envoyés auPrésenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 37
  38. 38. serveur par le protocole SOAP. Zimbra propose aussi un logiciel client utilisable en modedéconnecté : le Yahoo! Zimbra Desktop.Client lourdLe terme « client lourd », par opposition au client léger, désigne une application clientegraphique exécutée sur le système dexploitation de lutilisateur. Un client lourd possèdegénéralement des capacités de traitement évoluées et peut posséder une interfacegraphique sophistiquée. Néanmoins, ceci demande un effort de développement et tend àmêler la logique de présentation (linterface graphique) avec la logique applicative (lestraitements).La mise en place d’un système de type client lourd nécessitera une installation del’application sur chaque poste. Il faudra donc prévoir des ressources à l’arrivée de chaquenouveau collaborateur pour l’installation du logiciel sur le nouveau poste de travail.Les applications du type client lourd sont généralement plus sécurisées si elles neconcernent que quelques utilisateurs. Il faut cependant que tous les postes qui utilisentl’application soient sécurisés car une partie des données est stockée sur les postes desdifférents collaborateurs. Cela peut donc multiplier les risques. 2.3.2.2.2 Installation et configuration de RoundCube WebmailPour permettre l’accès aux boites IMAP depuis n’ importe où, l’installation d’un Webmails’impose. De nombreux webmails Open Source sont disponibles mais celui qui sort du lot ence moment, c’est RoundCube. Il est encore très jeune mais offre de gros atouts cotéergonomie, notamment grâce à l’utilisation d’AJAX. L’interface est très soignée, claire etsimple. Techniquement, ça reste très classique, c’est du PHP et ça s’installe très facilement.Parmi ses fonctionnalités, on peut noter l’utilisation possible (grâce à AJAX) du glisser-déposer, le multilinguisme, un carnet d’adresse, le blocage automatique des imagesdistantes, la recherche automatique en cours de frappe dans le carnet d’adresse lors del’ajout de destinataire, l’utilisation de comptes multiples pour l’envoi de messages, lesupport MIME, la création de dossier ainsi que la sélection des dossiers affichés.Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 38
  39. 39. Installation de RoundCube :Pour que RoundCube fonctionne correctement, il faut bien entendu que la machine hébergeun serveur Apache et un serveur MySQL fonctionnels. La configuration du serveur web estdécrite ci-dessous.Tout d’abord télécharger RoundCube (version complète) sur le site www.roundcube.net etl’extraire dans un répertoire.# tar xzf roundcubemail-0.3.1.tar.gzIl est plus pratique de le renommer après l’avoir copié dans la racine web:# cp roundcubemail-0.3.1 /var/www# mv /var/www/roundcubemail-0.3.1 /var/www/webmailEnsuite, il faut donner les droits au serveur d’écrire dans les répertoires temp/ et logs/ :# chmod -R 777 /var/webmail/temp/ var/webmail/logsPréparation de la base de données de RoundCubeIl faut créer une base de données qui sera utilisée par RoundCube, avec son propreutilisateur. Pour cela, démarrons MySQL en tant qu’administrateur (le login et le mot depasse ont été choisis lors de la configuration de MySQL) :# mysql –u root –p<mon_mot_de_passe>Ensuite, nous créerons une base de données en faisant:mysql> CREATE DATABASE webmail;Query OK, 1 row affected (0.00 sec)On accorde à l’utilisateur user toutes les privilèges sur toutes les tables de la base dedonnées webmail:Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 39
  40. 40. mysql> GRANT ALL PRIVILEGES ON webmail.* TO user@localhost IDENTIFIED BYmon_mot_de_passe;Query OK, 0 rows affected (0.01 sec)Maintenant notre base de données est prête à accueillir RoundCube.Configuration d’Apache pour RoundCube:La base de données configurée, il nous faut créer un VirtualHost qui décrit à Apache le sitequ’il doit héberger, cest-à-dire le nom du site sur lequel il répond en http, et les répertoiresqui doivent être accessibles, etc.Notre VirtualHost permettra :  d’afficher le site contenu dans /var/www/webmail lorsqu’une requête arrive sur le port 443 (http), c’est-à-dire quand je tape http://mail.minfo.sn dans un navigateur ;  d’interdire l’accès aux répertoires config, temp et logs.NameVirtualHost *:443<VirtualHost *:80> ServerName mail.minfo.sn</VirtualHost><VirtualHost *:443> DocumentRoot /var/www/webmail ServerName mail.minfo.sn <Directory /var/www/webmail/> Options FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> <Directory /var/www/webmail/config>Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 40
  41. 41. Options -FollowSymLinks AllowOverride None </Directory> <Directory /var/www/webmail/temp> Options -FollowSymLinks AllowOverride None </Directory> <Directory /var/www/webmail/logs> Options -FollowSymLinks AllowOverride None Order allow,deny Deny from all </Directory> ErrorLog /var/log/apache2/webmail_error.log CustomLog /var/log/apache2/webmail_access.log combined</VirtualHost>Ce fichier est à écrire dans /etc/apache2/sites-available/ dans un fichier nommécomme notre site par exemple, webmail.Il faut ensuite l’activer :# a2ensite webmailEt recharger Apache :# /etc/init.d/apache2 reloadConfiguration de RoundCube :Il ne reste plus qu’à configurer RoundCube. Une interface assez explicite a été développéedans RoundCube pour cela. Grâce à un navigateur nous allons rentrer l’URL suivanthttp://mail.minfo.sn/installer/ après avoir fait de telle sorte que l’on puisse seconnecter sur le serveur. Les différentes étapes de la configuration sont décrites ici :Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 41
  42. 42.  L’étape 1 (Check environment) :Celui-ci devrait bien se passer à part quelques modules optionnels dont on n’aura pas besoinici. Nous avons la capture ci-contre : Figure 7 : Interface de configuration de RoundCube (RoundCube Installer). Pour l’étape 2 (create config) :  Renseignons le champ product_name correspondant au titre des pages souhaité ;Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 42
  43. 43.  Activons ip_check;  Désactivons enable_spellcheck (sinon tous nos mails seront envoyés à Google) ;  Renseigner les données pour l’accès à la base de données (que nous avons créée tout à l’heure) ;  Dans la partie IMAP, renseigner uniquement le champ default_host par la valeur localhost;  Laissez par défaut le reste de la partie IMAP et la partie SMTP (vu que les mails sont sur la même machine).Lors de la validation, deux fichiers seront générés. Il faut les télécharger et les placer dans lerépertoire /var/www/webmail/config/. Il s’agit des principaux fichiers deconfiguration de RoundCube db.inc.php et main.inc.php. L’étape 3 (Test config)Il permet de tester que tout est OK. Il nous faudra cliquer sur Initialise Database.Une fois ces étapes effectuées, rendons-nous sur l’adresse du webmail pour vérifier que çafonctionne. Nous pouvons dès lors nous connecter en tant qu’utilisateur du système demessagerie. Si tout est ok, supprimez ou renommer le répertoire /var/www/installer/pour qu’il ne soit plus accessible via l’extérieur:Voilà deux captures montrant respectivement l’interface de connexion et la boîte aux lettresd’un utilisateur :Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 43
  44. 44. Figure 8 : Interface de connexion de RoundCube Webmail Figure 9 : Boite aux lettres d’un utilisateurPrésenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 44
  45. 45. 2.3.2.3 Mise en place de Dovecot comme MDA et serveur IMAPComme vu un peu plus haut dans ce document, la mise en place d’un MDA est plus quenécessaire dans un système de messagerie. En effet, c’est un outil situé sur le serveur demessagerie et qui a en charge la livraison des messages dans la bonne boîte aux lettres. Enplus du MDA, un serveur IMAP/POP3, aussi appelé serveur de protocoles entrants est àmettre en place. Son rôle à lui sera d’aller récupérer le message situé dans la boite auxlettres suite à la quête de celui-ci. Dovecot est un outil qui de par son efficacité pourra jouerces deux rôles. Ainsi, c’est lui que nous avons choisi d’utiliser pour ces différentes tâches.Dès lors, nous allons comparer différents MDA existants avant de passer à la configurationde notre outil. 2.3.2.3.1 Étude comparative de différents MDAIl existe différents MDA dans le monde des serveurs. Parmi ceux-là, on peut citer Dovecot,Procmail, Maildrop, Deliver, Mailfilter et Cyrus. Chacun d’entre eux présente des avantageset des inconvénients. Des MDA sont aussi intégrés aux grands logiciels de messagerieintégrés (Exim par exemple). Ils assurent la gestion de boite à lettres, le filtrage desmessages , l’envoi de message de réponse automatique. 2.3.2.3.2 Installation et configuration de DovecotNous allons dans cette partie procéder à l’installation et à la configuration de Dovecot. Pourinstaller Dovecot, nous avons à lancer la commande suivante :# aptitude install dovecot-imapd dovecot-pop3dAinsi tous les modules nécessaires au bon fonctionnement de Dovecot seront installés. Ilsuffira par la suite simplement redémarrer le service en faisant :# etc/init.d/dovecot restartPrésenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 45
  46. 46. Grâce à ces quelques commandes, nous venons d’installer les serveurs IMAP et POP3 (carDovecot les intègre tous les deux).Nous pouvons passer à son test en faisant un telnet sur le port 143 (port correspondant àune communication utilisant le protocole IMAP) et un autre sur le port 110 (portcorrespondant à une communication utilisant le protocole POP3). Nous les avons ci-contre :# telnet mail.minfo.sn 143Trying 192.168.10.1 …Connected to mail.minfo.sn.Escape character is ‘^]‘.* OK Dovecot Ready.# telnet mail.minfo.sn 110Trying 192.168.10.1 …Connected to mail.minfo.sn.Escape character is ‘^]‘.+ OK Dovecot Ready.Il est aussi possible de mettre imap à la place de 143 ou pop3 à la place de 110. Ceci montreque notre serveur imap et pop3 est maintenant fonctionnel.Toute la configuration de notre outil se fait cependant dans un fichier d’environ 1280 lignes :/etc/dovecot/dovecot.conf. Juste les paramètres par défaut suffiront à fairefonctionner Dovecot. Sauf que pour des besoins de sécurité et de filtrage, il nous faudraparcourir ce fichier et l’adapter à nos besoins. Cette configuration sera expliquée dans lesdifférentes sections concernées.Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 46
  47. 47. Partie 3: Sécuriser le système de messagerieLa sécurité du serveur de mails se situe à plusieurs niveaux. Elle réside sur la sécurisation descommunications, l’authentification des utilisateurs et l’intégrité des données.Les communications sont généralement sécurisées en utilisant un chiffrage avec OpenSSL,l’authentification est assurée à l’aide de SASL et les données sont analysées par un antiviruset un anti-spam.Ainsi, pour apporter de la sécurité en matière de courrier électronique, on peut agir sur deuxéléments : les MTA et les MUA ou autrement dit coté serveur et coté client. Il est d’abordprimordial de ne plus transmettre de mots de passe en clair ensuite on pourra se concentrersur la validité des données.3.1 Authentification SMTP avec SASL 3.1.1 Principes et objectifs de SASLSASL pour Simple Authentication and Security Layer est une méthode qui offre un supportd’authentification à des protocoles orientés connexion. SASL inclut des commandes pouridentifier et authentifier un utilisateur sur un serveur et pour éventuellement négocier laprotection des interactions du protocole. Si son utilisation aboutit, une couche de sécuritéest insérée entre le protocole et la connexion.Si l’on utilise Dovecot comme serveur IMAP, il est maintenant possible d’utiliser son démond’authentification pour réaliser l’authentification SMTP via SASL. Nous allons passer à laconfiguration des serveurs SMTP et IMAP/POP3 dans la section qui suit.Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 47
  48. 48. 3.1.2 Configurer Postfix et Dovecot pour SASLLa première étape dans la configuration de SASL est l’édition des fichiers/etc/postfix/main.cf et de /etc/postfix/master.cf.A travers ces fichiers nous indiquerons à Postfix qu’il faut utiliser l’authentification SMTPpour tous les utilisateurs qui désirent envoyer un mail, sauf s’ils font partie de mynetworks.Avec la configuration suivante, on interdit également les connexions anonymes :# Active l’authentification SASL dans le serveur SMTP de Postfixsmtpd_sasl_auth_enable = yes#Type de plug-in SASL que le serveur SMTP doit utiliser pourl’authentificationsmtpd_sasl_type = dovecotsmtpd_sasl_path = private/auth# Active l’interopérabilité avec des clients de Microsoft qui implémententAUTH de manière obsolètebroken_sasl_auth_clients = yes# Interdit les méthodes qui autorisent lauthentification anonymesmtpd_sasl_security_options = noanonymous# Par défaut cette valeur est videsmtpd_sasl_local_domain =Nous allons maintenant modifier le fichier /etc/postfix/master.cf en éditant l’optionsmtpd_sasl_auth_enable pour activer l’authentification avec SASL pour Postfix :smtps inet n - - - - smtpd-o smtpd_tls_wrappermode =yes-o smtpd_sasl_auth_enable =yesAprès cela, il nous reste à configurer Dovecot pour qu’il réponde aux requêtesd’authentification de Postfix. Ceci se fait dans le ficher /etc/dovecot/dovecot.conf, ilsuffit de rajouter les lignes suivantes dans la section socket listen :Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 48
  49. 49. auth default { [...] socket listen { [...] # Client for postfix SASL client { path = /var/spool/postfix/private/auth mode = 0660 user = postfix group = postfix } } [...]}Bien entendu, pour que les modifications soient prises en compte, il faut redémarrer lesservices avec les commandes suivantes :# /etc/init.d/dovecot restart# /etc/init.d/postfix restartIl est maintenant possible de tester l’authentification en faisant une connexion SMTP entelnet. Il faut préalablement préparer la chaîne d’authentification encodé en base64. Pourcela nous utiliserons mimencode qui est une part des programmes metamail. Nous auronsles commandes suivantes:# aptitude install metamail# printf "0user0minfo" | mimencodeAHVzZXIAbWluZm8=La syntaxe est printf "0<nom_utilisateur>0<mot_de_passe>" et c’est cettechaîne générée qui sera utilisée avec la commande SMTP AUTH PLAIN pour envoyer lePrésenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 49
  50. 50. couple login/password au serveur. On peut maintenant commencer la session telnet commeindiquée ci-dessous:(C) # telnet mail.minfo.sn 25(S) 220 mail.minfo.sn ESMTP Postfix (Ubuntu)(C) EHLO mail.minfo.sn(S) 250- mail.minfo.org(S) 250- PIPELINING(S) 250- SIZE 10240000(S) 250- VRFY(S) 250- ETRN(S) 250- STARTTLS(S) 250- AUTH PLAIN(S) 250- AUTH=PLAIN(S) 250- ENHANCEDSTATUSCODES(S) 250 -8 BITMIME(S) 250 DSN(C) AUTH PLAIN AHVzZXIAbWluZm8=(S) 235 2.0.0 Authentication successful(C) quit(S) 221 2.0.0 Bye(C) correspond à une requête du client et (S) à une réponse du serveur.La session ci-dessus présente une authentification réussie sur le serveur mail.minfo.snavec le couple login/mot_de_passe <user/minfo> pour l’authentification. On remarquedans cette session que le mot de passe est encodé en base64, il n’est donc pas lisibledirectement, il est par contre déchiffrable (avec mimencode -u). Cette méthode n’offredonc aucune sécurité et il est ainsi de voir le mot de passe d’une personne en analysant lestrames réseaux. La solution la plus répandue pour contourner ce problème est de chiffrertoutes les communications avec SSL, c’est l’objet du paragraphe suivant.Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 50
  51. 51. 3.2 Sécurisation des communications 3.2.1 Protection contre l’Open-Relay et le spamOn parle d’Open-Relay lorsqu’on est en face d’un serveur SMTP qui autorise tous lesmessages électroniques entrants à transiter par lui pour atteindre d’autres domaines. Ils’agit d’un mécanisme qui consiste à accepter de transmettre un message à un destinatairequelconque. C’est le comportement par défaut de plusieurs serveurs SMTP. Cependantplusieurs spammeurs ont par la suite commencé à abuser de cette fonctionnalité pourcauser des dégâts ; ce qui a poussé les administrateurs réseaux et systèmes à contrôler lesflux entrants et à empêcher le relais pour leurs serveurs afin de ne pas se retrouver« blacklisté ».Ainsi pour augmenter la sécurité de notre serveur de mail, il est important de contrôler leséchanges avec les serveurs SMTP ouverts (Open Relay). Ces serveurs sont utilisés pourenvoyer des messages électroniques non sollicités, connus sous le nom de spam. Pour cela, ilexiste des listes d’adresses IP correspondant aux machines qui fonctionnent comme desserveurs SMTP ouverts. On peut donc demander à Postfix de consulter ces listes avantd’accepter un message entrant. Ceci est réalisé grâce à la directivesmtpd_client_restrictions dans le fichier /etc/postfix/main.cf. Enfin pouréviter que notre serveur devienne lui-même ouvert, il faut limiter les accès de façon trèsstricte. Par exemple, on peut rejeter le mail si les en-têtes sont incomplètes, si le messageest mal formé, etc. Par contre, mes messages provenant des réseaux connus(my_networks) ou des personnes authentifiées (sasl_authenticated) seront toujoursacceptés.Nous devons modifier notre fichier /etc/main.cf de façon à avoir les lignes suivantes :# Attend la commande RCPT TO avant d’évaluer les restrictionssmtpd_delay_reject = yes# Impose au client SMTP de démarrer la session SMTP par une commande HELO# ou EHLOsmtpd_helo_required = yesPrésenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 51
  52. 52. # Requiert que les adresses reçues avec les commandes SMTP "MAIL FROM" et# "RCPT TO" soient# encadrées par <>. Ceci stoppe le courrier des logiciels mal écrits.strict_rfc821_envelopes = yes# Restrictions daccès du serveur pour les requêtes de connexion au# service SMTPsmtpd_client_restrictions = permit_mynetworks , permit_sasl_authenticated , reject_rbl_client bl.spamcop.net , reject_rbl_client dnsbl.njabl.org , reject_rbl_client cbl.abuseat.org , reject_rbl_client sbl -xbl.spamhaus.org , reject_rbl_client list.dsbl.org , permit# Restrictions que le serveur SMTP de Postfix applique dans le contexte de# la commande HELO.smtpd_helo_restrictions = permit_mynetworks , permit_sasl_authenticated , reject_non_fqdn_hostname, reject_invalid_hostname, permit# Restrictions que le serveur SMTP de Postfix applique dans le contexte# des commandes MAIL FROMsmtpd_sender_restrictions = permit_mynetworks , permit_sasl_authenticated , reject_non_fqdn_sender , reject_unknown_sender_domain , permit# Restrictions que le serveur SMTP de Postfix applique dans le contexte# dune commande RCPT TOsmtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated,Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 52
  53. 53. reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination, permitNotons que ce type de règles permet de diminuer sensiblement la charge de la machinedans le sens ou le mail est rejeté avant d’être analysé par les outils de filtrage de contenu(Amavis, ...) qui sont souvent très consommateurs de ressources. On pourra égalementobserver un léger gain de bande passante puisque seuls les en-têtes des messagesindésirables seront échangés sur le réseau, en aucun cas les corps de message ou les piècesjointes.La configuration ci-dessus autorise toujours le relais pour les personnes authentifiées grâce àla directive permit_sasl_authenticated. 3.2.2 Les certificats SSLComme nous l’avons vu plus haut, les services de messagerie (SMTP et IMAP) demandentune authentification de la part des utilisateurs. Dans ce cas, ce dernier va fournir un couplelogin/mot de passe qui devra transiter sur le réseau entre le client et le serveur. Pour queces identifiants ne circulent pas en clair, la plupart des services offrent la possibilité dechiffrer les échanges à l’aide d’OpenSSL.Pour cela, chaque service doit disposer d’un certificat SSL qui permettra de s’assurer de sonauthenticité et de chiffrer/déchiffrer les communications.Le fichier de configuration ci-dessous permettra de générer le certificat du serveur SMTPS.On peut par exemple l’enregistrer dans /etc/ssl/smtpd.cnf.[ req ]default_bits = 2048default_keyfile = privkey.pemdistinguished_name = req_distinguished_nameprompt = nostring_mask = nombstrPrésenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 53
  54. 54. x509_extensions = server_cert[ req_distinguished_name ]countryName = SNstateOrProvinceName = SenegalorganizationName = MINFOorganizationalUnitName = SMTP ServercommonName = mail.minfo.snemailAddress = root@minfo.sn[ server_cert ]basicConstraints = critical, CA:FALSEsubjectKeyIdentifier = hashkeyUsage = digitalSignature, keyEnciphermentextendedKeyUsage = serverAuth, clientAuthnsCertType = servernsComment = "SMTP Server"Nous allons ensuite générer le certificat et restreindre les privilèges sur la clé privée. Il noussuffira de lancer les commandes suivantes :# openssl req -x509 -new -config /etc/ssl/smtpd.cnf -out /etc/ssl/certs/smtpd.pem -keyout /etc/ssl/private/smtpd.key -days 730 -nodes -batch# chmod 600 /etc/ssl/private/smtpd.keyLors de la configuration du certificat, le champ "commonName" est très important. Il doittoujours correspondre au FQDN (Fully Qualified Domain Name ; mail.minfo.sn dans notrecas) qui sera utilisé pour accéder au service. Dans le cas contraire, la plupart des clients vontgénérer une alerte à chaque négociation TLS avec le serveur.Nous avons terminé la génération du certificat du serveur SMTP, nous devons faire la mêmechose pour le serveur IMAP. Cependant, la génération du certificat pour ce dernier est tout àfait similaire, il suffit de modifier légèrement le fichier de configuration en remplaçantPrésenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 54
  55. 55. smtp" par "imap" et de le renommer par /etc/ssl/imapd.cnf. On appliquera cesmêmes modifications sur la commande de génération vue précédemment. 3.2.3 Chiffrement des communications IMAP et SMTP avec OpenSSLDovecot offre la possibilité de sécuriser les communications IMAP et SMTP avec OpenSSL :IMAPS et SMTPS. Il est souvent préférable de n’utiliser que cette déclinaison du protocoleafin qu’aucun mot de passe ne passe en clair sur le réseau.Pour activer le support de l’IMAPS dans Dovecot, il faut dans un premier temps disposerd’un certificat pour ce service, ce qui a été fait dans le paragraphe précédent. Il suffit ensuited’éditer le fichier /etc/dovecot/dovecot.conf pour modifier les paramètres suivants :protocols = imapsssl_cert_file = /etc/ssl/certs/imapd.pemssl_key_file = /etc/ssl/private/imapd.keyNotons que le paramètre protocols ne devra contenir que la valeur imaps, les autresprotocoles de relève de courrier étant bannis. Avec cette configuration, les clients peuventmaintenant se connecter au serveur IMAP uniquement sur le port 993 et toutes lescommunications seront chiffrées.Il reste simplement à redémarrer le serveur avant de faire un premier test en ligne decommande:# /etc/init.d/dovecot restart# openssl s_client -connect mail.minfo.sn:993---* OK Dovecot ready.. login user minfo. OK Logged in.. logout* BYE Logging out. Logout completed.Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 55
  56. 56. Pour le cas de SMTPS, la configuration d’OpenSSL se fera dans ses principaux fichiers deconfiguration. Il nous suffira d’abord de modifier les lignes suivantes dans/etc/postfix/main.cf:smtpd_tls_security_level = maysmtpd_tls_loglevel = 1smtpd_tls_cert_file = /etc/ssl/certs/smtpd.pemsmtpd_tls_key_file = /etc/ssl/private/smtpd.keypuis enlever le commentaire affecté à ces trois lignes dans le fichier /etc/postfix/master.cfsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode = yes -o smtpd_sasl_auth_enable = yesNous pourrons redémarrer avec un :# etc/init.d/postfix restartavant de vérifier le fonctionnement de SMTPS comme le montre le test ci-contre :# openssl s_client -connect mail.minfo.sn:465[...]---220 mail.minfo.sn ESMTP Postfix (Ubuntu)EHLO minfo.sn250 mail.minfo.snMAIL FROM: <user@minfo.sn>250 2.1.0 OkRCPT TO: <autre_user@minfo.sn>250 2.1.5 OkDATA354 End data with <CR ><LF >.<CR ><LF >Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 56
  57. 57. Hello !!.250 2.0.0 Ok: queued as 8EF8730102C3quit221 2.0.0 Bye 3.2.4 Configuration d’un firewallLe but d’un firewall est d’empêcher que des programmes puissent communiquer sur leréseau sans votre accord.Les iptables représentent le plus célèbre firewall utilisé sous Linux. Il permet d’établir uncertain nombre de règles pour dire par quels ports on peut se connecter à votre ordinateur,mais aussi à quels ports vous avez le droit de vous connecter. On peut aussi filtrer par IPmais nous ne détaillerons pas cela ici.Par exemple, si nous voulons empêcher toute connexion FTP, nous pouvons souhaiterbloquer le port 21 (utilisé par FTP). Nous utiliserons les iptables pour mettre en place notrefirewall.En général, la technique d’un pare feu ne consiste pas à bloquer certains ports, mais plutôt àbloquer par défaut tous les ports et à en autoriser seulement quelques-uns.Pour bloquer tous les ports :# iptables -P INPUT DROP# iptables -P OUTPUT DROP# iptables -P FORWARD DROPAinsi notre serveur refusera tout trafic entrant (INPUT DROP), sortant (OUTPUT DROP) ouqui doit juste passer par lui (FORWARD DROP).Nous allons ensuite autoriser le trafic sur l’interface de loopback locale. Ceci car le serveur aquelquefois besoin de communiquer avec lui-même. Dans la configuration retenue ici, il fautouvrir uniquement les ports suivant en entrée :Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 57
  58. 58.  25 (SMTP) : pour que le serveur puissent recevoir les mails provenant des autres serveurs de mails.  465 (SMTPS) : pour que les utilisateurs authentifiés puissent envoyer des mails en mode crypté (SSL).  993 (IMAPS) : pour que les utilisateurs authentifiés puissent recevoir des mails en mode crypté (SSL) en utilisant IMAP.  2000 (MANAGESIEVE) : pour que les utilisateurs authentifiés puissent éditer les règles de filtrage.Pour réaliser cela, nous exécuterons les commandes suivantes:# iptables -A INPUT -i lo --source 127.0.0.1 --destination 127.0.0.1-j ACCEPT# iptables -A INPUT --dport 25 -j ACCEPT# iptables -A INPUT --dport 465 -j ACCEPT# iptables -A INPUT --dport 993 -j ACCEPT# iptables -A INPUT --dport 2000 -j ACCEPTCela fait, nous allons autoriser les requêtes de type ICMP, ne serait-ce que pour pouvoirs’assurer que notre serveur est toujours en vie, grâce à cette commande :# iptables –A INPUT –p icmp –j ACCEPTAinsi, nous venons de configurer notre pare feu avant d’éviter toute intrusion indésirabledans notre système. Ceci grâce aux iptables. Il existe en guise d’information, depuis laversion 8.04 LTS d’Ubuntu, un autre outil, aux commandes assez simples, très puissant et quipermet de configurer un pare feu, constituant ainsi une alternative aux iptables : ils’agit de UFW (Uncomplicated FireWall).Cependant, avoir un firewall ne prémunit pas contre les dangers. En revanche, cela rend latâche particulièrement difficile aux pirates qui voudraient accéder à notre serveur.Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 58
  59. 59. 3.3 Gérer l’intégrité des donnéesCe volet de la sécurité des serveurs mails concerne le contenu des messages. En effetmaintenant que les communications sont chiffrées et que les utilisateurs sont authentifiésavant toute opération, il reste à s’assurer que le contenu des messages n’est pas malveillant. 3.3.1 Filtrage de contenu avec AmavisAfin de centraliser toutes les opérations de filtrage de contenu, il faut mettre en place undémon SMTP qui sera capable de recevoir un mail, d’en extraire le contenu pour analysepuis de le renvoyer sous certaines conditions : c’est le rôle d’Amavis. Ce n’est pas unantivirus mais un outil qui fonctionne conjointement avec Postfix pour fournir le contenu dumail à des scanners tels que ClamAV.L’installation d’Amavis se fait à partir de la commande suivante :# aptitude install amavisd-newPostfix prévoit une directive spécifique pour le filtrage de contenu: content_filter. Pouranalyser le contenu avant de délivrer le message, il faut donc simplement indiquer à Postfixle transport à utiliser pour faire cette analyse dans le fichier /etc/postfix/main.cf:content_filter = amavis:[127.0.0.1]:10024Ainsi, Postfix transmet le message à l’outil de transport d’Amavis sur le port 10024 de lamachine locale. Il faut maintenant configurer ce transport dans le fichier/etc/postfix/master.cf. Cette modification peut-être simplement réalisée à l’aide dela commande suivante :# postfix -add -filter amavis 10025Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 59
  60. 60. Cette commande a permis de modifier le fichier master.cf afin d’indiquer le routage desmessages. Le message sera maintenant analysé par Amavis puis, si le contenu n’est pasindésirable, il sera retransmis à Postfix sur le port 10025.Amavis est maintenant en place il suffit de redémarrer les services pour que lesmodifications soient prises en compte.# /etc/init.d/amavis restart# /etc/init.d/postfix restart 3.3.2 Intégration d’un antivirus : ClamAVIl existe de nombreux antivirus mais beaucoup sont distribués sous des licencespropriétaires. Dans le monde de l’Open, il existe ClamAV qui fait très bien son boulot. Pourqu’Amavis puisse faire du filtrage antivirus, il faut donc installer ClamAV ainsi que quelqueslibrairies de compression (pour analyser les archives). L’installation peut se faire à partir dela commande suivante:# aptitude install clamav clamav-daemon gzip bzip2 unzip unrar zoo arjClamAV est l’antivirus qui va lire le contenu des mails puis le valider et le transmettre àPostfix ou le rejeter. Pour que tout se passe correctement, il faut maintenant s’assurer quel’utilisateur "clamav" fasse partie du groupe "amavis".# adduser clamav amavisActivation du support antivirus pour Amavis dans le fichier /etc/amavis/conf.d/15-content_filter_mode :@bypass_virus_checks_maps=(%bypass_virus_checks,@bypass_virus_checks_acl,$bypass_virus_checks_re);Présenté et soutenu par : Papa Cheikh CISSE et Mactar Ndiaga SECK Page | 60

×