REMERCIEMENT Nous tenons remercier Mr Alain, professeur en informatique de la filire informatique dans Administration et Scurit Rseaux - tuteur de notre projet. En premier lieu pour nous avoir permis de raliser ce projet tutor. En effet, nous voulions mener bien un projet dans les rseaux et cest pourquoi nous sommes fier davoir pu obtenir ce sujet. Pour son soutien, son coute et sa disponibilit tout au long de la ralisation du projet, nous la remercions galement.
2
SOMMAIRE
CAHIER DES CHARGES ............................................................................................................................. 4 PARTIE I : Prsentation gnrale ............................................................................................................. 5 1. Prrequis ......................................................................................................................................... 6 2. Mcanisme dun serveur de messagerie ......................................................................................... 7 3. Dfinitions ....................................................................................................................................... 8 PARTIE II : Installations et configurations ................................................................................................ 9 1. Installation de Postfix .................................................................................................................... 10 2. Cration des tables SQL pour Postfix ............................................................................................ 12 3. Configuration de Postfix pour le lier la base de donnes ........................................................... 13 4. Cration de lutilisateur et groupe vmail ....................................................................................... 15 5. Configuration de Postfix ................................................................................................................ 15 6. Ajout dadresses email virtuelles................................................................................................... 16 7. Installation de Courier pour la gestion de lIMAP et POP ............................................................. 16 8. Configuration de Courier ............................................................................................................... 16 PARTIE III : Tests denvois de courriers ................................................................................................. 18 1. Test dun nslookup du ct client ................................................................................................. 19 2. Envois du Terminal vers Outlook ................................................................................................... 19 3. Envois dun courrier de XP (skyston@skyston.org) Evolution (ulrich@skyston.org) ................. 20 4. Un courrier de ulrich@skyston.org skyston@skyston.org: ........................................................ 22 RETOUR DEXPERIENCE ......................................................................................................................... 24 BIBLIOGRAPHIE ...................................................................................................................................... 25
3
INTRODUCTION Tout au long de lanne universitaire, nous avons vu le monde de Linux de faon pouvoir intgrer les entreprises avec des qualifications adquates. Nous avons choisis ce projet tutor pour valuer nos connaissances sur un thme prcis. Nous allons tout de suite voir les tapes de la mise en place en place de serveur o nous verrons tout dabord dans la premire partie la prsentation gnrale puis ensuite dans la deuxime partie les installations et les configurations et enfin dans la dernire partie les tests denvois de courriers effectus sur le serveur.
4
CAHIER DES CHARGES Enseignant tuteur Mr Alain RAKOTONIRINA Thme(s) Electronique Informatique/Programmation Rseaux non non oui
Rsum de la proposition
Titre : Mise en place dun serveur de messagerie
Rsum du travail attendu : Installation de POSTFIX MYSQL et COURIER Prsentation du mcanisme de messagerie Ralisation et test du serveur
Achat de Matriel ? : non
PARTIE I : Prsentation gnrale
6
1. Prrequis Nous allons mettre en place notre serveur de messagerie avec POSTFIX, MYSQL et COURIER. Pour cela nous avons besoin pour notre cas de: - Un ordinateur sous Debian 5 Lenny possdant un DNS (Domain Name Service) fonctionnant du moins localement. Nous allons utiliser la gestion de courrier de Debian Lenny appel Evolution . Configuration IP :
- Un ordinateur sous XP pour faire le test denvois et de rception des courriers avec outlook (un exemple de MUA ou Mail User Agent). Configuration IP :
7
2. Mcanisme dun serveur de messagerie
Ce schma prsente le transfert d'un courriel d'un expditeur un destinataire. 1 - L'expditeur communique son courriel via le MUA. 2 - Le MUA transmet ce courriel au MTA (Mail Transfert Agent). Il faut savoir que la plupart des MUA intgre des clients SMTP (Simple Mail Transfer Protocol). 3 et 4- Le MTA du systme de l'metteur tablit un canal de transmission avec le MTA du systme du destinataire, par missions successives de requtes bidirectionnelles. 5 - Une fois le canal tablit, le courriel est transmis d'un systme un autre par les MTA. 6 - Dans le systme du destinataire, Le MTA transmet le courrier reu au serveur IMAP (Internet Message Access Protocol) ou POP3 (Post Office Protocol). 7 et 9 - Le MDA rcupre le courriel du serveur IMAP / POP 3, et le met disposition du MUA. 10 - Le destinataire, par lintermdiaire de son MUA, demande son serveur de courrier MDA les nouveaux messages, sur authentification. Rsumer de lenvoi : Entre l'utilisateur et son serveur, l'envoi d'un courrier lectronique se droule gnralement via le protocole SMTP. Puis c'est au serveur d'envoyer le message au serveur du destinataire, cette fonction est appele Mail Transfer Agent en anglais, ou MTA. Pour combattre le SPAM (courriel indsirable), il est demand l'internaute de n'utiliser que le serveur SMTP de son FAI (Fournisseur daccs Internet) et les FAI bloquent l'utilisation d'autres serveurs. Mais pour assurer la mobilit du
8
MUA, certains FAI permettent d'utiliser leurs serveur de nimporte o, moyennant une authentification SMTP et ce gnralement sur une connexion SSL (Secure Sockets Layer). Rsumer de la rception : La rception d'un courrier lectronique s'effectue elle aussi en deux temps. Le serveur doit recevoir le message du serveur de l'expditeur, il doit donc grer des problmes comme un disque plein ou une corruption de la bote aux lettres et signaler au serveur expditeur toute erreur dans la dlivrance. Il communique avec ce dernier par l'intermdiaire des canaux d'entre-sortie standard ou par un protocole spcialis comme LMTP (Local Mail Transfer Protocol). Cette fonction de rception est appele Mail Delivery Agent en anglais, ou MDA. Finalement, lorsque le destinataire dsire accder ses messages, il lance une requte au serveur qui, en retour, lui transmet les messages gnralement via le protocole POP3 ou IMAP. La plupart des clients de messagerie sont configurs de manire interroger rgulirement le serveur de messagerie (par exemple, toutes les minutes), ce qui rend l'tape 3 du processus compltement transparente pour le destinataire. 3. Dfinitions
POSTFIX (notre MTA) : Postfix est un serveur de messagerie lectronique et un logiciel libre dvelopp par Wietse Venema et plusieurs contributeurs. Il se charge de la livraison de courriers lectroniques (courriels) et a t conu comme une alternative plus rapide, plus facile administrer et plus scurise que l'historique Sendmail. Il est le serveur de courriel par dfaut dans plusieurs systmes de type UNIX, comme Mac OS X, NetBSD1, diverses distributions GNU/Linux, etc. MYSQL : MySQL est un systme de gestion de base de donnes relationnelle (SGBDR). Il est distribu sous une double licence GPL et propritaire. Il fait partie des logiciels de gestion de base de donnes les plus utiliss au monde1, autant par le grand public (applications web principalement) que par des professionnels, en concurrence avec Oracle, Informix et Microsoft SQL Server. Son nom vient du prnom de la fille du cocrateur Michael Widenius, My. SQL fait allusion au Structured Query Language, le langage de requte utilis. MySQL fait partie du quatuor LAMP : Linux, Apache, MySQL, PHP. Le couple PHP/MySQL est trs utilis par les sites web et propos par la majorit des hbergeurs Web. Plus de la moiti des sites Web fonctionnent sous Apache6, qui est le plus souvent utilis conjointement avec PHP et MySQL. COURIER (notre MDA) : Il s'agit d'un agent qui est en charge de la gestion des botes aux lettres. Il est charg de livrer le courriel dans la bote messages du destinataire. Pour cela, il est souvent considr comme le point final d'un systme de messagerie. Dans le MDA, on peut filtrer les courriels; et mme supprimer les spams par des anti-spams (comme spamassassin) et contrler les virus par des antivirus.
PARTIE II : Installations et configurations
10
1. Installation de Postfix Durant la configuration, nous utiliserons des mots de passe trs simple pour faciliter. Linstallation de postfix en elle-mme est trs simple, il suffit de taper la ligne de commande : apt-get install postfix-mysql et de choisir pas de configuration pendant linstallation. Les plus curieux dentre vous auront constats quon installe un paquet un peu spcial de postfix avec une extension -mysql . Cette version nous simplifie les choses, on utilisera une base de donnes MySQL pour stocker nos diffrents comptes email et noms de domaine.
11
12
2. Cration des tables SQL pour Postfix On a besoin de crer 3 tables pour Postfix : Une table domaines qui contiennent la liste des noms de domaine hbergs sur le serveur Une table comptes qui contient toutes les adresses emails virtuelle de la forme contact@nomdedomaine.tld Une table alias qui contient diffrents alias email que nous nutiliserons pas. Pour cela, on se connecte dans le terminal en tant root et on tape mysql u root p ensuit on tape le mot de passe de lutilisateur root de Mysql. Taper les lignes suivantes une une : - CREATE DATABASE postfix ; - USE postfix ; - CREATE TABLE `domaines` ( `domaine` varchar(255) NOT NULL default '', `etat` tinyint(1) NOT NULL default '1', PRIMARY KEY (`domaine`)) ENGINE=MyISAM; - CREATE TABLE `comptes` ( `email` varchar(255) NOT NULL default '', `password` varchar(255) NOT NULL default '', `quota` int(10) NOT NULL default '0', `etat` tinyint(1) NOT NULL default '1', `imap` tinyint(1) NOT NULL default '1', `pop3` tinyint(1) NOT NULL default '1', PRIMARY KEY (`email`)) ENGINE=MyISAM; - CREATE TABLE `alias` ( `source` varchar(255) NOT NULL default '', `destination` text NOT NULL, `etat` tinyint(1) NOT NULL default '1', PRIMARY KEY (`source`)) ENGINE=MyISAM; Nous devons avoir cela dans PhpMyAdmin :
13
3. Configuration de Postfix pour le lier la base de donnes Maintenant que la base de donnes est fonctionnelle avec toutes les tables et un utilisateur valide, nous devons crer 5 fichiers de configurations pour expliquer Postfix comment utiliser cette base de donnes. Les fichiers se ressemblent donc faites attention aux erreurs dinattention : Ajoutons lutilisateur MySql postfix dans notre base de donnes, taper dans MySql les lignes suivantes : - USE postfix; - CREATE USER 'postfix'@ 'localhost' IDENTIFIED BY postfix'; - GRANT USAGE ON * . * TO 'postfix'@'localhost' IDENTIFIED BY postfix'; - GRANT ALL PRIVILEGES ON `postfix` . * TO 'postfix'@ 'localhost'; - FLUSH PRIVILEGES; Nous allons crer les fichiers suivants : /etc/postfix/mysql-virtual_domaines.cf
/etc/postfix/mysql-virtual_comptes.cf
14
/etc/postfix/mysql-virtual_aliases.cf
/etc/postfix/mysql-virtual_aliases_comptes.cf
/etc/postfix/mysql-virtual_quotas.cf
Une fois termine, scurisons tout cela avec ces lignes de commandes : - chmod u=rw,g=r,o= /etc/postfix/mysql-virtual_*.cf - chgrp postfix /etc/postfix/mysql-virtual_*.cf
15
4. Cration de lutilisateur et groupe vmail Pour avoir une configuration assez propre et scuris, nous pouvons crer un utilisateur et un groupe vmail qui se chargera de grer/stocker les courriels sur le serveur. Nous devons prciser des UID et GID prcis (5000) car nous en auront besoin plus tard dans un fichier de configuration. # Crer un groupe vmail avec le gid 5000 groupadd -g 5000 vmail # Crer un utilisateur vmail avec un uid 5000 et son rpertoire perso dans /var/spool/vmail useradd -g vmail -u 5000 vmail -d /var/spool/vmail/ -m 5. Configuration de Postfix Dans le terminal, tapez : nano /etc/postfix/main.cf Adapter votre configuration comme ci-dessous :
16
6. Ajout dadresses email virtuelles Tout est bon au niveau de postfix, il ne nous reste plus qu ajouter un nom de domaine et une adresse email virtuelle dans notre base de donnes via MySql. Ajouter un nom de domaine en premier lieu Taper dans MySql: INSERT INTO `domaines` ( `domaine` , `etat` ) VALUES ('skyston.org', '1'); Ensuite crer ulrich@skyston.org et skyston@skyston.org : INSERT INTO `comptes` ( `email` , `password` , `quota` , `etat` , `imap` , `pop3` ) VALUES ('ulrich@skyston.org', ENCRYPT ( ulrich), '0', '1', '1', '1'); Idem pour lautre adresse. 7. Installation de Courier pour la gestion de lIMAP et POP Maintenant que Postfix est install et configur, on a besoin dinstaller courier afin de grer les protocoles pop et imap, qui nous permettent de rcuprer nos email via un client comme Thunderbird, outlook. Voici la liste des paquets installer : apt-get install courier-base courier-authdaemon courier-authlib- mysql courier-imap courier-pop 8. Configuration de Courier Ajouter/modifier dans le fichier /etc/courier/authdaemonrc la ligne suivante comme telle : authmodulelist="authmysql" On doit ensuite fournir les identifiants de connexion la base de donnes et le nom des tables. Pour cela on va modifier le fichier etc/courier/authmysqlrc :
17
Redmarrer tous les services associs courier /etc/init.d/courier-authdaemon restart /etc/init.d/courier-pop restart /etc/init.d/courier-imap restart
PARTIE III : Tests denvois de courriers
19
1. Test dun nslookup du ct client
2. Envois du Terminal vers Outlook Nous allons envoyer un message dat du 22/04/14 du Terminal :
20
Nous obtenons dans outlook de notre XP :
3. Envois dun courrier de XP (skyston@skyston.org) Evolution (ulrich@skyston.org)
21
En allant dans la section Elments envoys on dois voir le message qui venait dtre envoy :
A prsent, nous allons voir dans Evolution si le message est bien arriv :
Le message est bien arriv destination.
22
4. Un courrier de ulrich@skyston.org skyston@skyston.org: Nous allon demander ulrich@skyston.org de rpondre ce message.
Et comme attendu, nous avons dans la section envoys :
Vrifions cela dans Outlook du XP en cliquant sur Envoyer/Recevoir :
23
Comme attendu, skyston@skyston.org a bien reu le message.
24
RETOUR DEXPERIENCE En terme de notre projet, nous avons pu voir les grandes lignes sur la configurations dun serveur de messagerie. Il nous a donn de nouvel exprience et de connaissance tant sur le plan thorique que sur le plan pratique. Dans la logique, notre serveur de messagerie aurais pu avoir plus de scurit. Parmi ce qui manque -- bien que peu de particuliers en aient besoin -- ce sont les rcritures via des expressions rationnelles, par exemple. Ce sera probablement implant dans une future version.