Mise en place d'un système de messagerie sécurisée pour une PME/PMI( Télécharger le fichier original )par Papa Cheikh Cisse - Mactar Ndiaga Seck Université Gaston Berger, Saint-Louis, Sénégal - Maitrise Informatique 2010 |
Partie 2: Mise en place du système demessagerie 2.1 Des concepts clés de la messagerie électronique 2.1.1 Les agents de la messagerie Un système de messagerie électronique est l'ensemble des éléments contribuant a 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. Ce logiciel est situé sur chaque serveur de messagerie. Il est composé d'un agent de routage et d'un agent de transmission. Il envoie le message via un protocole sortant. Notons que les protocoles sortants permettent de gérer la transmission du courrier entre les systèmes de messagerie et le plus utilisé est le Simple Mail Transfert Protocol (SMTP). Les messages sont transfé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. Lorsqu'un MTA veut transférer un message à un MTA qui est indisponible, il met ce message dans sa file d'attente : il essaiera plusieurs fois de retransmettre le message, jusqu'à ce que le MTA destinataire soit à nouveau disponible. Au-delà d'un certain nombre d'essais infructueux (ou d'une certaine durée selon la configuration), le message sera rejeté par le MTA. Il peut rejeter un message reçu pour une de ces raisons : ? serveur non concerné : les MTA sont en général configurés pour n'accepter 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. > 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 serveurs Le rejet d'un message provoque généralement l'envoi d'un email à l'expéditeur l'informant que le message a été refusé. Cependant, cela est de moins en moins systématique en raison de l'engorgement des réseaux et de la multiplication des virus et spammeurs qui indiquent une fausse adresse d'expé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 des courriels (saisie, suppression, réception). Il est également capable d'expédier le message au MTA 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 ne nécessite pas d'installer quoi que ce soit sur son ordinateur pour gérer son courrier, un simple navigateur (Mozilla, Internet Explorer) étant suffisant. Un avantage de webmail d'une telle méthode de consultation est la possibilité de le faire a partir de n'importe quelle machine connectée au réseau dans le monde, le courrier restant en permanence sur le serveur. Un désavantage du webmail est un possible ralentissement si trop d'utilisateurs travaillent 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 le de l'utilisateur. Pour cela il est souvent considéré comme le point final d'un système de messagerie. Il est possible de placer des fonctions de sécurité à ce niveau : appels antivirus et 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 souhaite régler lui-même les paramètres de fonctionnement des outils de sécurité, c'est là que l'opération doit se faire. De ce fait il est possible des filtres personnalisés pour trier les mails dans différents dossiers. Il existe plusieurs serveurs MDA, les plus courants sont Cyrus, Procmail, Maildrop, Dovecot. 2.1.2 Les protocoles Un protocole est une méthode standard qui permet la communication entre des processus (s'exécutant éventuellement sur différentes machines), c'est-à-dire un ensemble de règles et de procédures à respecter pour émettre et recevoir des données sur un réseau. Il en existe plusieurs selon ce que l'on attend de la communication. On les classe généralement en deux catégories: > Les protocoles orientés connexion: Il s'agit 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 SMTP Le Simple Mail Transfer Protocol (littéralement
«Protocole simple de transfert de
courrier»), 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 d'une utilisation assez simple. Sendmail est l'un des premiers serveurs de messagerie électronique à utiliser SMTP. Depuis, la plupart des clients de messagerie peuvent l'utiliser pour envoyer les messages. Lors d'un envoi SMTP, on commence par spécifier l'expéditeur du message puis, le ou les destinataires, puis, en général après avoir vérifié leur existence, le corps du message est transféré. Il est possible de tester un serveur SMTP en utilisant la commande telnet sur le port 25 d'un serveur distant. Procédure d'un envoi SMTP : > Lors de l'ouverture de la session SMTP, la première commande à envoyer est la commande HELO suivie d'un 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 l'adresse email de l'expéditeur. Si la commande est acceptée le serveur renvoie le message "250 OK" > La commande suivante est "RCPT TO:" suivie de l'adresse 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 l'envoi. 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 l'envoi du corps du mail peut commencer et considère l'ensemble 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 + From Exemple d'un envoi SMTP, (C) désigne le client et (S) le serveur :
Il existe ainsi une syntaxe précise pour envoyer des messages et une série de codes retour pour indiquer le statut de la demande. Pour les codes de retour, émis par le serveur, il est possible de se repérer facilement a l'aide du 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érents codes 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é des protocoles tels que POP3 et IMAP. 2.1.2.2 Protocoles POP3 et IMAP Les protocoles POP (Post Office Protocol) et IMAP (Internet Message Access Protocol) permettent d'aller récupérer du courrier sur un serveur distant. Tout comme dans le cas du protocole SMTP, le protocole POP fonctionne grâce à des commandes textuelles envoyées au serveur POP. Chacune des commandes envoyées par le client (validée par la touche « Entrée ») est composée d'un mot-clé, éventuellement accompagné d'un ou plusieurs arguments et est suivie d'une réponse du serveur POP composée d'un numéro et d'un message descriptif. Le protocole POP3 gère ainsi l'authentification à l'aide d'un nom d'utilisateur et d'un mot de passe, il n'est par contre pas sécurisé car les mots de passe, au même titre que les mails, circulent en clair sur le réseau. D'autre part le protocole POP3 bloque la boîte aux lettres lors de la consultation, ce qui signifie qu'une consultation simultanée par deux utilisateurs d'une 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 au protocole 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. Il minimise également les échanges de données sur le réseau. La plupart des clients de messagerie implémentent le protocole IMAP puisque celui-ci est largement utilisé par les différents fournisseurs d'accès à Internet. 2.1.2.3 Protocole Telnet Le protocole Telnet est un protocole standard permettant
à un ordinateur de se connecter à les règles de base pour permettre de relier un client (système composé d'un affichage et d'un clavier) à un interpréteur de commande (côté serveur). Dès que la connexion est établie, tout se passe comme si l'utilisateur Telnet se trouvait aux commandes de l'ordinateur distant; il peut alors utiliser le langage de commande disponible sur l'hôte distant et lancer l'exécution de programmes qui s'exécuteront sur cet hôte. Le protocole Telnet s'appuie sur une connexion TCP pour envoyer des données au format ASCII entre lesquelles s'intercalent des séquences de contrôle Telnet. Il fournit ainsi un système orienté communication, bidirectionnel. C'est un protocole de base, sur lequel s'appuient certains autres protocoles de la suite TCP/IP (FTP, SMTP, POP3, ...). Ainsi, Telnet permet de transférer des fichiers FTP, de lire le courrier électronique, de visionner des documents HTML, de consulter des catalogues de bibliothèques ou de banques de données qui rendent leur logiciel de consultation de catalogue accessible. Les spécifications de Telnet ne mentionnent pas d'authentification car Telnet est totalement séparé des applications qui l'utilisent (le protocole FTP par exemple définit une séquence d'authentification au-dessus de Telnet). De ce fait, Telnet est un protocole de transfert de données non sûr, c'est-à-dire que les données qu'il 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 le port 23 qui est utilisé. 2.2 Architecture et principe de fonctionnement 2.2.1 Architecture de fonctionnement Les différents éléments d'un système de messagerie sont agencés selon une architecture logique, pour en assurer le fonctionnement. L'architecture d'un système de messagerie peut être représentée de la sorte : Figure 1 : Architecture de fonctionnement des différents éléments du système de messagerie Dans 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 a 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 a un autre. C'est un programme doté d'une fonction de routage et 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 d'un 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. Le fonctionnement d'un système messagerie est décomposé en au moins deux étapes significatives et indépendantes: l'envoi et la réception. Nous allons étudier la manière dont un est délivré un message électronique provenant de user@minfo.sn vers secretaire@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 par exemple), un message électronique en passant par le serveur mail de son domaine. Pour la soumission du message, c'est le Simple Mail Transfert Protocole (SMTP) qui est utilisé. Le serveur mail est appelé Mail Transfert Agent(MTA), son rôle est de relayer les mails ou de les accepter s'ils sont destinés au domaine courant. C'est donc ce que fait le serveur SMTP du domaine minfo.sn, il doit transmettre le message de user vers secretaire@ugb.sn. Le mécanisme de fonctionnement de SMTP est qu'il commence d'abord par vérifier l'existence de l'expéditeur et du ou des destinataire (s), indiqués dans l'entê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ête DNS de type MX sur le domaine cible. En réponse, il obtient la liste des serveurs de messagerie de ugb.sn capables d'accepter les mails pour le domaine. L'échange entre ces deux serveurs (les deux MTA) se fait via le protocole SMTP. Le MTA d' ugb.sn, après réception du courriel, doit procéder à son envoi. Il sait cependant que ce domaine est local, il ne lui reste plus qu'à délivrer son message dans la boîte aux lettres de l'utilisateur correspondant a secretariat@ugb.sn. C'est alors a l'utilisateur de se connecter a sa boîte aux lettres via le protocole IMAP ou POP3 et de récupérer ses mails. Ces différents protocoles sont détaillés un peu plus en haut. 2.3 Etapes pour mettre en place un système de messagerie 2.3.1 Mise en place des services préalables 2.3.1.1 Ubuntu-Server 10.04 LTS Un serveur peut reposer sur différents types de systèmes d'exploitation. Pour en mettre un en place, il faut procéder à deux étapes: > Installation et configuration du système d'exploitation. > Installation et configuration du ou des applications adaptées aux services désirés. Dans le cas d'Ubuntu, n'importe quelle variante peut donc servir de base pour mettre en place un serveur. Cependant, ceux-ci sont très souvent configurés pour avoir une efficacité maximale. Ainsi, la variante serveur d'Ubuntu version 10.04, en plus d'être gratuite, possède un noyau optimisé et est dépourvue d'environnement graphique qui est la plupart du temps gourmand en ressources et superflu dans le cas d'un serveur amené à être manipulé assez rarement. Cette variante est donc la plus adaptée pour la mise en place de notre serveur pour une PME/PMI. L'édition serveur d'Ubuntu 10.04 propose a l'installation la plupart des services dont on pourrait avoir besoin dans un réseau d'entreprise et facilite leur configuration. Cette version intègre Postfix et Dovecot pour le service mail et vous propose sa configuration au moment de l'installation du système. Il intègre aussi Samba pour un serveur de fichier et d'impression, Apache (avec des modules PHP, Perl, Python), MySQL, PostgreSQL, pour un serveur web ainsi que Java et Ruby. Ces quelques captures montrent les principales étapes de l'installation d'Ubuntu-Server 10.04 LTS. Lorsqu'on boote avec un CD ou une image d'Ubuntu Server 10.04 LTS, nous avons le joli écran ci-dessous : Figure 2 : Menu d'installation d'Ubuntu Server 10.04 LTS Nous allons choisir, l'option Installer Ubuntu Server. Il s'en suivra le choix de nos paramètres ré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 a la configuration du réseau. Cela suppose que nous avons sur notre futur serveur tous les matériels réseaux nécessaires a sa bonne marche. Choisissons l'option Configurer vous-même le réseau. Ainsi apparait par la suite un écran qui nous invite à choisir pour notre futur serveur une adresse IP comme ceci : Figure 3 : choix d'une adresse IP fixe pour le serveur Nous mettrons ensuite le bon masque de sous-réseau. Dans notre cas, le masque choisi est 255.255.255.0. Comme passerelle, nous laissons le champ vide, et pour l'adresse du serveur de noms, nous mettons 192.168.10.1. Cela est du fait que, le serveur sur lequel on installe ce système d'exploitation jouera en même temps le rôle de serveur de noms (Voir chapitre suivant pour la configuration d'un serveur DNS). On passera, après cela, aux choix des noms de machine
(ou hostname) et de domaine qui
Ceci veut dire que le serveur sera mail.minfo.sn. C'est-à-dire la machine qui s'appelle mail dans le domaine minfo.sn. Après ces étapes, le setup va passer à la détection des disques et autres périphériques sur notre serveur. Ceci nous amènera par la suite au partitionnement. Cependant, nous ne nous attarderons 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). + 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 a créer un compte d'utilisateur pour le système et a choisir son mot de passe. Arrive enfin, l'étape du choix des services réseaux a installer en même temps que notre système d'exploitation. Figure 4 : Sélection de services à installer en même temps que Ubuntu-Server Ainsi comme le montre la capture précédente, nous avons juste choisi de mettre en place les serveurs DNS, LAMP et Mail. Pour le DNS, le système va installer le programme bind, pour LAMP on aura Apache, MySQL et PHP d'installé et enfin pour le serveur Mail, le système va mettre Postfix en place. Faut aussi savoir que tous ces outils peuvent être installés bien après la mise en place du système d'exploitation (Voir les chapitres suivants concernant les installations et configurations des différents services). L'installation de notre système d'exploitation va se poursuivre pour enfin terminer avec la configuration de ces différents services. Toutes ces précédentes étapes réussies, notre serveur est enfin prêt à être exploité. Nous aurons l'écran suivant représentant le shell de première connexion. Il indique en première ligne, la version du système d'exploitation du serveur (Ubuntu 10.04 LTS), le nom de la machine (mail) et le terminal actif (tty1). En deuxième ligne, le système vous invite à mettre votre 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 DNS Le DNS pour Domain Name System est l'ensemble des règles utilisées par les machines et les logiciels pour établir, entre autres choses, la correspondance entre les noms de machines et les adresses IP, dont chaque machine sur internet est pourvue. Le serveur de noms permet d'associer une adresse IP à un nom. Dans un réseau, chaque machine se voit attribuer une adresse IP unique qui permet de l'identifier. C'est un peu comme une adresse postale, qui permet d'identifier 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 se souvient facilement de www.ugb.sn, mais plus difficilement de 196.1.99.13. Le serveur de noms va permettre de trouver l'adresse IP à partir d'un nom (ou inversement), que l'ordinateur pourra ensuite interroger. Pour résoudre un nom en adresse IP, la méthode la plus simple consiste à mettre tous les noms d'hôtes et leurs adresses associées dans le fichier etc/hosts. Cette méthode peut se révéler fastidieuse à la longue : chaque fois qu'on veut insérer une nouvelle machine dans le réseau, il faut modifier le fichier /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 noms nameserver 192.168.10.1 nameserver xxx.xxx.xxx.xxx Dans etc/host.conf, il doit être indiqué quels services de conversion de noms sont disponibles, et dans quel ordre il faut les appliquer : # On indique le nom de notre domaine local. domain minfo.sn # Liste des domaines à chercher search minfo.sn # Valeurs possibles: hosts, bind. order hosts, bind Nous pouvons passer à la propre mise en place du DNS en lançant, avec les privilèges de super-utilisateur, la commande suivante : # apt-get install bind9 Ceci nous permettra d'installer bind, un outil permettant la configuration d'un serveur de noms sous linux. Lorsque l'installation réussit, nous aurons dans le répertoire /etc/bind/ les principaux fichiers de configuration que nous allons adapter à notre cas. Nous allons suivre les étapes suivantes : > Edition du fichier de configuration principal /etc/bind/named.conf. Dans ce fichier nous allons indiquer a bind d'autres fichiers a 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 a bind, qu'il s'agit ici d'un serveur DNS primaire ayant autorité sur la zone déclarée. > 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.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.1 1 IN PTR mail.minfo.sn. > 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 cette manière :
Ce test montre que notre serveur de noms de domaines est bien configuré et qu'il peut résoudre une adresse ip a partir d'un nom et vice-versa. 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 le choix entre utiliser un client lourd de messagerie tel que Mozilla Thunderbird, Outlook parmi tant d'autres, ou utiliser un webmail, c'est-à-dire un client léger. Ce webmail n'est rien d'autre qu'une sorte de site web. De ce fait, il n'est accessible que via un navigateur web tel que Firefox de Mozilla, Internet Explorer, etc. Ainsi, lorsque l'utilisateur, via un quelconque poste client, accède a son compte de messagerie grâce à un navigateur, cela suppose qu'il y'a en plus du service de messagerie, un service web disponible sur le serveur mail. Dès lors, pour que les employés d'une structure telle qu'une PME/PMI puissent de n'importe quelle manière accéder a leurs messages électroniques, il nous faudra installer et configurer un service web. Pour installer un serveur web (serveur HTTP), nous allons utiliser une application bien connue des administrateurs réseaux : Apache. Lorsque le choix du système d'exploitation devant héberger le serveur est porté sur la version 10.04 d'Ubuntu, l'installation d'Apache peut se faire directement lors de l'installation du système en cochant LAMP (Voir chapitre sur Ubuntu Server 10.04 LTS). Si par contre, tel n'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-mysql D'autres configurations d'Apache concernant son fonctionnement avec les autres outils du système de messagerie seront faites par la suite au niveau des sections concernées. 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 MTA Pour 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 encore un sujet houleux. Un mauvais choix peut signifier une perte de temps et d'argent, diminuer la sûreté et accroitre les risques du réseau. Un bon choix peut, dépendre de l'architecture de votre système de messagerie, demeurer substantiellement inchangé pour des années. Le choix d'un MTA nécessite d'abord la comparaison des caractéristiques de chacun. De ce fait on 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 grande publicité 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 le populaire SMTP. La première version de Sendmail a été écrite au début des années 1980 par Eric Allman (Université de Berkeley), qui avait également écrit Deliver Mail. Sendmail est très critiqué pour sa lenteur, sa complexité et sa maintenance difficile en comparaison avec d'autres Mail Transfert Agent (MTA) tels que Qmail et Postfix Toutefois, il reste le MTA le plus populaire sur Internet, ce qui est certainement dû a sa mise en oeuvre par défaut dans les différentes variantes d'Unix - à titre d'exemple, Sendmail a été présent dans 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 d'Unix, créé par le cryptologue Daniel J. Bernstein. A la différence de Sendmail, Qmail n'est pas monolithique. Le système Qmail se compose de plusieurs programmes tournant sous des UID/GID différents et non nuls rendant difficile toute tentative d'intrusion. Qmail présente un haut niveau de sécurité grâce à sa structure « éclatée » et de très bonnes performances grâce à une gestion de queue très rapide. Sa configuration très simple via un ensemble de fichiers de contrôle et de variables d'environnement, domaines virtuels. Qmail de par sa taille et son architecture, pas de vulnérabilité depuis quelques années, et une architecture vraiment sécurisée pour éviter même en cas de problèmes, la perte de messages ou encore mê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 en sé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 plus sé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érer presque tous les cas d'une utilisation professionnelle. Utilisé avec une liste publique antispam, il permet d'éviter bon nombre de spams sans même devoir scanner les contenus de message. Objectif réussi puisque Postfix est devenu l'une des références grâce a la qualité du programme 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 ressource système. Exim : Exim est un serveur de messagerie électronique utilisé sur de nombreux systèmes de type UNIX. La première version a été écrite en 1995 par Philip Hazel pour le service informatique de l'Université 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 l'un 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'un seul gros programme qui tourne plutôt que plusieurs petits programmes avec des privilèges différents), son auteur Philip Hazel avait pourtant essayé de le rendre modulaire de la même façon que Postfix mais cette séparation entrainait une forte duplication de codes pour gérer toutes les fonctionnalités disponibles. Il faut tout de même relativiser : l'architecture monolithique du programme ne facilite pas une approche sécuritaire mais le logiciel est l'oeuvre d'une seule personne en grande partie, le code est donc cohérent et tous les points critiques sont connus de son auteur. Même si la sécurité n'est pas aussi forte que sous Postfix, son auteur s'est attaché a ne pas reproduire le passé de Sendmail. Dernier point et non des moindres, Exim est le seul MTA à être sous licence GPL, contrairement à Qmail. 2.3.2.1.2 Installation et configuration de Postfix Postfix est l'agent de transfert courrier (MTA) par défaut d'Ubuntu. Il est dans les dépôts main, donc il reçoit les mises à jour de sécurité. Cette partie décrit son installation et sa configuration pour en faire un serveur SMTP. L'installation du serveur SMTP proprement dite est très simple. Il suffit d'installer le paquet Postfix, si ce n'est déjà fait lors de l'installation du système d'exploitation, avec la commande : # apt-get install postfix Cette ligne permettra d'installer postfix comme serveur mail, a nous de le configurer en faisant : # dpkg-reconfigure postfix Viendra un écran (capture ci-contre) où on aura à fournir le type de configuration. Dans ce cas, on choisira l'option "Site Internet" : Figure 6 : Première étape de la configuration de Postfix Viendra après le choix du nom du serveur. Nous mettrons simplement le nom de domaine principal 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'administrateur système, nous mettrons /etc/aliases pour le choix suivant, puis on indiquera la liste des domaines, séparés par des virgules, que notre serveur reconnaitra comme lui appartenant. Dans notre cas on pourra choisir : minfo.sn, mail.minfo.sn, localhost Nous allons après cette étape indiquer les réseaux pour lesquels notre serveur pourra relayer le courriel. On aura comme information dans ce champ les adresses 127.0.0.0/8 et 192.168.10.0/24 séparées par un espace. Postfix va par la suite nous demander si nous 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 (Voir chapitres sur Dovecot). Les autres options qui suivent peuvent être laissées par défaut. Elles indiquent successivement la taille maximale des boites aux lettres à choisir (celle-ci sera illimitée c'està-dire laissée a 0), le caractère d'extension des adresses locales (+) et les versions d'ip a 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 internet /etc/aliases minfo.sn, mail.minfo.sn, localhost.minfo.sn, localhost 127.0.0.0/8 192.168.10.0/24 No 0 + tous 2.3.2.2 Mise en place du MUA 2.3.2.2.1 Etude comparative de différents MUA Les courriels ne sont autres que des fichiers envoyés de serveurs à serveurs, un peu comme si une lettre ou un colis était envoyé du bureau de Poste de chez vous au bureau de Poste du destinataire. Par ailleurs, il existe ce que l'on appelle des clients mail, qui permettent de traiter ce courrier. Ces clients peuvent être en ligne, c'est a dire que vous y accédez via un site web (Hotmail et Gmail sont typiquement des clients mail en ligne) ou client léger, ou bien, il existe également des applications que vous installez sur votre ordinateur, et qui vont régulièrement synchroniser votre espace de stockage de mails sur votre ordinateur avec le contenu du serveur de mail que vous utilisez. Là, on sera davantage dans des logiciels type Mozilla Thunderbird ou Microsoft Outlook. Client léger Un client léger est une application cliente entièrement gérée par un serveur, de la gestion au stockage des données. Les utilisateurs de l'application auront accès aux données par un portail 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 a penser que les applications Web sont moins sécurisées. Pourtant elles permettent de réduire les risques à un seul serveur. Bien entendu, la sécurisation de celui-ci est primordiale, 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 de base 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 utilisant les technologies XHTML et CSS 2 pour offrir a l'utilisateur une ergonomie la plus proche possible 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. La connexion a un annuaire LDAP est également possible. A l'usage RoundCube se révèle très agréable, simple et complet. > Zimbra Zimbra est un logiciel serveur collaboratif qui permet à ses utilisateurs de stocker, organiser et 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ère connexion, puis les interactions et ajouts/modifications d'informations sont envoyés au serveur par le protocole SOAP. Zimbra propose aussi un logiciel client utilisable en mode déconnecté : le Yahoo! Zimbra Desktop. Client lourd Le terme « client lourd », par opposition au client léger, désigne une application cliente graphique exécutée sur le système d'exploitation de l'utilisateur. Un client lourd possède généralement des capacités de traitement évoluées et peut posséder une interface graphique sophistiquée. Néanmoins, ceci demande un effort de développement et tend à mêler la logique de présentation (l'interface graphique) avec la logique applicative (les traitements). La mise en place d'un système de type client lourd nécessitera une installation de l'application sur chaque poste. Il faudra donc prévoir des ressources a l'arrivée de chaque nouveau 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 ne concernent que quelques utilisateurs. Il faut cependant que tous les postes qui utilisent l'application soient sécurisés car une partie des données est stockée sur les postes des différents collaborateurs. Cela peut donc multiplier les risques. 2.3.2.2.2 Installation et configuration de RoundCube Webmail Pour permettre l'accès aux boites IMAP depuis n' importe oü, l'installation d'un Webmail s'impose. De nombreux webmails Open Source sont disponibles mais celui qui sort du lot en ce 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 et simple. 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 a AJAX) du glisserdéposer, le multilinguisme, un carnet d'adresse, le blocage automatique des images distantes, la recherche automatique en cours de frappe dans le carnet d'adresse lors de l'ajout de destinataire, l'utilisation de comptes multiples pour l'envoi de messages, le support MIME, la création de dossier ainsi que la sélection des dossiers affichés. Installation de RoundCube : Pour que RoundCube fonctionne correctement, il faut bien entendu que la machine héberge un serveur Apache et un serveur MySQL fonctionnels. La configuration du serveur web est décrite ci-dessous. Tout d'abord télécharger RoundCube (version complète) sur le site www.roundcube.net et l'extraire dans un répertoire. # tar xzf roundcubemail-0.3.1.tar.gz Il 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/webmail Ensuite, il faut donner les droits au serveur d'écrire dans les répertoires temp/ et logs/ : # chmod -R 777 /var/webmail/temp/ var/webmail/logs Préparation de la base de données de RoundCube Il faut créer une base de données qui sera utilisée par RoundCube, avec son propre utilisateur. Pour cela, démarrons MySQL en tant qu'administrateur (le login et le mot de passe 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 a l'utilisateur user toutes les privilèges sur toutes les tables de la base de données webmail:
Maintenant notre base de données est prête à accueillir RoundCube. Configuration d'pache pour RoundCube: La base de données configurée, il nous faut créer un VirtualHost qui décrit à Apache le site qu'il doit héberger, c'est-à-dire le nom du site sur lequel il répond en http, et les répertoires qui 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.
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 webmail Et recharger Apache : # /etc/init.d/apache2 reload Configuration de RoundCube : Il ne reste plus qu'à configurer RoundCube. Une interface assez explicite a été développée dans RoundCube pour cela. Grâce a un navigateur nous allons rentrer l'URL suivant http://mail.minfo.sn/installer/ après avoir fait de telle sorte que l'on puisse se connecter sur le serveur. Les différentes étapes de la configuration sont décrites ici : + L'étape 1 (Check environment) : Celui-ci devrait bien se passer a part quelques modules optionnels dont on n'aura pas besoin ici. 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é ; > Activons ip_check; > Désactivons enable_spellcheck (sinon tous nos mails seront envoyés à Google) ; > Renseigner les données pour l'accès a la base de données (que nous avons créée tout a 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 le répertoire /var/www/webmail/config/. Il s'agit des principaux fichiers de configuration 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 ça fonctionne. Nous pouvons dès lors nous connecter en tant qu'utilisateur du système de messagerie. 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 lettres d'un utilisateur : Figure 8 : Interface de connexion de RoundCube Webmail Figure 9 : Boite aux lettres d'un utilisateur # etc/init.d/dovecot restart 2.3.2.3 Mise en place de Dovecot comme MDA et serveur IMAP Comme vu un peu plus haut dans ce document, la mise en place d'un MDA est plus que nécessaire dans un système de messagerie. En effet, c'est un outil situé sur le serveur de messagerie et qui a en charge la livraison des messages dans la bonne boîte aux lettres. En plus du MDA, un serveur IMAP/POP3, aussi appelé serveur de protocoles entrants est à mettre en place. Son rôle a lui sera d'aller récupérer le message situé dans la boite aux lettres suite à la quête de celui-ci. Dovecot est un outil qui de par son efficacité pourra jouer ces 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 configuration de notre outil. 2.3.2.3.1 Étude comparative de différents MDA Il 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 avantages et des inconvénients. Des MDA sont aussi intégrés aux grands logiciels de messagerie intégrés (Exim par exemple). Ils assurent la gestion de boite à lettres, le filtrage des messages , l'envoi de message de réponse automatique. 2.3.2.3.2 Installation et configuration de Dovecot Nous allons dans cette partie procéder a l'installation et a la configuration de Dovecot. Pour installer Dovecot, nous avons à lancer la commande suivante : # aptitude install dovecot-imapd dovecot-pop3d Ainsi tous les modules nécessaires au bon fonctionnement de Dovecot seront installés. Il suffira par la suite simplement redémarrer le service en faisant : Grâce a ces quelques commandes, nous venons d'installer les serveurs IMAP et POP3 (car Dovecot 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 (port correspondant à une communication utilisant le protocole POP3). Nous les avons ci-contre :
Il est aussi possible de mettre imap à la place de 143 ou pop3 à la place de 110. Ceci montre que 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 à faire fonctionner Dovecot. Sauf que pour des besoins de sécurité et de filtrage, il nous faudra parcourir ce fichier et l'adapter a nos besoins. Cette configuration sera expliquée dans les différentes sections concernées. |
|