Académique Documents
Professionnel Documents
Culture Documents
Spécialité : ELECTRONIQUE
Option : Informatique Industrielle
Spécialité : ELECTRONIQUE
Option : Informatique Industrielle
Nous tenons en premier lieu à remercier Dieu Tout-puissant pour tout l’Amour qu’Il nous a
partagé à travers la réalisation de ce mémoire.
Ensuite, nous adressons nos vifs remerciements et notre profonde gratitude :
Rianala Vonjy
i
RESUME
ii
ABSTRACT
E-mails foundation lies especially upon text based protocols. Message passes
through client to the server with SMTP. Receiving e-mails needs other protocols as POP or
IMAP up to the server type in which mails are stored. Through all their progress, mails are
first encoded and then decoded by the mail client software. Besides, most frequent problems
that are met in mail administration are virus and spams. Thus, this memory describes some
solutions for securing the mail architecture from the client to the server. The server function is
essentially ensured by Postfix. Other freewares are added to complete the protection of the
conceived architecture.
iii
TABLE DES MATIERES
Page
REMERCIEMENTS ......................................................................................................... i
RESUME ........................................................................................................................... ii
ABSTRACT ..................................................................................................................... iii
TABLE DES MATIERES .............................................................................................. iv
LISTE DES ABREVIATIONS ...................................................................................... vii
LISTE DES FIGURES .................................................................................................... ix
LISTE DES TABLEAUX ................................................................................................ x
LISTE DES ANNEXES ................................................................................................... xi
INTRODUCTION ............................................................................................................ 1
iv
g- Format d’échanges ....................................................................................................... 18
(i). les textes .............................................................................................. 18
(ii). Les données ........................................................................................ 20
(iii). Les images ........................................................................................ 20
v
2.3 Autres dispositifs de sécurité pour un serveur de messagerie .................................... 40
a) La topologie du réseau ...................................................................................... 40
b) Autres dispositifs de sécurité : Lutte antispam et antivirus .............................. 41
(i). Procmail .............................................................................................. 41
(ii). Filtrage des spams avec spamassassin ............................................... 42
(iii). Mettre en place un antivirus .............................................................. 44
(iv). Filtrage avancé avec MailScanner .................................................... 44
c) Récapitulation sur l’architecture sécurisé du serveur ....................................... 44
CONCLUSION .............................................................................................................. 54
REFERENCES ............................................................................................................... 67
vi
LISTE DES ABREVIATIONS
vii
RTF Rich Text File
SASL Simple Authentification Security Layer
SMS Short Message System
SMTP Simple Mail Transfert Protocol
SNDMSG Send message
TCP Transmission Control Protocol
Tél Téléphone
TLS Transport Layer Security
txt texte
UA User Agent
UUCP Unix to Unix Copy Protocol
WAP Wireless Application Protocol
WWW World Wide Web
viii
LISTE DES FIGURES
Page
transfert de courrier
Figure 2.2 Les composants de Postfix, et les flux circulants entre eux. 34
ix
LISTE DES TABLEAUX
Page
x
LISTE DES ANNEXES
Page
xi
INTRODUCTION
De nos jours, il semble que tout change d’un instant à l'autre. Il suffit de cligner des
yeux, d’éternuer ou de se reposer un instant sur ses lauriers, pour passer à côté de quelque
chose. Cela pouvait être la dernière évolution ou innovation, un nouveau raccourci encore
plus rapide, ou un gadget électronique ou numérique dernier cri destiné à transformer et à
améliorer notre vie. Ainsi, si quelques jours s'avèrent nécessaires pour l'envoi d'un courrier
national, voire quelques semaines pour les envois internationaux, de plus en plus de gens
utilisent actuellement les courriers électroniques pour économiser du temps et de l'argent.
Ceci nous amène à penser à une architecture plus sécurisée et plus économique du
courrier électronique tant au niveau du serveur qu’au niveau du client. Ce mémoire intitulé
« Etude sur le courrier électronique » est prévu à cet effet. Pour ce faire, une étude
1
détaillée sur les e-mails et leurs fonctionnements sera d’abord entamée dans un premier plan.
Ensuite sera proposée une solution libre pour une meilleure sécurisation des serveurs de
messagerie.
2
CHAPITRE 1 :
3
Ce chapitre étudie le fondement du courrier électronique avec la description des
différents éléments qui entrent en jeu depuis l’expéditeur jusqu'au destinataire final. Il expose
également les dangers encourus par le courrier électronique à l’heure actuelle et propose un
modèle d’installation et sécurisation des outils de gestion de courrier.
a. Historique
En mars 1972, Ray Tomlinson, ingénieur de la société BBN, qui est alors sous
contrat avec le gouvernement américain pour le projet Arpanet, a mis au point deux
programmes. Le premier, SNDMSG (pour Send Message) associé à un autre logiciel baptisé
READMAIL, permet à plusieurs personnes qui partagent le même ordinateur de s'y laisser des
messages. Le second, CPYNET, permet de copier simultanément un fichier sur tous les
ordinateurs d' Arpanet (qui relie à l'époque 15 machines!). Il se crée deux boîtes aux lettres
électroniques sur deux ordinateurs situés côte-à-côte et réussit à envoyer un message d'un
ordinateur à un autre. Le courrier électronique est né! On ne l'appelle pas encore e-mail mais
Netmail. A l'occasion, Ray se doit de définir l'adresse électronique. Il décide de séparer
l'adresse en deux parties. D'un côté, le nom de l'utilisateur et de l'autre, le nom de l'ordinateur
sur lequel se trouve la boîte de réception. Pour séparer les deux parties, le choix de Ray se
porte sur l'arobase, @. Car l'@ ne fait pas partie des noms communs ou propres (donc pas de
risque de confusion) et a l'avantage en anglais de se prononcer "at", c'est-à-dire "chez" ou "à"
en français.
Un courriel, Mél ou e-mail est un petit paquet de données qui circule sur Internet
d'un ordinateur à un autre, plus précisément d'une boîte aux lettres électronique à une autre.
4
Tout comme un courrier postal, un courrier électronique est composé:
-d'un contenu (dit aussi corps), qui contient par exemple le texte du message, des
fichiers (comme des images), etc. et qui peut être associé facultativement à un ou plusieurs
fichiers joints (par exemple la liste des courses, une photo de vacance, etc.)
A la différence des courriers postaux, il comporte en plus, un objet (ou sujet) pour
identifier le message.
-domaine est le nom de domaine. C'est l'endroit où est hébergé le courrier (une
machine ou un ensemble de machines). Plusieurs personnes peuvent être hébergées au même
endroit (sur Wanadoo par exemple).
5
(ii). Les en-têtes [2] [4]
Subject : essai (Sujet du message, qui apparaît dans la liste des courriers lorsque le
destinataire les récupère et permet de cerner le contenu du courriel).
Bcc : andry@voici.mg (même chose que Cc:, sauf qu'ici le destinataire principal n'a
pas connaissance de la liste des personnes qui reçoivent la copie du courrier.)
6
Disposition-Notification-To : robert.identité@voyage.mg (Adresse définie pour la
réception de la confirmation de lecture. La présence de ce champ active de ce fait la
confirmation de lecture).
D'autres informations sont ajoutées dans les en-têtes au cours du trajet de l'e-mail.
Ces informations sont l'équivalent des tampons postaux des courriers traditionnels : elles
portent la trace (heure et identification) des différents serveurs qui ont participé à
l'acheminement du courriel. On peut donc en les examinant retracer le parcours d'un e-mail.
Trace ajoutée par un serveur SMTP ayant relayé le courriel. Il est fait mention des
noms et adresses IP des précédents serveurs et de l'heure du passage. Chaque serveur SMTP
rencontré laisse sa ligne Received. La dernière ligne Received correspond au premier serveur
rencontré. Cette ligne received est ajoutée par les informations suivantes:
7
Message-ID: 4653.13271127@domaine.fr (Numéro d'identification unique du
message).
Date: Thu, 19 Feb 2006 13:22:32 +0100 (Date et heure d’envoi. Le dernier chiffre
(+0100) correspond au fuseau horaire de l'émetteur : +0100 signifie GMT+1, -0500 signifie
GMT-5).
(iii). La signature
Exemple:
Robert Jean
http://www.agri.mg
Tel : 00261331265018
Fax : 00261331265018
Quel que soit le moyen qu'on utilise, il suffit pour envoyer un e-mail de créer un
nouveau message, de renseigner l'adresse électronique du correspondant, de taper l'objet et le
8
texte du mail, puis de cliquer sur un bouton ou un lien Envoyer. Pour lire un message, il suffit
de cliquer sur le bouton ou le lien Recevoir (ou envoyer et recevoir) puis de cliquer sur chaque
message pour le lire.
Techniquement, le principe est presque une lapalissade, mais le rappel est important:
un courrier électronique circule par définition sur Internet. En clair, il passe d'ordinateur en
ordinateur (ou de serveur en serveur), de l'ordinateur de l'expéditeur à celui du destinataire.
Pour ce, il emprunte différentes voies et utilise plusieurs protocoles.
SMTP est le protocole qui régule les échanges de courrier électronique (cf.
ANNEXE 1). Il est un peu l'équivalent sur Internet du service postal traditionnel, avec toutes
ses règles de fonctionnement.
Le protocole SMTP spécifie ainsi le format des adresses des utilisateurs, l'en-tête des
courriers (from: , to: , etc.), les possibilités d'envoi groupé ou la gestion des heures.
SMTP met en communication deux serveurs, en gros deux bureaux de poste: celui
de la personne qui envoie un courrier (dans cet exemple, il a pour nom smtp.wanadoo.fr) et
celui de la personne qui le reçoit (smtp.free.fr). La figure 1.1 montre cette communication
entreprise par SMTP entre l’expéditeur et le serveur. [3] [5]
Le mail passe d'un serveur à l'autre directement ou par quelques relais. Il se peut que
la liaison ne concerne qu'un serveur, quand l’expéditeur et le destinataire sont gérés par un
même serveur. Un message met en général quelques secondes seulement pour aller d'un point
à un autre sur l'Internet.
9
(ii). Le protocole POP
Le protocole POP, dont la dernière version est la version 3 (cf. ANNEXE 1), a été
conçu pour permettre de récupérer un courrier sur une machine distante. POP va relever les
courriers dans la boîte aux lettres de l’utilisateur et les chargent dans le disque dur de ce
dernier comme l’illustre la figure 1.2 ci-dessous. [6][7]
L'IMAP est un protocole qui permet, depuis son ordinateur, d'aller relever les
messages dans une boîte aux lettres électronique. Le protocole IMAP est le successeur du
protocole POP3, qui aujourd'hui, est proposé en standard chez tous les fournisseurs d'accès et
supporté par tous les logiciels de messagerie.
10
• Comparaison entre POP et IMAP
Par une relève POP3, les courriers sont transférés du serveur au disque dur et effacé
du serveur. Par conséquent, à moins que l’utilisateur ait configuré son logiciel pour cela, il ne
pourrait plus avoir accès à ses courriers à partir d’un autre ordinateur.
Avec IMAP, en revanche, tous les courriers et dossiers de messages restent sur le
serveur. A chaque fois que l’utilisateur se connecte au serveur par IMAP, il n'effectue plus
une relève des messages, mais une synchronisation des messages. Le logiciel affiche alors une
copie de sa boîte aux lettres, archives comprises. Comme l'original reste sur le serveur, on
peut avoir accès aux courriers à partir de n’importe quel ordinateur.
Avec IMAP, les messages et les modifications que leur sont apportés, demeurent sur
le serveur. Cela permet d'économiser l’espace disque.
Outre, la boîte aux lettres est synchronisée : cela permet à l’utilisateur de consulter
facilement ses courriers depuis différents ordinateurs.
Enfin la synchronisation peut être sélective : on peut ne télécharger que l'en-tête des
messages ou les dossiers de courrier utiles. IMAP est ainsi utile à toutes les personnes qui se
déplacent et désirent rester en contact avec leurs e-mails.
Pour transmettre un courrier électronique, bon nombre d’agents entrent en jeu tout au
long du parcours tant au niveau client qu’au niveau serveur. Quand l’information à échanger
est prête, comportant un certain nombre d’autres indications (l’enveloppe), l’ensemble est
géré par un logiciel installé sur la machine utilisateur (Outlook Express, Eudora, Pegasus,...),
c’est un User Agent (UA). Celui-ci sert à la fois d’éditeur et de transmission de messagerie
vers le serveur.
11
jusqu'au serveur entrant du destinataire. Le protocole employé est SMTP (Simple Message
Transfer Protocol) qui est un protocole TCP. Il faut donc un client et un serveur SMTP pour
envoyer un message d'une machine à l'autre. A ce stade le message n'est pas encore disponible
pour son destinataire puisqu'il repose dans un serveur. La personne doit activer le client de
transmission de son User Agent pour recevoir l'information. Son logiciel UA, qui sert à
confectionner un message, permet également d'afficher les messages entrants. Il décode
certaines informations de l'en-tête pour son fonctionnement. C'est ainsi qu'il peut reconnaître
que l'émetteur demande un accusé de réception. Il permet également d'afficher un résumé
appelé sujet (si l'émetteur l'a renseigné). [10]
12
Figure 1.4: Chaîne du courrier électronique
Une boîte aux lettres électronique n'est généralement pas située sur l’ordinateur de
l’utilisateur. Elle est située sur une machine distante, appelée "serveur de courrier", esquissé
dans ce paragraphe par la figure 1.5. Cet ordinateur est situé chez le fournisseur d'adresses e-
mail et est, relié de façon permanente à Internet.
Ainsi, lorsqu’un utilisateur interroge sa boîte aux lettres électronique, il rapatrie sur
son disque dur les courriers qui se trouvent sur son serveur de courrier (en utilisant le
protocole POP ou IMAP). Et lorsqu’il expédie un courrier à quelqu'un, ce courrier est stocké
dans le serveur de courrier du destinataire, jusqu'à ce que celui-ci relève ses messages.
Il faut cependant remarquer que la boîte aux lettres du correspondant peut être située
sur son ordinateur, s'il possède un ordinateur connecté au sein d'une entreprise et qu'il dispose
d'un logiciel serveur de courrier.
Il est important de se souvenir que le courrier électronique est stocké sur un serveur
extérieur tant que celui-ci n’est pas lu et peut donc y être lu et examiné à souhait. Ceci en fait
donc par nature, un outil moins sécurisé que le courrier ordinaire.
13
e- Encodage du courrier électronique
Le codage dans le courrier électronique marche en 7 bits car les protocoles qu’ils
utilisent, SMTP et POP gèrent des fichiers à 7 bits.
Le problème est que ce codage sur 7 bits ne peut répertorier que 128 caractères (10
chiffres (de 0 à 9), 26 lettres minuscules, 26 lettres majuscules, une dizaine de signes de
ponctuation, des caractères exotiques (&, #, \, $, %) et des caractères spéciaux), il ne reste
plus assez de cases libres dans les 128 pour introduire les accents [11].
Une seule solution s’impose alors, ajouter une barre (1 bit) pour pouvoir répertorier
davantage de caractères. Passer de 7 bits à 8 bits permet en effet d'accepter le double de
caractères (de 128 à 256) [11] [12].
Par contre le courrier électronique est à l'origine basé sur le protocole SMTP, qui ne
gère que le code à 7 bits. Donc, pour pouvoir faire passer des codes à 8 bits dans un système
14
de codes à 7 bits, il a fallu trafiquer un peu le message pour qu’il puisse passer sans problème
à travers les mailles du filet, soit coder. D’où la naissance d’un standard, le standard MIME.
L'extension MIME a été conçue pour remédier à cet inconvénient. MIME est une
spécification d'Internet, permettant d'échanger des textes écrits dans des langues différentes
(et utilisant des ensembles de caractères différents) ainsi que des documents de tous types
(images, sons, vidéos...), entre des machines de systèmes différents (PC, Mac, Linux, Unix,
etc.). Avec MIME, on peut donc transmettre de façon transparente à tous les destinataires
connectés à Internet des messages contenant par exemple :
-des textes contenant des caractères autres que l'ASCII, notamment des caractères
accentués, des cédilles, etc.…
-des images
-des sons
-des fichiers
Notons que MIME précise en même temps la nature du contenu (text/plain), le jeu de
caractères utilisé (iso-8859-1) et le mode d'encodage : Quoted-Printable ou Base 64.
Le Quoted-Printable : les caractères accentués sont remplacés par des signes ‘=’
suivis du code hexadécimal du caractère (par exemple =E9 pour "é"...). L'ensemble du
15
message ne contient donc plus que des caractères 7 bits et passe sans encombres à travers les
différentes passerelles du Net. A l'arrivée, le logiciel de messagerie fait l'opération inverse (cf.
ANNEXE 1).
Le Base 64 : les caractères 8 bits sont codés sur 6 bits : un groupe de 3 octets (soit
24 bits) devient ainsi quatre ensembles de 6 bits, les 6 bits représentant un sous-ensemble de
l'US-ASCII : A-Z, a-z, +, /, et = (cf. ANNEXE 1). Là aussi, l'ensemble du message passe sans
encombre à travers les différentes passerelles du Net.
- et que tous les routeurs (ordinateurs qui font circuler l'information) entre les deux
machines émettrice et réceptrice n'y soient pas trop allergiques.
16
Tableau 1.2: spécification d’encodage dans le corps du message
Corps du message
This is a multipart MIME message
Boundary_(E5F934616F3D7E91EBA02022) Première partie du
message: on nous annonce que va
Content-type: text/plain; charset=iso-8859-1
suivre un texte, encodé en Quoted-
Printable
Content-transfer-encoding: Quoted-printable
Ci-joint le sch=E9ma que j'avais promis de Le texte en question : le
t'envoyer. Quoted-Printable est identifiable
aux=E9
Bonne r=E9ception !S=E9b
Boundary_(E5F934616F3D7E91EBA02022) Seconde partie du
message: ici il s'agit d'une image au
Content-type: image/gif; name=schema.gif
format gif, encodée en Base 64.
Content-transfer-encoding: Base 64
Content-disposition:
attachment;filename=schema.gif
Content-description: schema.gif
R0lGODdhEAAQAPAAAAAAAP///ywAAA L'image (encodée) en
AAEAAQ CKIyPqcCt2NyDINR5mMW5Xi5x1pdEhjai question: le Base 64 est identifiable
IZqe7KtubibT44lFbE6KUwEAOw== à l'utilisation exclusive des
caractères A-Z, a-z, +, /, et =)
-Boundary_ (E5F934616F3D7E91EBA02022) Fin
Le système de transport des fichiers étant assez rudimentaire, les fichiers souffriront
du voyage s'ils ne sont pas correctement emballés, c'est-à-dire "codés". C'est généralement le
logiciel de messagerie qui se charge automatiquement du codage.
17
Les fichiers sont donc codés en 8 bits mais, le gros problème est que le courrier
électronique marche par 7!
Pour pouvoir faire passer des codes à 8 bits dans un système de codes à 7 bits, une
méthode s’impose.
C'est à peu près la même que celle qui sert à transmettre les accents. Pour
transmettre des codes de 8 bits avec un système 7 bits, il suffit de tout redécouper à un format
différent. En gros, d'aligner tous les 0 et les 1 pour former une gigantesque chaîne, puis de
redécouper cette dernière, par exemple, en blocs de 7 bits. A l'autre bout de la chaîne, on
refera l'opération inverse. [11]
-Le format RTF: La plupart du temps, c’est une meilleure solution. Ce format est
un standard que peuvent lire tous les programmes de traitement de textes. Il permet de
conserver les formats du texte.
Pour transmettre un fichier au format RTF, il faut l'enregistrer dans ce format. Cela
se fait par l'intermédiaire de la commande ‘Enregistrer sous…’ que l'on trouve dans tous les
programmes de traitement de textes. Et pour s'assurer de la bonne transmission du fichier, il
est essentiel de nommer le fichier en terminant son nom par l'extension «.rtf» par exemple
«mon_fichier.rtf».
18
-Le format HTML: est le format dans lequel sont écrites les pages www. Comme
l'un des buts du Web est d'être lu sur un maximum de machines, ce format est donc de facto
un moyen idéal pour transmettre des fichiers. On pourra en principe utiliser ce format pour
transmettre du texte, mais il faut savoir que de nombreuses restrictions de formatage
empêchent qu'il soit utilisé de manière systématique dans ce but. La procédure à suivre pour
enregistrer un fichier dans ce format est analogue à celle du RTF, mais on choisira l'option
HTML à la place de RTF. Il est ici encore important de nommer le fichier en terminant son
nom par l'extension «.html» ou «.htm», par exemple «mon_fichier.html».
-Le format TXT ou ASCII: Il faut citer ici encore le format TXT ou texte pur,
appelé aussi format ASCII. Ce format, qui est le plus standard, offre l'avantage de permettre la
transmission à coup sûr. Cependant, de gros inconvénients ne permettent pas son utilisation
systématique: pas ou peu de formatage, pas de caractères avec marques diacritiques (lettres
accentuées ou avec cédilles). Il convient de l'utiliser lorsque l'on veut transmettre des données
brutes. Si le choix est porté sur ce format, le nom du fichier doit se terminer par l'extension
«.txt».
-Le format PDF de la maison Adobe, est un format qui représente un document de
façon indépendante du matériel, du système d'exploitation et du programme utilisé pour créer
le fichier. Ce format a été développé spécifiquement pour faciliter les transferts de documents
entre ordinateurs.
Ces propriétés confèrent au PDF des avantages très importants: les documents
peuvent être visualisés partout et imprimés sans perte de qualité, et surtout, la mise en page
voulue par l’auteur du document est complètement conservé, pour autant que l'on prenne
certaines précautions lors de la conversion en PDF.
Pour lire les documents en PDF, il suffit de disposer d'un programme appelé Acrobat
Reader. Ce programme existe sur toutes les plateformes. Il est entièrement gratuit et
disponible en téléchargement libre sur internet. Le nom du document PDF se termine par une
extension «.pdf»
19
(ii). Les données
-le format tabulé est utilisé pour les bases de données et les feuilles de calculs. Il
s'agit d'un fichier ASCII pur, donc sans aucun format, dont chaque ligne comporte un
enregistrement de la base de données, les différents champs étant séparés par des caractères de
tabulation. Les enregistrements sont séparés par des retours chariot. Pour enregistrer un
fichier existant sous le format tabulé, on choisit dans le programme la commande Exporter
ou Enregistrer sous…, que l'on trouve dans tous les programmes de gestion de base de
données.
Les images vectorielles en sont restées à des techniques et à des formats moins
récents, qui sont toutefois aussi efficaces.
-Le format PostScript est le standard absolu pour les images vectorielles. Il a été
développé il y a plus de quinze ans par la maison Adobe. Ce format est celui qui est utilisé
dans les imprimeries pour la production de tout le matériel imprimé, journaux, livres,
plaquettes
Pour les images bitmaps, le problème est un peu plus simple à résoudre, l'arrivée du
Web ayant imposé des formats complètement multi-plateformes.
-Les formats GIF et JPEG: cette extension étant attribuée aux images de taille
inférieure à 256Mo, le transfert de ce type de fichier ne pose aucun problème. Il est toujours
possible de visualiser de telles images à l'aide d'un navigateur Web.
20
1.3. FLEAUX DE LA MESSAGERIE ELECTRONIQUE
a- Les virus
Les virus sont désormais une réalité que tout un chacun doit prendre en compte. Il
est ainsi aujourd'hui primordial, lorsqu'on bénéficie d'un accès à Internet et qu'on utilise le
courrier électronique, d'être bien informé et protégé sur les virus. Un virus est un programme
dont le but est de se reproduire. [16].
Les virus se cachent généralement dans les fichiers attachés, les programmes ou les
documents Word par exemple. Mais depuis le développement du courrier électronique
multimédia (avec mise en page, images, sons, animations, etc.), le virus peut aussi se cacher à
l'intérieur même du mail. Ici, ce n'est plus du texte brut qui constitue l'e-mail, mais du code
HTML, accompagné d'images mais aussi parfois de petits programmes conçus pour le Web.
C'est le cas notamment des contrôles ActiveX (écrits dans un langage développé pour le Web
par Microsoft), qui peuvent exploiter des brèches de sécurité dans Windows. En clair, en
programmant bien, on peut concevoir des virus dans ces langages. Et les diffuser ensuite par
courrier électronique, ni vu ni connu. Il importe donc d'être vigilant si le logiciel de
messagerie utilisé interprète les contrôles ActiveX.
b- Le spamming
Plus précisément, sont notamment considérés comme étant des actes de spamming,
le fait d'écrire à un inconnu pour lui demander de venir visiter un site, d'inclure un individu
dans une liste de diffusion sans son consentement, de diffuser sur un forum de discussion des
messages sans rapport avec le thème de ce dernier. Du simple particulier qui veut faire de la
publicité pour son site perso jusqu'à la PME qui veut promouvoir ses produits à moindre coût.
Généralement les grosses sociétés, pour des questions d'image et d'efficacité, mettent les
formes et respectent un peu mieux les internautes. On parle alors non plus de spam, mais d'e-
mail marketing. Le spamming ne coûte presque rien! L'achat de fichiers d'adresses ou de
logiciels collecteurs d'e-mails se fait à un coût dérisoire. L'envoi des courriers électroniques
ne coûte pas grand chose non plus (il suffit d'avoir une connexion Internet). Enfin, les retours
sont nombreux : même avec un taux de clic faible, un envoi massif à plusieurs millions
21
d'adresses génère quelques milliers de visites! En clair, c’est bénéfique pour l'envoyeur.
[17][18]
c- le mailbombing
22
CHAPITRE 2 :
LE SERVEUR POSTFIX
CONCEPTION DE L’ARCHITECTURE SECURISEE
23
2.1. LE SYSTEME D’EXPLOITATION LINUX
Linux est une version libre d’Unix (le code source du système est disponible
gratuitement et redistribuable) qui connaît actuellement un grand succès, tant chez les
utilisateurs particuliers que sur les serveurs Internet/Intranet.
Linux possède quelques avantages par rapport aux autres systèmes. Tout d'abord,
c'est un système d'exploitation stable : Linux est l'un des systèmes les plus fiables et robustes
existant à l'heure actuelle. En outre, Linux est un logiciel libre (liberté de comprendre le
fonctionnement, de diffuser, et de modifier le logiciel), ce qui permet à tous de corriger les
erreurs, d'effectuer des améliorations et d'adapter le logiciel à ses besoins. Linux est
également un système d'exploitation puissant, capable de fonctionner aussi bien sur de petites
machines que sur de gros calculateurs. C'est un système ouvert, c'est à dire conforme à de
nombreuses normes. Enfin, et ce n'est pas le moindre des avantages, Linux possède un faible
coût. Les distributions Linux sont constituées principalement de logiciels libres. Il est donc
possible d'acheter une distribution puis de l'installer sur d’autres machines.
Par ailleurs, Linux est certainement le système multiutilisateur le plus répandu dans
le monde. Il peut en effet traiter simultanément les travaux de différents utilisateurs (quand il
n’y a qu’un seul processeur, il n’y a pas vraiment de simultanéité, le plus souvent, le système
d’exploitation partage le temps de traitements entre les utilisateurs. On parle alors de système
à temps partagé). En outre, Linux est un système multitâche préemptif, il est capable
d’exécuter plusieurs travaux simultanément pour différents utilisateurs ou pour un seul. Pour
24
ce faire, il optimise la gestion de la mémoire virtuelle : une partition spéciale appelée
« swap » est créée lors de l’installation du système à cet effet. Enfin, Linux est un système
d’exploitation multiplateforme : il fonctionne sans problème sur chaque type de processeur
connu.
Du point de vue structure, Linux est essentiellement bâti autour de trois éléments : le
noyau, le shell et le système de fichier.
25
(i). Le noyau (kernel)
Le rôle principal du noyau est d’assurer une bonne répartition des ressources de
l’ordinateur (mémoire, processeur(s), espace disque, imprimante(s), accès réseaux) sans
intervention des utilisateurs. Il s’exécute en mode superviseur, c’est à dire qu’il a accès à
toutes les fonctionnalités de la machine : accès à toute la mémoire, et à tous les disques
connectés, etc. Tous les autres programmes qui s’exécutent sur la machine fonctionnent en
mode utilisateur : il leur est interdit d’accéder directement au matériel et d’utiliser certaines
instructions. Chaque programme utilisateur n’a ainsi accès qu’à une certaine partie de la
mémoire principale, et il lui est impossible de lire ou écrire les zones mémoires attribuées aux
autres programmes.
En simplifiant, un shell exécute une boucle infinie sur les actions suivantes:
26
- interprétation de cette ligne comme une demande d'exécution d'un programme avec
des paramètres.
- lancement de ce programme avec passage des paramètres.
Le système de gestion de fichier permet une manipulation simple des fichiers et gère
de façon transparente les différents problèmes d’accès aux supports de masse :
c. Fonctionnement en réseau
a. Généralités
27
configuration à la main se fait à un niveau d'abstraction plus élevé, configurer sendmail était
encore un travail non évident. [5]
Par conséquent, d'autres serveurs de mail tels que postfix ont vu le jour. Postfix
risque même de remplacer un jour prochain sendmail compte tenu de sa solidité et de sa
simplicité de configuration.
Postfix est maintenant en version stable bien que la taille du code source du logiciel
reste légère. Il est disponible gratuitement sur de nombreux sites ftp.
b. Objectifs et fonctionnalités
- Une large dissémination. Postfix doit être adopté par un grand nombre de personnes
pour avoir un impact significatif sur l'efficacité et la sécurité du courrier électronique.
C'est pourquoi le programme est distribué comme logiciel libre.
- Performance. Postfix est jusqu'à trois fois plus rapide que son concurrent le plus
proche Qmail. Un PC de bureau avec Postfix peut recevoir et distribuer un million de
messages différents par jour.
28
- Compatibilité. Postfix est conçu pour être compatible avec Sendmail pour rendre la
migration facile. Il supporte de ce fait les fichiers et les concepts manipulés par son
prédécesseur Sendmail.
- Fiabilité et robustesse. Postfix est conçu pour se conduire rationnellement lors des
montées en charge : Quand le système local n'a plus d'espace disque ou de mémoire,
Postfix se retire plutôt que d'aggraver le problème. Par conception, aucun exécutable
du programme ne grossit lorsque le nombre de messages s'accroît, il est conçu pour
rester maître de la situation.
- Flexibilité. Postfix est basé sur une douzaine de petits programmes, chacun d'eux
n’effectuant uniquement qu’une tâche spécifique : recevoir ou distribuer un message
distant, distribuer un message localement, changer une adresse, etc. Les sites avec des
besoins spécifiques peuvent remplacer un ou plusieurs de ces programmes par
d'autres. Il est aussi facile de désactiver une fonctionnalité.
- Sécurité. Postfix utilise plusieurs couches de défense pour protéger le système local
contre des intrus. Presque tous les exécutables de Postfix peuvent fonctionner dans un
répertoire avec des privilèges réduits : environnement chroot. Il n'y a aucun chemin
direct depuis le réseau jusqu'aux exécutables de distribution locale sensible à la
sécurité. Postfix ne fait même pas confiance à ses propres files d'attente, ou au contenu
de ses propres messages. Postfix filtre les informations fournies par l'expéditeur avant
de les exporter dans des variables d'environnement. Enfin, aucun exécutable de Postfix
ne fonctionne en mode setuid (set user identification) c’est à dire que Postfix ne peut
changer les droits et privilèges de ses utilisateurs.
29
serveurs de mail ont généralement besoin de plusieurs niveaux d'alias ou de
redirection pour arriver au même résultat.
- Contrôle du courrier commercial non sollicité (spams). Postfix peut restreindre les
machines qui peuvent être relayées via le système Postfix et supporte des restrictions
sur les courriers autorisés à entrer. Postfix implémente les restrictions habituelles :
listes noires, consultations RBL qui sont une liste des sites spammeurs connus,
vérification expéditeur. L'inspection du contenu n'a pas encore été implémentée.
- Utilisation de tables. Postfix n'implémente pas encore de langage de récriture
d'adresses. Au lieu de cela, il utilise des tables de consultation qui font correspondre
les adresses à réécrire à des adresses valides.
c. Architecture [8]
Figure 2.2 : Les composants de Postfix, et les flux circulants entre eux.
30
(i). Les files d’attente de Postfix
- "maildrop" qui reçoit les messages postés localement (depuis l'hôte lui-même).
- "incoming" (file d’attente entrante) qui reçoit aussi bien les messages postés
localement que ceux qui arrivent du réseau (lorsque par exemple cet hôte est utilisé
comme serveur SMTP pour le réseau local). Les messages qui arrivent dans cette file
ont déjà subi quelques traitements qui seront détaillés plus loin.
- "active" (file d’attente active) est la file qui contient les messages en cours d'envoi.
- "deferred" (différé), contient les messages qui, pour une raison ou une autre, n'ont pu
être envoyés. Le protocole SMTP prévoit en effet de ne pas jeter systématiquement les
messages qui n'ont pu être envoyés. Les messages classés dans "deferred" subiront
plusieurs tentatives d'envoi en étant réinjectés dans "active".
- "mailbox" est la file d'attente des messages destinés aux utilisateurs locaux.
- Les messages du réseau entrent dans Postfix via les serveurs smtpd ou qmqpd. Ces
derniers retirent les enveloppes protocolaires (SMTP ou QMQP), effectuent quelques
contrôles de sécurité pour protéger Postfix, et donnent l'expéditeur, les destinataires et
le contenu du message au serveur cleanup. Le serveur smtpd peut être configuré pour
bloquer les messages indésirables.
- Les soumissions locales sont reçues par la commande compatible sendmail de Postfix
et sont stockés dans la file d'attente maildrop par la commande privilégiée postdrop.
Ce dispositif fonctionne même lorsque le système de messagerie Postfix est arrêté. Le
serveur local pickup reprend ces soumissions locales, effectue quelques contrôles de
sécurité pour protéger Postfix et donne l'expéditeur, les destinataires et le contenu du
message au serveur cleanup.
31
Les messages issus de sources internes sont donnés directement au serveur cleanup.
Ces sources ne sont pas montrées dans la figure 2.3 et incluent : les messages transférés par
l'agent de livraison local, les messages retournés à l'expéditeur et les notifications au
Postmaster à propos des problèmes rencontrés par Postfix.
trivial-
rewrite(8)
Réseau -> smtpd(8) ^|
\ |v
Réseau -> qmqpd(8) -> cleanup(8) -> file d'attente entrante
/
pickup(8) <- maildrop
^
|
Local -> sendmail(1) -> postdrop(1)
Le serveur cleanup implémente le processus final avant que les messages ne soient
mis en file d'attente. Il ajoute les « From : » manquants et d'autres en-têtes de message et fait
une transformation d’adresses. Le résultat est ensuite placé dans un fichier dans la file
d'attente entrante et le serveur notifie au gestionnaire des files d'attente l'arrivée d'un nouveau
message.
32
(iii). La livraison du message [8]
Une fois le message arrivé dans la file d'attente entrante « incoming », l'étape
suivante est la livraison. La figure 2.4 montre les principaux composants de la fonction de
livraison de Postfix.
33
Le gestionnaire maintient une petite file d'attente "active" avec juste quelques
messages prêts pour la livraison. "active" agit comme une petite fenêtre sur les files d'attentes
"incoming"(entrante) ou "deferred"(retardée). Cette méthode évite au gestionnaire de faire des
débordements de mémoire si le serveur est fortement chargé.
L'agent local de la livraison sait gérer plusieurs types de boîtes aux lettres. De
multiples agents locaux de livraison peuvent être exécutés en parallèle, mais la livraison en
parallèle au même utilisateur est habituellement limitée. L'agent de la livraison locale a des
possibilités pour utiliser d'autres moyens de livraison locale : il peut être configuré pour livrer
aux fichiers de boîte aux lettres dans les répertoires locaux d'utilisateur ou même déléguer la
livraison de boîte aux lettres à une commande externe.
Le client smtp recherche une liste d'échangeurs de courrier pour l'hôte de destination,
trie la liste par préférence, et essaye chaque adresse alternativement jusqu'à ce qu'il trouve un
serveur qui répond. Sur un système postfix chargé, plusieurs processus de client de smtp
peuvent fonctionner en parallèle.
Le pipe est l'interface de sortie vers d'autres transports de courrier (Le programme
"sendmail" est l'interface d'entrée).
34
d. Configuration simple [10]
Postfix utilise des bases de données pour le contrôle d'accès et les réécritures
d'adresses.
A chaque changement des fichiers main.cf ou master.cf, le service postfix doit être
relancé en tant que root pour prendre en considération ces changements.
Dans une configuration simple de postfix, les premiers paramètres dignes d'intérêt
indiquent l'identité de la machine et son rôle dans le réseau. Ces paramètres sont :
- Quel domaine afficher dans le courrier sortant : il s’agit du nom de domaine qui
apparaît dans le courrier envoyé à partir de la machine émettrice. La valeur par défaut
est le nom de la machine elle-même.
- De quels domaines recevoir le courrier : ce paramètre indique les domaines pour
lesquels la machine délivrera le courrier localement, au lieu de le transmettre à une
autre machine.
- De quels clients relayer le courrier : La valeur par défaut autorise tous les clients des
sous réseaux IP auxquels la machine est reliée.
- De quelles destinations relayer le courrier.
- Quelle méthode de livraison : directe ou indirecte : Par défaut, Postfix tente de délivrer
le courrier directement sur Internet. Suivant l’environnement, ce n'est pas toujours
possible ou souhaitable. Par exemple, le système peut être éteint en dehors des heures
ouvrées, il peut être derrière un firewall, ou bien encore être connecté via un
fournisseur d'accès qui n'autorise pas la livraison directe du courrier. Dans ces cas,
Postfix doit être configuré pour effectuer les livraisons via un relais.
35
Les valeurs par défaut pour beaucoup d'autres paramètres de configuration sont juste
dérivées de ces derniers.
SASL est une méthode pour ajouter un support d’authentification aux protocoles
orientés connexion tel que TCP.
Le but de l’authentification exposé ici est d’éviter le relayage par des spammeurs. En
effet, sans une bonne politique d’authentification, le serveur peut devenir le cible des
spammeurs et leur servira de relais pour les courriers indésirables : les spammeurs semblent
être des utilisateurs locaux. SASL a pour but de permettre au client de s'authentifier auprès du
serveur. Si le client ne s'authentifie pas, le serveur peut décider de ne pas relayer le message.
[11]
Ce support SASL peut ainsi être utilisé pour authentifier les clients SMTP distants
sur le serveur SMTP de Postfix et pour authentifier le client SMTP de Postfix auprès des
serveurs SMTP distants. Lorsqu'un message arrive, Postfix enregistre le nom d'utilisateur
fourni, la méthode d'authentification et l'adresse de l'expéditeur dans le fichier de logs et
éventuellement autorise l'accès via la restriction anti-spam.
Postfix n'enregistre pas les informations d'authentification SASL dans les en-têtes du
message et ne les passe pas dans les commandes SMTP lorsqu'il transfert le courrier car cela
36
ne regarde pas les autres serveurs. Ceux qui doivent y accéder les trouveront dans les fichiers
de logs. [12]
Pour tester la partie serveur, une connexion au serveur SMTP va être lancée. Pour ce
faire, soit à lancer une session telnet sur le port 25 à notre serveur mail : Les informations
envoyées par le client hoby.electronic.mg sont en gras. Le serveur rianala.electronic.mg
répond aux requêtes du client : les réponses sont précédées par des chiffres commençant par 2
Les échanges s’illustrent comme suit :
Par ailleurs, le support TLS dans Postfix permet de chiffrer les messages et
d'authentifier les clients et les serveurs. Il permet d’activer également des milliers de lignes de
code de la librairie OpenSSL (librairie de chiffrement). Cette partie n’explique cependant pas
les principes et algorithmes de chiffrement tel que SSL mais les exploite seulement pour le
cryptage des messages. Une bonne notion des algorithmes de cryptage à clé publique et clé
privé est nécessaire avant de pouvoir activer le support TLS de Postfix. [13]
37
(ii). L’inspection des contenus des messages [14]
La figure 2.5 présente le fonctionnement de cette inspection intégrée. Elle précise les
travaux de filtrage qui se font pendant que Postfix reçoit le message. Ceci signifie que Postfix
peut le rejeter sans avoir à retourner un avis de non remise à l'expéditeur (qui est souvent
artificielle). Cependant cette capacité a un prix : si l'inspection prend trop de temps, le client
distant risque d'interrompre la livraison (timeout) et recommencer aussitôt.
L'examen des en-têtes/du corps de Postfix est implémenté dans le serveur cleanup
avant qu'il injecte le courrier dans la file d'attente entrante (incoming). La figure 2.6 se
concentre sur le serveur cleanup et montre ses différentes sources.
Notification
du
Postmaster
|
v
Réseau ou ->
Filtrage -> File d'attente -> Agents de -> Réseau ou
utilisateurs locaux intégré Postfix livraison boîtes-aux-lettres locales
^ |
| v
Courrier non-livrable
Courrier transféré
38
bounce
(non-
livrable)
smtpd |
(réseau) \ v
Pour de bonnes raisons, seuls les messages qui entrent depuis l'extérieur de Postfix
sont inspectés. Il serait inutile de refiltrer de messages déjà filtrés et risquerait de bloquer les
notifications du postmaster
Normalement, Postfix reçoit le courrier, le stocke en file d'attente puis le livre. Avec
le filtrage du contenu externalisé, le courrier est filtré APRÈS sa mise en file d'attente. Le
filtrage de contenu après mise en file d'attente est schématisé dans la figure 2.7.
Réseau ou ->
File d'attente -> Filtre de -> File d'attente -> Réseau ou
utilisateurs locaux Postfix contenu Postfix utilisateurs locaux
39
prend trop de temps alors la livraison entrante échoue (timeout) et si trop de mémoire est
nécessaire, le logiciel sera interrompu. Cette méthode n'est disponible que sur les versions 2.1
et supérieures de Postfix.
Le filtrage avancé n'est pas intégré à Postfix pour de bonnes raisons : l'écriture d’un
système de routage du courrier ne se conçoit pas comme l'écriture d'un anti-spam ou d'un anti-
virus. Postfix encourage l'utilisation de filtres externes et de protocoles standards car cela
permet de choisir séparément le meilleur MTA et le meilleur logiciel inspecteur de contenu.
La sécurité informatique c'est l'ensemble des moyens mis en oeuvre pour minimiser
la vulnérabilité d'un système contre des menaces accidentelles ou intentionnelles. Il est
toujours plus commode de sécuriser le serveur que les clients qui lui sont rattachés. En effet,
ceci évite de refaire la configuration de sécurité pour chaque machine cliente. En plus, l’ajout
d’un nouveau client ne remettra pas en cause la politique de sécurité choisi.
Les problèmes liés aux courriers électroniques vus dans le précédent chapitre nous
amène à concevoir une architecture plus sécurisée de notre serveur de courriers.
a. Topologie du réseau
La machine serveur sera placée derrière un firewall pour éviter les intrusions venant
de l’extérieur. Un firewall est un système physique (matériel) ou logique (logiciel) servant
d'interface entre un ou plusieurs réseaux afin de contrôler et éventuellement bloquer la
circulation des paquets de données. Il représente le dispositif à l'entrée du réseau qui permet
de protéger le réseau interne d'éventuelles intrusions en provenance des réseaux externes
(souvent Internet). Le firewall simplifie la gestion de la sécurité et donc l'administration du
réseau car il centralise les attaques potentielles au niveau du firewall plutôt que sur le réseau
tout entier. La figure 2.8 illustre la topologie adoptée pour notre serveur local : Tous les
paquets venant de l’extérieur passent d’abord par le firewall avant d’entrer dans notre réseau
local. Notons que notre serveur sert également de relais pour les courriers extérieurs. [15]
40
Figure 2.8 : Topologie adoptée pour le serveur
Depuis quelque temps, presque la totalité des internautes se plaignent que plus d'un
e-mail sur deux reçus est un spam ou contient un virus. La lutte anti spam et anti virus est
donc devenue une nécessité. Cette partie présente les outils nécessaires à cet effet. Elle
présente entre autres quelques outils de filtrage des messages électroniques qui ont été choisis
afin de pouvoir mieux raffermir la sécurité de notre serveur mail.
Procmail est un logiciel de filtrage sous Linux. Le filtrage repère si le mail répond ou
non à un ou plusieurs critères. Procmail est une commande simple qui permet de faire
beaucoup de choses. Il est très simple de définir des filtres. L'exemple ci-dessous permet de
supprimer les mails contenant dans le sujet « I Love You ». [16]
:0
* ^Subject:.*ILOVEYOU
/dev/null
Il suffit d'adapter cette règle en fonction du sujet (ou du from). Cette autre règle très
utile permet de sauvegarder dans un fichier virus tous les mails arrivant avec les extensions
qui y sont citées.
:0 H
*^Content-type: (multipart/mixed)
{
:0 B
*^Content-Disposition: (attachment|inline)
*filename=".*\.(ocx|vbs|wsf|shs|exe|com|bat|chm|pif|vbe|hta|scr)"
41
{
:0
virus
}
}
Le fichier virus pourra être ouvert en tant que boîte aux lettres avec n’importe quel
logiciel de messagerie.
• Présentation
Spamassassin est un logiciel anti spam, il repose entre autres sur l'analyse heuristique
et bayesienne des e-mails.
• Le filtrage heuristique
• Le filtrage bayésien
Pour cela une base de données de mots et phrases est créée et enrichie au fur et à
mesure de la réception et de l'envoi de mails qui soient valides ou considérés comme spam.
Chaque mot reçoit une valeur calculée en fonction de la probabilité qu'il soit relié à du spam,
elle dépend du nombre de fois que le terme apparaît dans du spam par rapport au nombre de
fois que le même terme est rencontré dans du courrier valide. Par conséquent certains mots
pourront avoir une forte probabilité d'être rattaché à du spam pour certains utilisateurs et pour
d'autres pas. Par exemple, pour une entreprise travaillant dans le domaine médical, le terme
"drug" aura une faible probabilité d'être rattaché à du spam car il est très souvent employé
dans les mails valides, pour d'autres personnes ce terme sera systématiquement rattaché à du
42
spam. Par conséquent le filtre bayésien a la particularité et l'avantage de s'adapter à
l'utilisateur, il réduit le risque des faux positifs (courrier valide considéré comme spam). Par
ailleurs le filtre n'est pas statique, la base de donnée est en constante évolution et donc le filtre
sera de plus en plus performant de jour en jour et s'adaptera en fonction des utilisateurs de
votre réseau et des techniques nouvelles utilisées par les spammeurs.
Exemple concret du dernier point, jusqu'à présent les spammeurs envoyaient des
mails avec des mots du style "sex, free, viagra, ...", il était assez simple de mettre en place un
filtre basé sur des mots clef pour supprimer les mails en question, les spammeurs ont donc
modifié légèrement la sémantique de mots "s-e-x, f r e e" ou bien encore "v$i$a$g$r$a", avec
un simple filtrage par mots clé, il est quasi impossible d'établir une règle efficace pour filtrer
ces mails. Le filtre bayésien n’aura aucun problème pour lui attribuer une valeur de
probabilité de spam élevée.
Autre avantage du filtre bayésien et non des moindres, il s'adapte à toutes les
langues.
En clair pour qu'un spammeur puisse tromper un filtre bayésien il doit connaître
l'utilisateur qu'il veut toucher et éviter d'utiliser les mots que l'utilisateur en question utilise le
moins.
• Configuration de Spamassassin
43
(iii). Mettre en place un anti virus
• Présentation et installation
Clam Anti virus (clamav) est un antivirus qui est totalement libre. La configuration
de clamAv se fait via le fichier /etc/clamd.conf. La commande clamd est la commande qui
sert à lancer l’antivirus en tant que root sur le système.
- Fetchmail permet de chercher les courriers chez le serveur mail du FAI. Il présente
l’avantage de pouvoir crypter les messages venant du serveur distant. [18]
- Procmail sert à trier les courriers dans les différentes boîtes aux lettres locales
Ces deux premiers outils ne seront pas beaucoup détaillés car ils ne servent
généralement qu’à relayer les courriers du serveur SMTP du FAI aux boîtes locaux.
44
Serveur
Mail
externe Réseau externe
Fetchmail
Procmail
Postfix / TLS
Spamassassin
Serveur Mail local
MailScanner et
ClamAv
Serveur
IMAP
Squirrelmail
(Webmail)
45
CHAPITRE 3 :
46
Ce chapitre se focalise surtout sur la partie technique de l’exposé. Il sera vu comme
un guide pratique quant à la configuration de la machine serveur et servira aussi de références
pour le paramétrage des logiciels clients. Comme postfix implémente une multitude d’options
et supporte plusieurs protocoles de gestion du courrier, tous les possibilités offertes ne
pourront pas s’exposer ici. Seules les grandes lignes pour le fonctionnement standard de
l’architecture sécurisée que l’on a conçue dans le deuxième chapitre seront abordées.
Cette partie a été traitée sous la distribution Mandriva Linux 2006. Cependant, les
commandes exposées ici devraient être également compatibles avec les autres distributions de
Linux existant. Dans le cas échéant, d’autres lignes de commandes propres à chaque
distribution sont à pourvoir.
a. Opérations préliminaires
# ifup eth0
Cette commande active ainsi l’interface réseau du serveur. Notons au passage que le
serveur peut implanter plusieurs interfaces réseau. L’activation de chacun d’entre eux est donc
nécessaire.
L’opération qui suit cette première sera le lancement du serveur DNS. Ce serveur,
utile pour établir une correspondance entre les adresses IP et des noms de domaine plus
commode à retenir, hébergera notre domaine electronic.mg . D’autres domaines virtuels
47
informatique.mg et automatique.mg alias du domaine electronic.mg qui ne sont pas intégrés
dans le serveur DNS ont été également ajoutés dans le but d’illustrer le support des domaines
virtuels de Postfix. De plus, un autre domaine espa.mg, domaine virtuel indépendant de
electronic.mg fut également conçu dans ce même but.
Dans notre cas, on a choisi le serveur bind comme serveur DNs. Il a l’avantage
d’être à la fois disponible sur chaque distribution de Linux et d’être facile à configurer. Le
paramétrage de ce serveur est donné en Annexe 2. Le service associé au serveur DNS bind est
appélé named. Ainsi pour démarrer le service, la commande suivante sera tapée :
b. Lancement du serveur
Normalement, comme le service est lancé au boot, on devrait avoir une réponse du
genre : master pid(1923) est en cours d’exécution…Cette réponse indique que le service est
actif et fournit le pid du processus.
Bien qu’il semble que tout le service de courrier marche correctement, notons
qu’aucun message ne sera délivré dans la file d’attente entrante de postfix sans avoir
préalablement passer par les outils de filtrage antivirus et antispam de MailScanner. Tant que
MailScanner ne sera pas lancé, aucun message ne passera. Le lancement de MailScanner se
fait comme suit :
Le paramétrage du serveur SMTP est ainsi fait. Pour pouvoir lire les courriers à
partire des autres machines distantes, un serveur IMAP sera configuré. Notre choix optait
pour le serveur cyrus-imap. Le fichier de configuration de ce serveur devrait aussi être
préconfiguré. L’essentiel de la configuration consiste à indiquer au serveur les répértoires de
48
files d’attente Mailbox. Ce service est également lancé au démarrage. Dans le cas contraire, la
commande suivante est à éditer :
D’autres serveurs restent à configurer dans le cas où les clients ne supportent pas
IMAP et se servent surtout d’un partage NFS pour la lecture des courriers.
Le serveur NFS sert à partager le répertoire des mails à des machines autorisées sur
le réseau. Ainsi, les machines clientes peuvent monter ce répertoire localement et agir comme
si les courriers sont locaux. Les logiciels clients mail habituels supportent ce protocole
d’échange de courrier.
D’autres options sont également possibles pour le serveur. Toutefois, celles exposées
ici s’avèrent suffisantes pour la mise en marche de l’architecture proposée dans le deuxième
chapitre.
a. Le logiciel de messagerie
C’est un logiciel installé sur l'ordinateur qui permet d'envoyer et de recevoir des
messages. Le plus connu des logiciels de messagerie est Outlook Express, mais il en existe
encore d'autres. Il faut configurer ce logiciel pour aller chercher le courrier en paramétrant
l'adresse "POP3" (le plus souvent), de mettre le prestataire "courrier" de l’utilisateur, de même
que préciser l'adresse "SMTP" pour l'envoi. L'adresse "POP3" correspondant au centre postal
49
de réception et l'adresse "SMTP" correspondant au centre postal d'émission. En outre, pour
des raisons purement liées à la sécurité du système, il faut dès la configuration, désactiver
l’affichage des e-mails en mode Web (HTML). Par contre, le mode texte est plus sûr. Donc en
d’autres termes, l’astuce est de désactiver les exécutions automatiques (JavaScript, VbScript,
activex, Java, etc.) : elles activent les virus et les parasites.
• Sécurisation
Un logiciel de messagerie sécurisé ne doit faire que deux choses, c’est à dire
n’affiche qu’en mode texte, autrement dit il ne lance aucun type de fichier automatiquement et
ne se connecte qu’aux deux serveurs d'e-mail (courrier entrant et sortant) et nulle part ailleurs.
Par ailleurs, pour avoir plus de sérénité à l’envoi des courriers, chiffrer les messages
devient le moyen le plus efficace. Outlook Express permet de le faire facilement en ouvrant
une fenêtre de rédaction de message et rédiger le message en clair. POUR CRYPTER le
message, dérouler ensuite le menu OUTILS, puis cliquer sur CRYPTER. Un petit cadenas
bleu vient alors s'afficher dans partie supérieure de la fenêtre du message. Le message sera
crypté à l'envoi. Quand le correspondant recevra ce message, son logiciel le décryptera
automatiquement et l'identifiera par une icône spécifique. Dans Outlook Express, un message
crypté est identifié par ‘ ’.
Finalement, il ne faut pas oublier que sur le Net, notamment avec le courrier
électronique, il est facile d’usurper l’identité c'est-à-dire se faire passer pour un autre (une
banque, un collègue de société ou un associé). Raison de plus pour adopter une technique
supplémentaire pour authentifier l’expéditeur, surtout quand l’information à transmettre a une
importance particulière: la signature numérique. La signature numérique est un dispositif
50
technique, dérivé du cryptage, qui permet d’authentifier le message. En clair, chaque message
émis est crypté avec la clef privée de l’expéditeur ‘E’. Et ne peut donc être lu par les
destinataires qu'avec la clé publique. On est alors sûr que ‘E’ est vraiment l'auteur et que le
contenu du message n'a pas été modifié durant le transport.
Avec Outlook Express, la signature numérique peut aussi se faire assez facilement :
OUVRIR d’abord une FENETRE DE REDACTION de message et REDIGER le message.
Pour signer numériquement le message, dérouler le menu OUTILS, puis cliquer sur SIGNER
NUMERIQUEMENT. Un label rouge vient alors s'afficher à droite dans la partie supérieure
de la fenêtre. Le message sera signé numériquement à l'envoi. Quand le correspondant le
recevra, son logiciel l'identifiera par une icône spécifique. Outlook Express le signale par
exemple par l'icône ‘ ’.
b-Le webmail
C’est un site Web qui remplit les mêmes fonctions que le logiciel de messagerie. Il
n'y a cependant pas besoin d'installer quoi que ce soit sur son ordinateur pour l'utiliser, un
navigateur (comme Internet Explorer) suffit. A ce niveau il n'y a pas de paramétrage à
effectuer (pour un usage courant) : aller sur le site de gestion des courriers et saisir son nom
d'utilisateur et son mot de passe pour arriver sur une page où, lecture et composition de
courrier sont proposées.
• Installation
A propos des conditions d’installations, il faut un serveur Linux, sur lequel sont
installés, entre autres : Bind, Apache2, Apache2-mod_php, php-ini, Apache2-mod_ssl, imap,
postfix, perl, xinetd, ispell. MySQL n'est pas requis, sauf pour certains plugins. Les services
httpd, postfix, xinetd, imap doivent aussi être activés comme la montre l’exemple ci-dessous :
51
# chkconfig imap on (pour faire en sorte qu’à chaque démarrage imap fonctionne)
/*ou bien
#service imap on */
#service xinetd restart (service par laquelle imap dépend pour son fonctionnement)
#service postfix start
Pour installer le webmail en question, il faut :
-télécharger la dernière version de Squirrelmail (squirrelmail-1.4.2.tar.gz : 2.74Mo),
-la décompresser dans un répertoire lisible par le serveur web c'est-à-dire dans
var/www/html/,
-changer le nom du répertoire (mv squirrelmail-1.4.2 squirrelmail),
-créer les deux répertoires de stockage des données et des fichiers joints :
#mkdir –p /var/squirrel/data
#chown apache /var/squirrel/data
#chgrp apache/var/squirrel/data
#mkdir -p /var/squirrel/attachement
#chgrp apache /var/squirrel/attachement
#chmod730 /var/squirrel/attachement
Puis, l’installation se termine par la modification des paramètres dans
/var/www/html/squirrelmail/config en éditant config.php et en modifiant comme suit par
exemple:
52
c- Autres moyens en vracs
- le minitel.
- le téléphone (le courrier est alors lu / enregistré).
- le terminal WAP (téléphone ou assistant personnel).
- messages courts sur son téléphone (SMS).
53
CONCLUSION
Le courrier électronique est considéré comme étant le service le plus utilisé sur
Internet. Son principe repose sur l’utilisation des protocoles textuels dans le transfert des
courriers via les différents serveurs de messagerie ou MTA. Il n'existe qu'un seul protocole
entre MTA : SMTP. Il sert à transférer des mails d'une machine à une autre. Le transfert du
courrier du serveur mail vers le client s’effectue avec d’autres protocoles. Le protocole POP
permet d'aller récupérer son courrier sur le serveur distant. Il est nécessaire pour les personnes
n'étant pas connectées en permanence à Internet afin de pouvoir collecter les mails reçus hors
connexion. En outre, le protocole IMAP est un protocole alternatif au protocole POP3 mais
offrant beaucoup plus de possibilités. Lors de son envoie, le courrier est encodé selon le mode
d’encodage choisi par l’expéditeur et sera ensuite décodé par le logiciel client de messagerie.
Par ailleurs, une solution viable et efficace quant à la gestion des courriers consiste à
opter pour des logiciels libres. Linux offre dans chacune de ses distributions le serveur Postfix
qui a l'ambition d'être rapide, facile à administrer et particulièrement sécurisé tout en étant
suffisamment compatible avec son prédécesseur sendmail pour ne pas dérouter les
utilisateurs.
Une architecture sécurisée d’un serveur mail consiste ainsi à combiner le serveur
Postfix avec d’autres outils de filtrage antivirus et antispam. D’autres solutions libres sont
prévues à cet effet.
54
ANNEXES
55
ANNEXE 1 : Protocoles d’échange et standard d’encodages
L'argument <route-inverse> peut contenir plus d'une boîte aux lettres. On peut y
inscrire une liste de plusieurs boîtes aux lettres dans des hôtes différents. La première boîte
inscrite dans l'argument <route-inverse> doit néanmoins être celle désignant l'émetteur du
message.
56
d'erreur "550 Failure". Cette seconde étape de la procédure peut être répétée autant de fois que
nécessaire.
L'argument <route-directe> peut contenir plus d'une adresse de boîte aux lettres. On
peut y inscrire une liste de boîtes aux lettres dans des hôtes différents. Le premier hôte à être
mentionné dans l'argument <route-directe> sera l'hôte à qui est envoyé cette commande.
DATA <CRLF>
Si elle est acceptée, le récepteur SMTP renvoie une réponse de code "354
Intermediate" et prend en compte toutes les lignes de texte suivantes comme étant le texte du
message. Lorsque la marque indiquant la fin du texte est reçue et enregistrée, le récepteur
SMTP envoie une réponse de code "250 OK".
Comme les données du courrier sont émises sur le même canal de transmission, il
faudra donner un indicateur de fin de données pour que le dialogue requête-réponse puisse
reprendre. SMTP indique la fin des données du message en envoyant une ligne contenant un
point unique. Une procédure de "transparence" est utilisée pour éviter que celle-ci n'interfère
avec le texte de l'utilisateur. Il faut noter ici que les données du message incluent un résumé
d'en-tête comprenant les champs tels que : Date, Subject, To, Cc, From. L'indicateur de fin de
message confirme en outre la transaction de courrier et signale au récepteur-SMTP qu'il peut
désormais traiter les récipiendaires enregistrés pour ce message. Si les données sont
acceptées, le récepteur-SMTP renvoie une réponse de code "250 OK". La commande DATA
ne doit échouer que si la transaction de courrier s'avère incomplète (par exemple, pas de
récipiendaires), ou si les ressources suffisantes pour traiter le courrier ne sont pas disponibles.
57
Exemple 1 : Exemple de procédure SMTP
Cet exemple de séquence SMTP montre un courrier envoyé par ‘ami’, utilisateur de l'hôte
‘wanadoo.un’, à ‘bella’, ‘candy’, et ‘david’ utilisateurs de l'hôte ‘wanadoo.deux’. Nous
supposerons que l'hôte ’un’ contacte l'hôte ‘deux’ directement.
R: 250 OK
R: 250 OK
R: 250 OK
S: DATA
S: <CRLF>.<CRLF>
R: 250 OK
Le courrier a été accepté pour ‘bella’ et ‘david’, ‘candy’ n'avait pas de boîte aux lettres sur
l’hôte ‘deux’.
58
A.1.2. Procédures POP [6]
D’abord, l’hôte serveur lance le service POP3 en écoutant le port TCP 110. Quand
un hôte client souhaite utiliser ce service, il établit une connexion TCP avec l’hôte serveur.
Quand la connexion est établie, le serveur POP3 envoie un message de bienvenue. Le client et
le serveur POP3 échangent alors des commandes et des réponses (respectivement) jusqu’à ce
que la connexion soit fermée ou avortée.
Une session POP3 évolue à travers un certain nombre d’états au cours de sa vie. Une
fois que la connexion TCP a été ouverte et que le serveur POP3 a envoyé le message de
bienvenue, la session entre dans l’état AUTORISATION (AUTHORIZATION). Dans cet
état, le client doit s’authentifier auprès du serveur POP3. Une fois que le client a réussi à faire
cela, le serveur acquiert les ressources associées au dépôt de courrier du client, et la session
entre dans l’état TRANSACTION. Dans cet état, le client demande des actions de la part du
serveur POP3. Quand le client a émis la commande QUIT (quitter), la session entre dans l’état
MISE-A-JOUR (UPDATE). Dans cet état, le serveur POP3 libère les ressources acquises
durant l’état TRANSACTION et dit au revoir. La connexion TCP est alors fermée.
(a)Le Quoted-Printable
Mime-Version : 1.0
Content-Transfert-Encoding : Quoted-Printable.
59
Ce codage est employé pour transformer un texte écrit avec un codage sur 8 bits en
un texte qui ne contiendra que des caractères codables sur 7 bits. Le principe est d’utiliser un
code d’échappement qui est le signe ‘=’. Ce signe signifie que les deux caractères qui suivent
représenteront le code hexadécimal d’un caractère et non le caractère lui-même. L’exemple
qui suit donne un aperçu de quelques caractères codés en Quoted-Printable :
• le é dont le code 8 bits est E9, sera codé sur trois caractères de 7 bits de la façon
suivante : =E9
• De la même façon, le è sera codé =E8.
• le ç donnera =E7
• le à donnera =E0
• Comme le = revêt une signification particulière : C'est le code d'échappement, il sera
lui-même codé en =3D.
(b). Le Base 64
Plus généralement, ce codage permettra de passer non seulement du texte codé sur 8
bits, mais aussi tout type de données constituées d'octets. Dans le Base 64 trois caractères de
8 bits (24 bits au total) sont découpés sous la forme de 4 paquets de 6 bits (toujours 24 bits au
total). Chaque valeur sur 6 bits, comprise donc entre 0 et 3F en hexadécimal, sera symbolisée
par un caractère présent, et avec le même code, dans toutes les versions de code ASCII. La
table d'équivalence est représentée par le tableau A.1 suivant. On remarque que les caractères
choisis sont tous codés sur 7 bits en US-ASCII, mais que la valeur qu'ils représentent n'est
pas leur code ASCII. Par exemple, soit à coder le texte suivant : 012
60
Tableau A.1 : Table d’équivalence entre caractère hexadécimale et binaire 8 bits
caractèr
0 1 2
e initial
Code
30 31 32
ASCII hexa
Code
0011000 0011000 0011001
ASCII
0 1 0
binaire
Equivalent hexadécimal 0C 03 04 32
Caractère équivalent en
M D E y
Base 64
A la fin, 012 donne, une fois codé en Base 64 MDEy. On peut constater surtout que
ces caractères seront transcrits en US-ASCII, donc sur 7 bits. Et pour décoder, il suffit de le
faire dans l'autre sens.
61
ANNEXE 2 : MISE EN PLACE D’UN SERVEUR DNS AVEC BIND
/etc/named.conf :
options {
directory "/var/named";
dump-file "/var/tmp/named_dump.db";
pid-file "/var/run/named/named.pid";
statistics-file "/var/tmp/named.stats";
62
auth-nxdomain yes;
query-source address * port 53;
listen-on port 53 { any; }; } ;
zone "." {
type hint;
file "named.ca";};
zone "0.0.127.in-addr.arpa" {
type master;
file "named.local";};
zone "electronic.mg" IN {
type master;
notify no;
file "electronic.mg.zone" ;
allow-update { key "rndc-key";};};
zone "1.168.192.in-addr.arpa" IN {
type master;
notify no;
file "db.192.168.1";
allow-update { key "rndc-key";};};
key "rndc-key" {
algorithm hmac-md5;
secret"U3rIvWs3VcZzk5j5tbHN/w=="; };
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; 192.168.1/24; 192.168.1.3; } keys { "rndc-
key"; }; };
$TTL 86400
@ IN SOA rianala.electronic.mg.
root.rianala.electronic.mg. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS rianala.electronic.mg.
localhost IN A 127.0.0.1
rianala IN A 192.168.1.1
hoby IN A 192.168.1.2
victor IN A 192.168.1.3
rianala IN A 192.168.1.1
MX 10 rianala.electronic.mg.
electronic.mg IN MX 10 rianala.electronic.mg.
63
ANNEXE 3 : FICHIER DE CONFIGURATION DE POSTFIX
# Paramètres personalisés
64
#Paramètres généraux
myorigin = $mydomain
mydestination = $myhostname localhost.$mydomain localhost $mydomain
mynetworks = 127.0.0.0/8 192.168.1.0/24
relay_domains =
myhostname = rianala.electronic.mg
mydomain = electronic.mg
inet_interfaces = all
mynetworks_style = subnet
delay_warning_time = 1h
smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) (Mandriva Linux)
unknown_local_recipient_reject_code = 450
smtp-filter_destination_concurrency_limit = 2
lmtp-filter_destination_concurrency_limit = 2
smtpd_sasl_path = /etc/postfix/sasl:/usr/lib/sasl2
65
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
66
REFERENCES
[1] http://www.arobase.org/culture/histoire.htm
[2] http://fp3.com/courriel/cestquoi.htm
[3] http://christian.caleca.free.fr/smtp/les_bases.htm
[4] http://www.arobase.org/ecole/entetes-detail.htm
[7] http://www.cri.upsud.fr/info/info.cgi?path=/infomail/principe/fonctionnement/pop3
[9] http://www.arobase.org/ecole/imap.htm
[10] http://www.ext.lmcp.jussieu.fr\enseignement\ye\informatique\app_reseaux\textuel
2003-2004
[13] http://www.grappa.univ-lille3.fr/polys/IP3/sortie004.html
[14] http://www.arobase.org/ecole/ccm-mime.htm
[15] http://www.cscfr.ch/publications/cours_echanges.html
[16] http://www.arobase.org/virus/index.htm
67
[18] http://www.secuser.com/dossiers/spamming_mailbombing.htm
[19] http://www.webenic.enic.fr/_vanoudendycke/linux.htm
[22] Jean François Pujol, Guide du Korn Shell sous Unix, Août 1993, PDF
[23] http://linux.developpez.com/secubook/node22.html
[24] http://www.linux-gull.ch/cours/postfix/general.html
[25] http://x.guimard.free.fr/postfix/goals.html
[26] http://www.christian.caleca.free.fr\smtp\const_smtp.htm
[28] http://x.guimard.free.fr/postfix/index5764.html?page=OVERVIEW.html
[29] http://www.postfix.org/BASIC_CONFIGURATION_README.html
[31] http://www.postfix.org/SASL_README.html
[32] http://www.postfix.org/TLS_README.html
[33] http://www.postfix.org/CONTENT_INSPECTION_README.html
[34] http://webenic.enic.fr/~vanoudendycke/firewall.htm
[35] http://www.funix.org/fr/linux/main-linux.php3?ref=filtrermail&page=menu
[36] http://www.sng.ecs.soton.ac.uk/mailscanner/install/postfix.shtml
[37] http://www.catb.org/~esr/software.html
68
Auteurs : RANDRIAMBOLOLONA Manantena Rianala (**)
VONJISOA RAMILATSIHOARANA Dina (*)
RESUME
Les courriers électroniques se basent essentiellement sur l’utilisation des protocoles
textuels tels que SMTP, POP ou IMAP selon le type du serveur sur lequel sont stockés les
courriers. Le fait que l’on peut lire des messages quel que soit leur forme est dû à un
procédure d’encodage et de décodage bien défini. Les principales sources de problèmes quant
à la sécurité des courriers sont les virus et les spams. Les solutions proposées dans ce
document consistent à adopter des règles et astuces de sécurité au niveau du client et à opter
pour un serveur libre travaillant sous linux : Postfix.
Mots-clés : Linux, SMTP, POP, IMAP, encodage, e-mail, postfix, antispam, antivirus, DNS.
ABSTRACT
Nowadays, e-mail contributes strongly to keep people much closer. E-mails are originally
based on specific sending and receiving protocols such as SMTP and POP. These protocols
respect definite rules to formulate address, subject and all contents otherwise receiver gets
confusing and unreadable message. That is encoding process. Through this evolution comes
the question of security because e-mails become the number one in the hacker’s list target,
one more reason to suggest a secured mail server including successively, firewall, anti spam,
anti virus and mail scanner.
Key words: Linux, SMTP, POP, IMAP, encoding, e-mail, postfix, anti spam, antivirus, DNS.
.