Académique Documents
Professionnel Documents
Culture Documents
Présenté par :
- Monsieur RATOVONIARIVO Iavotra Maherijaona
Présenté par :
- Monsieur RATOVONIARIVO Iavotra Maherijaona
Je remercie en particulier :
Monsieur RASTEFANO Elisée, qui a bien voulu présider la
soutenance;
Les membres du jury :
Madame RABEHERIMANANA Lyliane Irène,
Monsieur HERINANTENAINA Edmond Fils et
Monsieur RAMASOMBOHITRA Nivonjy,
pour avoir accepté d’examiner et pris le soin d’évaluer ce travail malgré
leurs multiples obligations.
Monsieur RAKOTOARISOA Hasina Patrick mon Encadreur de
mémoire, qui a su me consacrer son temps pour nme guider à
réaliser ce mémoire ;
J’oublie pas mes parents, familles ainsi que tous les amis pour leur
soutien autant moral qu’affectif.
Enfin à toutes les personnes qui ont contribué de loin ou de près
à la réalisation de ce présent mémoire.
i
RESUME
Les protocoles SMTP, IMAP, et POP permettent le transfert des mails sur Internet. Suivre
une démarche de sécurisation et adopter une stratégie de sécurité sont essentielles. Pour mettre en
place un serveur mail, le choix est multiple. Parmi ces choix, GNU/Linux est l’un des plus
avantageux. Car il propose des distributions libre, moins cher et disponible au grand publique. Mais
en plus, la mise à jour des corrections des failles est d’actualité, ce qui réduit les failles du système.
Malgré cela, GNU/Linux n’est pas totalement sécurisé puisqu’il y a toujours des attaques
liées aux serveurs mail comme les attaques DDOS qui rendent le système inutilisable ; les attaques
brute force touchant les mots de passe des utilisateurs ; et les spam ; qui sont les plus fréquents et
perturbent les messageries électroniques. Cette perturbation peut causer à une organisation des
dégâts énormes. L’implémentation de solutions de sécurité contres ces différentes menaces devient
primordial. Cette étude a permis de mettre en place les techniques qui assure la protection du
serveur mail en utilisant Rspamd, Fail2ban, Netfilter et clamAv pour renforcer la sécurisation du
système.
ii
TABLE DE MATIERES
REMERCIEMENTS .........................................................................................................................i
RESUME ......................................................................................................................................... ii
TABLE DE MATIERES ................................................................................................................ iii
LISTE DES ABREVIATIONS ..................................................................................................... vii
LISTE DES FIGURES ..................................................................................................................... x
LISTE DES TABLEAUX ...............................................................................................................xi
INTRODUCTION ....................................................................................................................... - 1 -
CHAPITRE 1 : GENERALITES SUR LES RESEAUX INFORMATIQUES .......................... - 2 -
1.1 Notions de base .................................................................................................................. - 2 -
1.1.1 Définitions................................................................................................................... - 2 -
a. Réseau informatique ..................................................................................................... - 2 -
b. Adresse IP .................................................................................................................... - 2 -
c. Protocole ....................................................................................................................... - 3 -
d. DNS .............................................................................................................................. - 3 -
1.1.2 Les modèles réseaux ................................................................................................... - 5 -
a. Modèle en couche ......................................................................................................... - 5 -
b. Le modèle OSI ............................................................................................................. - 5 -
c. Le modèle DOD ou TCP/IP ......................................................................................... - 7 -
1.1.3 Architecture de réseau ................................................................................................. - 8 -
a. Architecture peer to peer .............................................................................................. - 8 -
b. Architecture Client/serveur .......................................................................................... - 8 -
i. Architecture à un niveau ............................................................................................ - 8 -
ii. Architecture à 2 niveaux........................................................................................... - 8 -
iii. Architecture à 3 niveaux ......................................................................................... - 9 -
1.1.4 Le système d’exploitation GNU/Linux ..................................................................... - 10 -
1.2 Serveur mail ..................................................................................................................... - 11 -
1.2.1 Protocoles de communication ................................................................................... - 11 -
a. Protocole d’émission de message ............................................................................... - 11 -
b. Protocole de réception de message ............................................................................. - 11 -
i. POP .......................................................................................................................... - 11 -
iii
ii. IMAP ...................................................................................................................... - 11 -
1.2.2 Architecture d’un serveur mail ................................................................................. - 12 -
a. MTA ........................................................................................................................... - 12 -
b. MDA........................................................................................................................... - 12 -
c. MUA ........................................................................................................................... - 13 -
CHAPITRE 2 : LA SECURITE DES SERVEURS .................................................................. - 15 -
2.1 Définition et terminologie ............................................................................................... - 15 -
2.1.1 Définition .................................................................................................................. - 15 -
2.1.2 Terminologie ............................................................................................................. - 15 -
2.2. Objectifs de la sécurité informatique .............................................................................. - 16 -
2.3 Démarche générale de sécurisation ................................................................................. - 18 -
2.4 Stratégie de sécurité ......................................................................................................... - 19 -
2.4.1 Le principe de moindre privilège .............................................................................. - 19 -
2.4.2 Sécurité par l’hôte ..................................................................................................... - 20 -
2.4.3 La sécurité par réseau ................................................................................................ - 20 -
2.5 Attaques et vulnérabilités ................................................................................................ - 20 -
2.5.1 DOS et DDOS ........................................................................................................... - 20 -
2.5.2 Une attaque de l’homme du milieu ........................................................................... - 22 -
a. Détournement de session ............................................................................................ - 22 -
b. Usurpation d’IP .......................................................................................................... - 24 -
2.5.3 Attaque de mot de passe ........................................................................................... - 24 -
2.5.4 Injection SQL ............................................................................................................ - 24 -
2.5.5 Attaque par logiciel malveillant ................................................................................ - 25 -
2.5.6 Spam ......................................................................................................................... - 28 -
CHAPITRE 3 : SECURISATION DU SERVEUR .................................................................. - 29 -
3.1 Les différentes étapes de mise en place d’un serveur mail .............................................. - 29 -
3.2 Sécurisation ..................................................................................................................... - 29 -
3.2.1 Sécurisation du système ............................................................................................ - 30 -
a. Limitation des services actifs ..................................................................................... - 30 -
b. Gestion des accès et Stratégie local de sécurité ......................................................... - 30 -
3.2.2 Sécurisation du service SSH ..................................................................................... - 31 -
a. Définition .................................................................................................................... - 31 -
iv
b. Configuration ............................................................................................................. - 31 -
3.2.3 Mise en place d’un firewall ....................................................................................... - 32 -
a. Définition .................................................................................................................... - 32 -
b. Netfilter et IPtables ..................................................................................................... - 32 -
i. tables et chaîne ........................................................................................................ - 32 -
ii. Les cibles ................................................................................................................ - 34 -
c. Configuration du firewall au sein du serveur ............................................................. - 35 -
i. Attaque du type SYN Flood .................................................................................... - 37 -
ii. Ping of death ........................................................................................................... - 38 -
3.2.4 Anti Brute Force ....................................................................................................... - 38 -
a. Installation .................................................................................................................. - 39 -
b. Configuration ............................................................................................................. - 39 -
3.2.5 Lutte anti-spam ......................................................................................................... - 40 -
a. Installation de rspamd ................................................................................................. - 41 -
b. Configuration ............................................................................................................. - 41 -
c. DMARC ..................................................................................................................... - 42 -
i. Correspondance des noms de domaines .................................................................. - 43 -
ii. Domaine organisationnels ...................................................................................... - 43 -
iii. Recherche d’un enregistrement DMARC ............................................................. - 43 -
d. DKIM ......................................................................................................................... - 44 -
i. Principe .................................................................................................................... - 44 -
3.2.6 Mise en place de l’antivirus ClamAV ....................................................................... - 46 -
CHAPITRE 4 : RESULTATS ET INTERPRETATIONS ....................................................... - 48 -
4.1 Test du firewall ................................................................................................................ - 48 -
4.2 Test de l’efficacité de fail2ban ........................................................................................ - 49 -
4.3 Test de l’efficacité de rspamd .......................................................................................... - 50 -
4.4 Test de ClamAv ............................................................................................................... - 51 -
4.5 Amélioration .................................................................................................................... - 52 -
4.5.1 Chiffrement des communications ............................................................................. - 52 -
a. Chiffrement symétrique .............................................................................................. - 52 -
b. Chiffrement asymétrique ............................................................................................ - 54 -
c. Le protocole SSL ........................................................................................................ - 55 -
v
4.5.2 Surveillance et audit .................................................................................................. - 56 -
a. Système de détection d’intrusion................................................................................ - 56 -
b. Système de sauvegarde............................................................................................... - 57 -
CONCLUSION ......................................................................................................................... - 58 -
ANNEXE A : QUELQUES DIFFERENCES ENTRE RSPAMD, SPAMASSASSIN ET
DSPAM ..................................................................................................................................... - 59 -
ANNEXE B : Le protocole TCP/IP .......................................................................................... - 60 -
REFERENCES .......................................................................................................................... - 65 -
vi
LISTE DES ABREVIATIONS
BIND : Berkley Internet Name Domain
DDOS : Distributed Denial Of Service
DES : Data Encryption Standard
DF : Don’t Fragment
DKIM : Domain Keys Identified Mail
DMARC : Domain-Based Message Authentication, Reporting and Conformance
DNS : Domain Name Service
DOD : Departement Of Defense
DOS : Denial Of Service
DSA : Digital Signature Algorritm
EICAR : European Institute for Computer Ani-Virus Research
EOM : End Of Message
FTP : File Transfert Protocol
GTUBE : Generic Test for Unsolicited Bulk Email
HIDS : Host Based Intrusion Detection
HTTP : Hyper Text Transfert Protocol
ICMP : Internet Control Message Protocol
IDS : Intrusion Detection System
IETF : Internet Engineering Task Force
IMAP : Internet Message Access Protocol
IP : Internet Protocol
ISO : International Standard Organization
J2EE : Java 2 Enterprise Edition
LAN : Local Area Network
LDAP : LightWeight Directory Acess Protocol
MAN : Metropolitan Area Network
vii
MDA : Mail Delivery Agent
MF : More Fragment
MitM : Main in the Middle
MTA : Mail Transfert Agent
MUA : Mail User Agent
NAT : Network Address Translation
NIDS : Network Based Intrusion Detection System
OSI : Open System Interconnection
P2P : Peer to Peer
POP : Post Office Protocol
RAID : Redundant Array of Independent Disks
RC : Rivest Cipher
RPM : RedHat Package Manager
RSA : Rivest Shamir Adleman
RST : Reset
SAP : Service Access Point
SGBD : Système de Géstion de Base de Données
SMS : Short Message Service
SMTP : Simple Mail Transfert Protocol
SMTPS : Simple Mail Transfert Protocol Secure
SPF : Sender Policy Framework
SQL : Structured Query Language
SSH : Secure Shell
SSI : Sécurité des Systèmes Informatique
SSL : Secure Socket Layer
TCP : Transmission Control Protocol
TLS : Transport Layer Security
viii
TOS : Type Of Service
TTL : Time To Live
UDP : User Datagram Protocol
WAN : Wide Area Network
ix
LISTE DES FIGURES
Figure 1.1 : Arborescence des noms de domaines ...................................................................... - 4 -
Figure 1.2 : Modèle de référence OSI ......................................................................................... - 6 -
Figure 1.3 : Correspondance entre les modèles DOD et OSI...................................................... - 7 -
Figure 1.4 : Architecture client/serveur à 2 niveaux ................................................................... - 9 -
Figure 1.5 : Architecture à 3 niveaux .......................................................................................... - 9 -
Figure 1.6 : Le transfert d’un courriel d’un expéditeur à un destinataire. ................................. - 13 -
Figure 2.1 : Les trois objectifs principaux de la SSI ................................................................. - 17 -
Figure 2.2 : Spirale de la sécurité .............................................................................................. - 19 -
Figure 2.3 : Reniflement de paquet ........................................................................................... - 23 -
Figure 2.4 :Attaque de l’homme de milieu ............................................................................... - 23 -
Figure 3.1 : IPtalbes : les cinq points où peuvent s’appliquer les chaînes ................................ - 33 -
Figure 3.2 : Syntaxe d’écriture d’une règle IPtables ................................................................ - 34 -
Figure 3.3 : Règle IPtables pour bloquer les bogus TCP flag ................................................... - 38 -
Figure 3.4 : Activation des règles anti brute force du service SSH .......................................... - 39 -
Figure 3.5 : Exemple de signature jointe en en-tête d’un email ................................................ - 45 -
Figure 4.1 : Résultat du scan de ports avec nmap ..................................................................... - 49 -
Figure 4.2 : Tentatives de connexion en SSH ........................................................................... - 50 -
Figure 4.3 : Fichier mail.log après l’envoi de spam .................................................................. - 51 -
Figure 4.4 : Le fichier log après détection de virus ................................................................... - 51 -
Figure 4.5 : Chiffrement symétrique ......................................................................................... - 53 -
Figure 4.6 : Chiffrement asymétrique ....................................................................................... - 54 -
Figure 4.7: Signature électronique ............................................................................................ - 55 -
Figure 4.8 : Insertion de SSL entre la couche réseau TCP/IP et la couche application ........... - 56 -
Figure A.1 : Format des fragments TCP .................................................................................. - 60 -
Figure A.2 : Exemple de connexion réussie ............................................................................. - 62 -
Figure A.3 : Format du paquet IP ............................................................................................. - 63 -
x
LISTE DES TABLEAUX
xi
INTRODUCTION
Actuellement, l’utilisation d’internet est incontournable. Il nous offre des services qui
nous sont utiles dans la vie quotidienne. L’accès à l’information et les communications à longue
distance sont devenus faciles et à de très faible coût. La messagerie électronique est un moyen
de communication et de correspondance qu’offre l’internet. Des partages de documents
confidentiels se font à travers elle. Cependant, ce système présente des problèmes de sécurité
qui pourrait engendrer des pertes de données et des disfonctionnements du service.
Il est donc nécessaire de mettre en place un serveur mail sécurisé et fiable pour assurer
la confidentialité et l’intégrité des données et la disponibilité du service. C’est le thème de ce
mémoire qui s’intitule : « Sécurisation d’un serveur mail multi-domaines sous linux ».
Pour se faire ce travail est composé de quatre chapitres. Le premier récapitule les notions
de base sur les réseaux informatiques. Les notions en sécurité des systèmes informatique est
abordées dans le deuxième. La réalisation et l’implémentation des solutions de sécurité fait
l’objet du troisième. Et le résultat des configurations effectuées et les éventuelles améliorations
sont présentés dans le dernier.
-1-
CHAPITRE 1 : GENERALITES SUR LES RESEAUX
INFORMATIQUES
Suivant la distance qui sépare les ordinateurs, il existe plusieurs catégories de réseaux [1] :
- Les LAN ou Local Area Network qui correspondent à des réseaux d’entreprise dont la
distance entre les ordinateurs peut atteindre plusieurs centaines de mètres,
- Les MAN ou Metropolitan Area Network qui correspondent à une interconnexion de
quelques bâtiments se trouvant dans une ville,
- Les WAN ou Wide Area Network destinés à transporter des données à l’échelle d’un
pays. Ces réseaux sont appelés réseaux étendus.
b. Adresse IP
L’adresse IP (Internet Protocol) est un nombre assigné à chaque machine connectée à
un réseau qui utilise le protocole IP pour communiquer. Actuellement, il existe deux version
d’adresse IP qui sont l’IPv4 et l’IPv6 [2] :
L’IPv4 défini chaque adresse IP nombre composé de 32 bits ou quatre octets pointés de
la forme xxx.xxx.xxx.xxx où chaque octet représente un nombre compris entre 0 et 255. Cette
adresse IP se compose de deux parties, l’une destinée à identifier le réseau et l’autre pour la
machine connectée au réseau.
Comptes tenu des nombreuses plages d’adressages inexploitées par IPv4 (réservées aux
réseaux privés, à la boucle localhost, etc) le protocole IPv4 n’autorise l’usage effectif que de
quelques millions d’adresses sur les 4,3 milliards (232) théoriques possibles. On a ainsi élaboré
IPv6, assurant un adressage hiérarchique sur 128 bits (8 16 octets), ce qui autorise 2128 adresses.
-2-
Les adresses IPv6 peuvent être représentées de trois manières :
- Forme préférée
Exemple : 5F06:0000:0000:A100:0000:0800:200A:3FF7
- Forme compressée
Exemple : 5F06::A1
00:0000:0800:200A:3FF7
- Forme mixte
Quand on est dans un environnement IPv4 et IPv6, il est possible d’utiliser une
représentation de la forme : « x:x:x:x:x:x:d.d.d.d », où les x représentent la valeur hexadécimale
des 6 premiers blocs de 2 octets et les d les valeurs décimales des 4 derniers octets de l’adresse
(2 d sont «équivalent » à un x).
Exemple : 5F06::A100:0000:0800:32.10.63.247
c. Protocole
Le protocole est l’ensemble des règles et des procédures à respecter pour l’échange des
informations entre deux entités de même niveau. Dans le domaine du réseau informatique, les
protocoles sont les langages que les ordinateurs utilisent pour se communiquer entre eux
indépendamment de la liaison [3].
d. DNS
Le service de résolution de noms ou DNS, Domain Name System en anglais, est une
base de données distribuée contenant les noms de machines connectées à Internet. Alors que
les hommes préfèrent utiliser des noms intelligibles pour s’adresser à des machines où
s’exécutent des services réseau, les machines font appel au service de résolution de noms pour
convertir ces noms en adresses IP afin de communiquer entre elles [4].
-3-
Utilisé principalement pour faire cette correspondance nom de machine et adresse IP et
réciproquement, le DNS est également indispensable pour le bon fonctionnement du système
de messagerie électronique. En effet, il permet de déterminer quelle est la machine gérant le
courrier électronique pour un domaine donné.
Ces noms de machine ou encore appelés nom de domaine désignent une chaîne de
caractères associée à l’adresse IP. La structure des domaines est hiérarchique, en d’autres
termes, il y aura des grands domaines qui va contenir des sous-domaines [4].
Au niveau supérieur se trouve les domaines qui caractérisent un pays comme .fr pour la
France, .us pour les Etats-Unis, .mg pour Madagascar et les domaines fonctionnels comme :
Com pour les organisations commerciales ; Edu pour les institutions académiques, Org pour les
organisations institutionnelles ou non ; etc.
-4-
1.1.2 Les modèles réseaux
Bon nombre de réseaux ont été mis sur pied à l'aide de plates-formes matérielles et
logicielles différentes. Toutefois, cette conception s’est traduite par une incompatibilité entre
de nombreux réseaux informatiques [5].
Pour pallier ce problème, les constructeurs se sont penchés sur des modèles permettant
d’assurer une interopérabilité accrue entre des réseaux fondés sur des spécifications différentes.
a. Modèle en couche
Un modèle en couches est une superposition de protocoles assurant chacun une fonction
particulière. Chaque niveau d’une machine donnée ne communique qu’avec son alter ego sur
les autres stations du réseau [6]. Ainsi, les échanges de même niveau doivent être standardisés
pour qu’un dialogue correct puisse s’établir.
Les données à transmettre sur le réseau partent de la plus haute couche de la machine
source, traversent toute la hiérarchie de la pile de protocoles jusqu’au niveau le plus bas, puis
sont transférées sur le média physique. En traversant chaque couche, les informations sont
encapsulées dans des structures spécifiques à chaque protocole. Une fois à destination, les
données remontent la pile et les opérations inverses sont effectuées par chaque couche
homologue pour aboutir au processus de réception pour qui elles sont dédiées.
b. Le modèle OSI
Le modèle OSI (Open System Interconnection) a été mis au point par l’organisme de
normalisation ISO (International Standard Organisation) à partir de 1978 [7].
-5-
Figure 1.2 : Modèle de référence OSI
Couche application : Elle fournit les protocoles nécessaires aux applications utilisateurs
devant accomplir des tâches de communication.
Couche présentation : Gérant la syntaxe de transfert, cette couche traduit les différentes
représentations des données en un format réseau commun.
Couche transport : Cette couche garantit la fiabilité du transport des paquets entre deux
systèmes hôtes et assure le contrôle du flux de données.
Couche réseau : Elle prend en charge la sélection du chemin optimal pris par les paquets
pour aboutir à leur destination.
Couche liaison de données : En plus d’assurer le transit fiable des données sur le média,
la couche liaison s’occupe de la notification des erreurs.
-6-
Couche Physique : Cette couche définit les caractéristiques du matériel nécessaire à la
propagation du signal dans le média physique.
Ce modèle comporte quatre couches seulement ce qui le rend plus « performant » qu’un
strict modèle OSI [7].
-7-
1.1.3 Architecture de réseau
Il existe deux modes de connexion de réseau : le mode Peer to Peer (P2P), et le mode
client/serveur.
b. Architecture Client/serveur
Un serveur est un ordinateur spécialisé dans la fourniture et le stockage des ressources
partagées par les utilisateurs du réseau et un Client est un ordinateur qui accède à ces ressources
[6].
i. Architecture à un niveau
L’architecture à un niveau est un système client/serveur pour lequel le client et le serveur
se trouvent sur un seul ordinateur. Ce dernier utilise l’adresse appelée loopback qui est l’adresse
127.0.0.1.
-8-
Figure 1.4 : Architecture client/serveur à 2 niveaux
- le serveur secondaire (généralement un serveur de base de données), qui fournit les ressources
au précédent (niveau 3).
-9-
Remarque : Afin de fournir son propre service, un serveur peut utiliser ceux d’un ou plusieurs
autres serveurs. C’est l’architecture multi-niveaux ou à N niveaux.
Debian : Distribution non commerciale régie par le contrat social Dedian. Elle se
distingue par le très grand nombre d'architectures soutenues et, de ce fait, par son cycle
de développement relativement long, entraînant la stabilité des versions.
Redhat : Distribution commerciale qui a créé le gestionnaire de paquets RPM (Redhat
Package Manager) utilisé également par d'autres distributions. Mandrake fut la première
à la reprendre intégralement.
Slackware : Une des plus anciennes distributions existantes. En 1995, Slackware est
toujours activement maintenue par son créateur Patrick Volkerding. Slackware Linux
est particulièrement adaptée aux utilisations serveur, on peut la considérer comme la
distribution la plus pure de GNU/Linux.
OpenSUSE : C’est une distribution communautaire destinée tant à un usage grand
public qu'à un usage professionnel. Elle est sponsorisée principalement par SUSE qui
l'utilise comme base pour ses solutions commerciales destinées aux entreprises. C'est
une distribution indépendante réputée pour ses outils de configurations et sa stabilité
ArchLinux : Une distribution communautaire sans versions : elle est en mise à jour.
Elle dispose toujours des dernières versions des logiciels disponibles, grâce à une
communauté de développeurs très active. Cette distribution ultralégère a été inspirée par
Crux Linux, suivant le principe KISS de simplicité technique. Son absence d'outils
spécifiques (excepté son gestionnaire de paquets, pacman), en fait une distribution
adaptée à la découverte de l'administration des systèmes GNU/Linux.
- 10 -
1.2 Serveur mail
1.2.1 Protocoles de communication
Pour acheminer les messages électroniques, un serveur nécessite deux protocoles qui
sont le protocole d’émission de message et le protocole de réception de message.
ii. IMAP
IMAP signifie Internet Message Access Protocol, tout comme POP, c'est un protocole
de récupération de mails. Mais ce qui fait sa particularité c'est qu'avec le protocole IMAP, les
- 11 -
mails restent stockés dans des dossiers sur le serveur et permet de proposer de nombreuses
fonctionnalités très pratiques comme par exemple recopier sur le serveur des messages qui sont
en local, effacer ou déplacer des messages sans les lire avec des règles de tri automatique [11].
IMAP est donc une version améliorée de POP3 qui intègre les opérations suivantes [12] :
- La gestion de plusieurs accès simultanés
- La gestion de plusieurs boîtes aux lettres
- La synchronisation des courriels entre le serveur et le client
a. MTA
C'est un agent qui permet d'acheminer le courriel d'un serveur à un autre. Le MTA de
l'émetteur transfère le mail vers le MTA du récepteur. Il implémente un protocole sortant.
Notons que les protocoles sortants permettent de gérer la transmission du courrier entre les
systèmes de messagerie. Le protocole sortant généralement utilisé est le SMTP. Il existe
plusieurs MTA qui implémentent SMTP. Parmi les plus connus, il y a Postfix, Exim, Qmail et
Sendmail [10].
b. MDA
Un MDA marque la fin de l’acheminement du mail vers la destination. C’est le MDA
qui reçoit le message du MTA et se charge de le placer dans la boite aux lettres de l’utilisateur,
il doit donc gérer les éventuels problèmes tel qu’un disque plein ou une boite aux lettres
corrompue et doit impérativement signaler au MTA toute erreur de délivrance.
Un MDA assure également des fonctions utilisateurs telles que la réponse automatique
quand la personne est indisponible [10].
- 12 -
c. MUA
Le MUA est un programme qui sert à lire, écrire, répondre et recevoir des messages. Il
présente une interface graphique riche à la disposition de l’utilisateur, il compose un courriel et
l’envoie à un MTA [10].
Un MUA comporte des méthodes pour accéder à une boite de réception tels que les
protocoles POP et IMAP [12].
Tout comme les autres agents, il existe également plusieurs MUA comme Thunderbird
et Outlook.
Un MUA avec une interface Web, est appelé Webmail comme roundcube, squirrelmail,
etc.
La figure 1.6 montre l’envoie d’un mail d’un expéditeur à un destinataire.
- 13 -
1) Le mail saisi par l’expéditeur est transmis au MTA par l’intermédiaire du MUA.
2) Le MTA du système de l’émetteur établit un canal de transmission avec le MTA du
système du destinataire, et transmet le message au MTA du système destinataire.
3) Dans le système du destinataire, le MTA transmet le courrier reçu au serveur IMAP ou
POP.
4) Le MDA récupère le courriel et le met à disposition du MUA.
- 14 -
CHAPITRE 2 : LA SECURITE DES SERVEURS
La sécurité des systèmes informatique est un très vaste domaine. Nous aborderons dans
ce chapitre quelques notions de base sur la sécurité informatique. Ensuite les problèmes de
sécurité liés aux serveurs en particulier.
2.1.2 Terminologie
La sécurité informatique utilise un vocabulaire bien défini. De manière à bien
comprendre, il est nécessaire de définir certains termes [14] :
Les vulnérabilités : ce sont les failles de sécurité dans un ou plusieurs systèmes. Tout
système vu dans sa globalité présente des vulnérabilités, qui peuvent être exploitables
ou non.
Les attaques ou exploits : elles représentent les moyens d'exploiter une vulnérabilité.
Il peut y avoir plusieurs attaques pour une même vulnérabilité mais toutes les
vulnérabilités ne sont pas exploitables.
Les contre-mesures : ce sont les procédures ou techniques permettant de résoudre une
vulnérabilité ou de contrer une attaque spécifique (auquel cas il peut exister d'autres
attaques sur la même vulnérabilité).
Les menaces : ce sont des adversaires déterminés capables de monter une attaque
exploitant une vulnérabilité.
- 15 -
2.2. Objectifs de la sécurité informatique
Le système d'information représente un patrimoine essentiel de l'organisation, qu'il
convient de protéger. La sécurité informatique consiste à garantir que les ressources matérielles
ou logicielles d'une organisation sont uniquement utilisées dans le cadre prévu [13].
La sécurité des systèmes d'information vise les objectifs suivants (fig 2.1) :
Confidentialité : seules les personnes autorisées peuvent avoir accès aux informations
qui leur sont destinées (notions de droits ou permissions). Tout accès indésirable doit
être empêché.
Authentification : les utilisateurs doivent prouver leur identité par l'usage de code
d'accès. Il ne faut pas mélanger identification et authentification : dans le premier cas,
l'utilisateur n'est reconnu qua par son identifiant, tandis que dans le deuxième cas, il doit
fournir un mot de passe ou un élément que lui-seul connaît. Cela permet de gérer les
droits d'accès aux ressources concernées et maintenir la confiance dans les relations
d'échange.
Intégrité : les données doivent être celles que l'on attend, et ne doivent pas être altérées
de façon fortuite, illicite ou malveillante. En clair, les éléments considérés doivent être
exacts et complets. Cet objectif utilise généralement des méthodes de calculs de
checksum ou de hachage.
Disponibilité : l'accès aux ressources du système d'information doit être permanent et
sans faille durant les plages d'utilisation prévues. Les services et ressources sont
accessibles rapidement et régulièrement.
- 16 -
Figure 2.1 : Les trois objectifs principaux de la SSI
D'autres aspects peuvent aussi être considérés comme des objectifs de la sécurité des systèmes
d'information, tels que :
La traçabilité ou preuve : garantie que les accès et tentatives d'accès aux éléments
considérés sont tracés et que ces traces sont conservées et exploitables.
La non-répudiation et l'imputation : aucun utilisateur ne doit pouvoir contester les
opérations qu'il a réalisées dans le cadre de ses actions autorisées et aucun tiers ne doit
pouvoir s'attribuer les actions d'un autre utilisateur.
- 17 -
2.3 Démarche générale de sécurisation
La démarche de sécurisation des systèmes d’information adopte une spirale évolutive
régulière (fig 2.2) : la fin d'un cycle entraîne le début d'un nouveau [13]. En effet, elle doit
évoluer avec l’environnement, les besoins de sécurité, le progrès des techniques d’attaques, la
découverte de nouvelles vulnérabilités.
La démarche consiste à :
Cette étape consiste à rechercher des éventuelles failles de sécurité et menaces et leurs
conséquences sur le système à sécuriser. On parle de « cartographie des risques ». De la qualité
de cette cartographie dépend la qualité de la sécurité qui va être mise en œuvre.
Étape difficile des choix de sécurité : dans un contexte de ressources limitées (en temps,
en compétences et en argent), seules certaines solutions pourront être mises en œuvre.
- 18 -
Figure 2.2 : Spirale de la sécurité
- 19 -
2.4.2 Sécurité par l’hôte
La stratégie la plus courante de sécurité informatique consiste à renforcer la sécurité sur
les serveurs. Chaque machine hôte fera ensuite l’objet d’une sécurisation indépendante. Le
principal frein à une sécurisation effective des serveurs tient à la complexité et à la diversité
de ces derniers. De plus, ce principe ne fonctionne pas sur des machines individuelles et ne
correspond pas non plus à l’échelle d’un vaste réseau sous peine d’un travail humain excessif.
Ce modèle inclut donc la réalisation de systèmes de filtrage puissants que sont les pares-
feux pour restreindre les communications entre le réseau interne à protéger et le réseau
extérieur.
- 20 -
Il existe plusieurs types d’attaques DOS, en voici quelques exemples avec leurs contre-
mesures :
- Placer les serveurs derrière un pare-feu configuré pour bloquer les paquets SYN
entrants. (Cf. ANNEXE B)
- Augmentez la taille de la file d’attente de connexion et diminuez le délai d’attente pour
les connexions ouvertes.
Teardrop : Le principe de l'attaque Teardrop consiste à insérer dans des paquets fragmentés
des informations de décalage erronées. Ainsi, lors du réassemblage il existe des vides ou des
recoupements, pouvant provoquer une instabilité du système.
ATTAQUE Smurf : Cette attaque implique d’usurper une adresse IP et d’utiliser l’ICMP
(Internet Control Message Protocol) pour saturer de trafic un réseau cible. Cette méthode
d’attaque utilise des demandes d’écho ICMP ciblant des adresses IP de diffusion. Ces demandes
ICMP proviennent d’une adresse usurpée. Si, par exemple, l’adresse de la victime choisie est
10.0.0.0.10, l’attaquant simule une demande d’écho ICMP de 10.0.0.0.10 à l’adresse de
diffusion 10.255.255.255.255. Cette demande est envoyée à toutes les adresses IP de la plage,
et toutes les réponses sont renvoyées à 10.0.0.0.10, submergeant ainsi le réseau. Ce processus
est répétable et peut être automatisé en vue de générer des encombrements considérables sur le
réseau.
Contre-mesure : Désactiver les diffusions dirigées par IP vers les routeurs. Ceci bloquera les
demandes d’écho ICMP au niveau des périphériques réseau. Une autre option consiste à
configurer les systèmes d’extrémité de manière à les empêcher de répondre aux paquets ICMP
provenant des adresses de diffusion.
- 21 -
Ping of death : Ce type d’attaque envoie des requêtes ICMP à un système cible avec des
paquets IP dont la taille est supérieure au maximum de 65 535 octets. Les paquets IP de cette
taille ne sont pas autorisés, le pirate les fragmente donc. Lorsque le système cible réassemble
les paquets, il peut subir des débordements de tampon et d’autres plantages.
Ces attaques peuvent être bloquées à l’aide d’un pare-feu qui vérifie la taille maximale des
paquets IP fragmentés.
a. Détournement de session
Dans ce type d’attaque MitM, un attaquant détourne une session entre un client de
confiance et un serveur réseau. L’ordinateur attaquant substitue son adresse IP au client de
confiance pendant que le serveur poursuit la session, croyant qu’il communique avec le client.
Par exemple, l’attaque pourrait se dérouler ainsi :
- 22 -
Figure 2.3 : Reniflement de paquet
- 23 -
b. Usurpation d’IP
Un pirate peut utiliser l’usurpation d’adresse IP pour convaincre un système qu’il
communique avec une entité connue et fiable afin de lui donner accès au système. Le pirate
envoie à un hôte cible un paquet contenant l’adresse IP source d’un hôte connu et fiable au lieu
de sa propre adresse IP source. Il est possible que l’hôte cible accepte le paquet et agisse en
conséquence.
Les attaques par force brute consistent à adopter une approche aléatoire : essayer
différents mots de passe en espérant que l’un d’entre eux fonctionnera. Une certaine
logique peut être appliquée : essayer des mots de passe liés au nom de la personne, à
son poste, à ses passe-temps ou à des éléments similaires.
Dans une attaque par dictionnaire, un dictionnaire des mots de passe courants est utilisé
pour tenter d’accéder à l’ordinateur et au réseau d’un utilisateur. Une approche consiste
à copier un fichier chiffré contenant les mots de passe, à appliquer le même chiffrement
à un dictionnaire des mots de passe couramment utilisés et à comparer les résultats.
Pour se protéger contre les attaques par dictionnaire ou par force brute, on doit mettre en œuvre
une politique de verrouillage des comptes qui verrouillera un compte après quelques tentatives
infructueuses de saisie du mot de passe.
- 24 -
des commandes SQL prédéfinies. Un exploit d’injection SQL réussi peut lire les données
sensibles de la base de données, modifier (insérer, mettre à jour ou supprimer) les données de
la base de données, exécuter des opérations d’administration de la base de données (par exemple
la fermer), récupérer le contenu d’un fichier spécifique, et, dans certains cas, envoyer des
commandes au système d’exploitation.
Par exemple, le formulaire Web d’un site Web peut demander le nom de compte d’un
utilisateur, puis l’envoyer à la base de données afin d’extraire les informations de compte
associées à l’aide de SQL dynamique, comme ceci :
Même si cela fonctionne pour les utilisateurs qui saisissent correctement leur numéro de
compte, cela laisse un passage aux attaquants. Si, par exemple, quelqu’un décidait de fournir
un numéro de compte “‘ or ‘1’ = ‘1’”, cela donnerait une chaîne de requête comme celle-ci :
Puisque ‘1’ = ‘1’ est toujours évalué comme TRUE, la base de données renvoie les données de
tous les utilisateurs au lieu d’un seul.
La vulnérabilité à ce type d’attaque informatique est liée au fait que SQL ne fait aucune
distinction réelle entre le plan de contrôle et le plan de données. Pour cette raison, les injections
SQL fonctionnent surtout si un site Web utilise SQL dynamique. De plus, les injections SQL
sont très courantes avec les applications PHP en raison de la prévalence des anciennes interfaces
fonctionnelles. Les applications J2EE sont moins sensibles aux injections SQL en raison de la
nature des interfaces programmatiques disponibles.
- 25 -
Macro-virus :
Ils infectent des applications comme Microsoft Word ou Excel. Les macro-virus s’attachent
à la séquence d’initialisation de l’application. Lorsque l’application est ouverte, le virus
exécute ses instructions avant de transférer le contrôle à l’application. Le virus se réplique
et s’attache à d’autres codes du système informatique.
Infecteurs de fichiers :
Ils s’attachent généralement à des codes exécutables, comme les fichiers .exe. Le virus est
installé au chargement du code. Une autre version d’infecteur de fichiers s’associe à un
fichier en créant un fichier de virus portant le même nom, mais avec une extension .exe.
Ainsi, lorsque le fichier est ouvert, le code du virus s’exécute.
Ils s’attachent au secteur d’amorçage principal des disques durs. Quand le système démarre,
il consulte le secteur d’amorçage et charge le virus en mémoire, où celui-ci peut se propager
à d’autres disques et ordinateurs.
Virus polymorphes :
Ce sont des virus qui ont la capacité de changer de forme à chaque reproduction pour
déjouer les mécanismes de détection de virus par les antivirus.
Chevaux de Troie :
Ce sont des programmes qui se cachent dans un programme utile et qui ont généralement
une fonction malveillante. Une différence majeure entre les virus et les chevaux de Troie
est que ces derniers ne se répliquent pas d’eux-mêmes. En plus de lancer des attaques contre
un système, un cheval de Troie peut établir une porte dérobée qui peut être exploitée par
des attaquants. Par exemple, un cheval de Troie peut être programmé pour ouvrir un port à
numéro élevé afin que le pirate l’utilise pour écouter puis exécuter une attaque.
- 26 -
Bombe logique :
Il s’agit d’un type de logiciel malveillant ajouté à une application et qui est déclenché par
un événement spécifique, comme une condition logique ou une date et une heure
spécifiques.
Vers :
Ils diffèrent des virus en ce qu’ils ne s’attachent pas à un fichier hôte, ce sont des
programmes autonomes qui se propagent sur les réseaux et les ordinateurs. Les vers se
propagent généralement via les pièces jointes aux e-mails : l’ouverture de la pièce jointe
active le programme du ver. Pour un exploit typique, le ver envoie une copie de lui-même
à chaque contact e-mail de l’ordinateur infecté. En plus de mener des activités malveillantes,
un ver qui se propage sur Internet et surcharge les serveurs de messagerie peut entraîner des
attaques par déni de service contre des nœuds du réseau.
Injecteurs :
Ce sont des programmes utilisés pour installer des virus sur les ordinateurs. Dans de
nombreux cas, l’injecteur n’est pas infecté par un code malveillant et peut donc ne pas être
détecté par un logiciel antivirus. Un injecteur peut également se connecter à Internet et
télécharger des mises à jour de logiciel antivirus se trouvant sur un système compromis.
Rançongiciels (ransomware) :
Il s’agit d’un type de logiciel malveillant qui bloque l’accès aux données de la victime et
menace de les publier ou de les supprimer à moins qu’une rançon ne soit versée. Si un
rançongiciel simple peut verrouiller le système d’une manière qui n’est pas difficile à
réparer pour une personne bien informée, un rançongiciel plus avancé utilisera une
technique appelée extorsion cryptovirale, qui chiffre les fichiers de la victime de manière à
les rendre presque impossible à récupérer sans la clé de déchiffrement.
- 27 -
publicitaires peuvent être téléchargés automatiquement sur le système lorsque l’utilisateur
navigue sur un site Web quelconque et peuvent s’afficher dans des fenêtres contextuelles
ou dans une barre qui apparaît automatiquement sur l’écran de l’ordinateur.
2.5.6 Spam
Le spam, courriel indésirable ou pourriel est une communication électronique non
sollicitée, en premier lieu via le courrier électronique. Il s'agit en général d'envois en grande
quantité effectués à des fins publicitaires [16].
Le spam peut s'attaquer à divers médias électroniques : les courriels, les forums de
discussion, les moteurs de recherche, les wikis, etc. Mais le spam par courrier électronique est
le type de spam le plus répandu. Il peut donc causer des perturbations pour l’utilisateur de la
messagerie électronique.
Parmi ces vulnérabilités et attaques, les attaques les plus souvent rencontrés par les
serveurs linux et serveurs mail sont : Les attaques DDOS, les attaques par brute force et les
spams.
- 28 -
CHAPITRE 3 : SECURISATION DU SERVEUR
Dans ce chapitre, on va ne va pas créer un serveur mais sécuriser un serveur déjà existant.
- Installation du serveur DNS : le DNS joue un rôle très important, il est utilisé à la fois
par les programmes clients de courrier et par les serveurs de messagerie.
- Installation et configuration postfix : C’est lui qui se chargera de la livraison des e-mails
et a été conçu de façon modulaire autour de différents programmes dévolus chacun
ayant une tâche précise.
- Installation et configuration de courier-imap : c'est un protocole de récupération de
mails. Mais ce qui fait sa particularité c'est qu'avec le protocol IMAP, les mails restent
stockés dans des dossiers sur le serveur et permet de proposer de nombreuses
fonctionnalités très pratiques comme par exemple recopier sur le serveur des messages
qui sont en local, effacer ou déplacer des messages sans les lire avec des règles de tri
automatique.
- Installation de roundcube : il est l’interface utilisateur.
3.2 Sécurisation
Pour sécuriser notre serveur, nous allons d’abord sécuriser le système d’exploitation.
Ensuite, sécuriser le service SSH (Secure SHell), mettre en place un firewall et enfin placer des
contre-mesures pour les attaques DDOS, brute force et les spams. Nous avons choisi de contrer
ces trois attaques car ces dernières sont assez courantes et peuvent perturber l’organisation qui
utilise le service de messagerie.
- 29 -
3.2.1 Sécurisation du système
a. Limitation des services actifs
Plusieurs services sont actifs sur le système après son installation alors que la plupart
d’entre eux sont inutiles. Plus particulièrement, pour notre serveur mail, nous n’avons besoin
que quelques services pour le bon fonctionnement du serveur.
Pour désactiver les services inutiles, il faut exécuter les commandes suivantes :
Le compte root est le compte administrateur par défaut sur le système Linux.
Les administrateurs système doivent lui accorder la plus grande attention car sa
compromission peut avoir des conséquences graves. Quelques précautions simples permettent
d’augmenter la sécurité d’utilisation du compte root.
- 30 -
Le répertoire personnel /root ne doit pas être accessible en écriture ni en lecture pour toute
autre personne que root lui-même.
b. Configuration
L’utilisateur root est l’utilisateur qui a le plus de privilège sur un système Linux. En cas
de réussite d’une attaque sur le service SSH, l’attaque à un très haut privilège et peut causer un
maximum de dégat. Donc il est judicieux de ne pas autoriser une connexion SSH avec
l’utilisateur root. Pour se faire, il faut ajouter le ligne « PermitRootLogin no » à la fin du fichier
de configuration de SSH /etc/ssh/sshd_config :
#vi /etc/ssh/sshd_config
- 31 -
3.2.3 Mise en place d’un firewall
a. Définition
Un firewall ou pare-feu est un ensemble matériel ou logiciel qui trie les paquets qui
circulent par son intermédiaire, en provenance ou vers le réseau local, et ne laisse passer que
ceux qui vérifient certaines conditions.
b. Netfilter et IPtables
Netfilter est une partie du noyau Linux destinée à assurer la surveillance de tous les
transferts de données réseau. Fournissant des fonctions de sécurité, il est essentiellement utilisé
pour la réalisation de pare-feu.
Netfilter est implémenté au niveau des couches réseau du noyau Linux. Il effectue le
filtrage proprement dit, tandis que IPtables fournit les commandes nécessaires à la
programmation des filtres. IPtables est le successeur d’IPchains qui était disponible avec les
versions 2.2 du noyau de Linux.
i. tables et chaîne
À chacune des trois fonctions d’IPtables correspond une table qui sert à programmer
cette fonction.
- 32 -
Chaque table contient un certain nombre de chaînes qui contiennent à leur tour une série
de règles. La chaîne et les règles qu’elle contient s’appliquent à un moment précis (avant le
routage, après le routage, etc.) du parcours du paquet et déterminent le futur du paquet (transmis,
intercepté, etc.).
Figure 3.1 : IPtalbes : les cinq points où peuvent s’appliquer les chaînes
Les chaînes peuvent s’appliquer à cinq moments dans la vie du paquet (Fig 3.1) :
- 33 -
OUTPUT : les chaînes appliquées sur OUTPUT concerneront tout paquet en
provenance de la machine locale.
Le tableau I. illustre les différents points d’application des chaînes en fonction des tables.
- 34 -
La liste des actions possibles est indiquée sur le tableau II.
La meilleure façon de faire cela, avec iptables, est de fermer tous port et puis d’ouvrir
les ports nécessaires aux différents services du serveur.
Les trois lignes de commandes ci-dessus bloquent tous les ports sur le serveur. Tous
les services actifs sur le serveur et les clients extérieurs ne sont donc pas capables de se
- 35 -
communiquer. Donc on réouvre les différents ports correspondants aux services utilisés. Dans
notre cas, on a besoin que du DNS, HTTP (Hyper Text Transfert Protocol), SMTP et IMAP.
Réouverture des ports pour notre serveur mail :
- DNS
iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
- HTTP et HTTPS
- SMTP
- IMAP
- 36 -
Il existe beaucoup de type d’attaque DDOS et c’est quasiment impossible de les contrer
tous. Mais quelques règle iptables nous permettront de contrer la majorité d’entre eux.
- Bloquer les paquets qui ne sont pas de type SYN et qui n’appartient pas à une connexion
déjà établie.
Les bogus sont des séquences de flags qu’un paquet TCP normal n’utiliserais pas.
Prenons par exemple les flags SYN et FIN. SYN est utilisé pour une demande de connexion sur
un serveur ; FIN est utilisé pour terminer une connexion existante. Donc il n’est pas normal de
recevoir un paquet qui comporte les deux en même temps.
La figure 3.3 montres les règles Iptables pour bloquer les bogus TCP flag.
- 37 -
Figure 3.3 : Règle IPtables pour bloquer les bogus TCP flag
Il existe quelques scripts et logiciels pour prévenir les attaques en force brute comme
Denyhosts, Fail2ban, iptables, etc.
Denyhosts est focaliser sur le service SSH. Or dans notre cas, nous avons besoin de
sécuriser les services comme MariaDB, NGINX et SSH. Fail2ban est configurable pour
surveiller étroitement les différents services sur notre serveur. Fail2ban peut être associer avec
différents outils, comme Netfilter/Iptables et TCP wrappers (qui est un outil permettant de
surveiller les trafics TCP) pour augmenter son efficacité.
Fail2ban analyse les logs de divers services (SSH, Apache, FTP ou File Transfert
Protocol, etc.) en cherchant des correspondances entre des motifs définis dans ses filtres et les
entrées des logs. Lorsqu'une correspondance est trouvée une ou plusieurs actions sont
exécutées. Typiquement, fail2ban cherche des tentatives répétées de connexions infructueuses
- 38 -
dans les fichiers journaux et procède à un bannissement en ajoutant une règle au pare-feu
iptables pour bannir l'adresse IP de la source.
a. Installation
Pour installer fail2ban, il suffit d’éxecuter la commande suivante :
b. Configuration
Les services à monitorer sont stockés dans /etc/fail2ban/jail.conf.
- bantime : Temps de bannissement en secondes . Dans notre cas, nous l’avons définie à
300
- maxretry : Nombre d'essais autorisés pour une connexion avant d'être banni.
Pour le service SSH, on peut donc avoir la configuration comme suit (Fig 3.4) :
Figure 3.4 : Activation des règles anti brute force du service SSH
- 39 -
3.2.5 Lutte anti-spam
La lutte anti-spam est un ensemble de comportements, de systèmes et de moyens
techniques et juridiques permettant de combattre le spam [14].
Plusieurs organisations dans le monde ont proposé des solutions aux problèmes de spam. En
voici quelques exemples :
Filtrage de contenu : analysent le contenu des messages et détectent les spams qui ont
réussi à passer à travers le filtre d'enveloppe. Le filtrage de contenu est un peu plus
sensible que le filtre d'enveloppe : les informations véhiculées à travers le message sont
subjectives, et ce qui peut paraître un spam selon le filtre de contenu peut être un courriel
tout à fait légitime, et l'inverse est aussi vrai.
Filtrage bayésien : est un système fondé sur l'apprentissage d'une grande quantité de
spams et courriels légitimes afin de déterminer si un courriel est légitime ou non. Afin
de bien fonctionner, le corpus de spam et le corpus de ham (courriels légitimes) doivent
contenir idéalement plusieurs milliers de « spécimens ».
Il existe plusieurs logiciels qui intègre ses solutions mais nous allons utiliser rspamd.
Notre configuration de rspamd est ici minimaliste que l’on pourrait utiliser d’autres
logiciel anti spam comme spamassassin. Mais le développement de rspamd est très actif et il
propose plus de fonctionnalités que l’on pourrait utiliser dans le futur pour l’amélioration de la
sécurité de notre serveur mail (Cf annexe A).
- 40 -
a. Installation de rspamd
Rspamd est disponibles sur la plupart des distributions Debian. Pourtant, les paquets sur
ses dépôts ne sont pas maintenus à jour. Il est donc préférable de télécharger les sources de
rspamd sur son le dépôt officiel [19] :
#apt-get update
#apt-get --no-install-recommends install rspamd
b. Configuration
Pour que les mails soient traités par rspamd il faut le lié à postfix. Pour cela, il faut
ajouter la ligne suivant dans le fichier de configuration de postfix /etc/postfix/main.cf :
milter_protocol = 6
milter_default_action = accept
smtpd_milters = inet:localhost:11332
non_smtpd_milters=inet:localhost:11332
milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}
Ces lignes indiquent la version du protocole milter et le le port dans lequel il écoute.
A ce stade de configuration Rspamd filtre les mails qui arrivent et qui sortent de notre
serveur. Mais pour que les mails envoyés à partir du serveur ne soient pas considérer par les
serveurs destinataires comme des spams on implémente les techniques DKIM (Domain Keys
Identified Mail), DMARC (Domain-Based Message Authentication, Reporting and
Conformance) et SPF (Sender Policy Framework).
- 41 -
c. DMARC
DMARC qui vient de l'anglais Domain-based Message Authentication, Reporting and
Conformance, est une spécification technique créée par un groupe d'organisations qui souhaite
aider à réduire l'usage abusif des e-mails, tels que le spam, le phishing, en proposant une
solution de déploiement et de surveillance des problèmes liés à l'authentification des e-mails
DMARC standardise la façon dont les destinataires (au sens des MTA destinataires)
réalisent l'authentification des e-mails en utilisant les mécanismes de Sender Policy Framework
et de DomainKeys Identified Mail. Cela signifie que l'expéditeur (au sens d'un MTA
expéditeur) recevra les résultats de l'authentification de ses messages par tout destinataire qui
implémente DMARC (AOL, Gmail, Outlook, Yahoo!, etc.).
Une politique DMARC autorise l'expéditeur à indiquer que ses e-mails sont protégés
par SPF et/ou DKIM et indique au destinataire ce qu'il doit faire si ces méthodes
d'authentification échouent (ex. : rejeter tous les emails sans DKIM et prévenir une adresse
email). DMARC supprime les conjectures que le destinataire doit faire à propos de la façon de
gérer ces messages en échec, limitant ou supprimant l'exposition de l'utilisateur aux messages
potentiellement frauduleux ou dangereux. DMARC fournit également un moyen pour les
destinataires de rendre compte à l'émetteur du message qu'il a réussi ou échoué l'évaluation
DMARC.
DMARC est conçu pour s'intégrer dans le processus d'authentification des e-mails
entrants d'une organisation. La façon dont il fonctionne permet d'aider les destinataires à
déterminer si le message est conforme à ce qu'il connait de l'expéditeur. Si ce n'est pas le cas,
DMARC inclut des explications sur la façon de traiter les messages non conformes. DMARC
ne détermine pas directement si un message est frauduleux ou non. DMARC nécessite que le
message ait satisfait aux validations SPF et/ou DKIM et que les noms de domaines
correspondent. Avec DMARC, un message peut donc échouer s'il passe les validations SPF et
DKIM, mais que les domaines ne correspondent pas.
Les politiques DMARC sont publiées dans le DNS public du domaine comme
enregistrement TXT et annoncent ce que le destinataire d'un email doit faire si ce dernier ne
satisfait pas les mécaniques d'authentification SPF et/ou DKIM.
- 42 -
i. Correspondance des noms de domaines
DMARC va vérifier la cohérence (en mode strict et/ou relax) des trois noms de domaines
suivants :
Le nom de domaine pour DMARC est celui du champ From: de l'e-mail (après @).
Le nom de domaine pour DKIM est celui déclaré dans la signature (champ d=).
Le nom de domaine pour SPF est celui de la commande MAIL FROM du SMTP.
Le protocole DMARC repose sur la constitution d'une liste des suffixes publics
(exemple https://publicsuffix.org/), afin d'identifier le domaine organisationnel
(Organizational Domain).
Par exemple si le FQDN est a.b.c.exemple.co.uk, le suffixe public est co.uk, donc le domaine
organisationnel est exemple.co.uk.
La recherche d'un enregistrement DMARC est d'abord effectuée sur le FQDN, puis sur
le domaine organisationnel (si le FQDN n'est pas déjà un domaine organisationnel).
- 43 -
d. DKIM
DKIM (DomainKeys Identified Mail) est une norme d'authentification fiable du nom
de domaine de l'expéditeur d'un courrier électronique. Elle constitue une protection efficace
contre le spam et l'hameçonnage.
Cette technologie a été normalisée par l'IETF dans la RFC 4871 remplacée depuis par
la RFC 6376.
DKIM est le résultat d'un projet d'un consortium industriel en 2004, intégrant et
améliorant le système DomainKeys, de la société Yahoo! (standard DomainKeys qui a par
ailleurs été défini ultérieurement - en 2007 - dans la spécification historique RFC 4870), et
Identified Internet Mail, de Cisco.
Il a également été pris en compte par le groupe de travail de l'IETF pour affinage et
standardisation, ce qui a abouti à la RFC 6376.
i. Principe
Il s'agit d'ajouter dans tous les emails sortant, une signature DKIM contenant une liste
de "clé=valeur". Les clés sont courtes, généralement une ou deux lettres.
Les paramètres par défaut du mécanisme de facteur d'authentification sont d'utiliser SHA-
256 comme fonction de hachage cryptographique, le chiffrement RSA pour la cryptographie
asymétrique, et de coder le hachage avec Base64.
- 44 -
récupérer la clé publique publiée dans le serveur DNS du SDID. Cette clé est utilisée pour
vérifier la validité des signatures.
Les paramètres sont décrits dans la RFC 6376. Les plus pertinents sont :
b pour les véritables signatures numériques des contenus (en-têtes et corps de mail) ;
bh pour le hachage du corps ;
d pour l'identifiant de domaine responsable de la signature ;
s pour le sélecteur.
Puis on trouve :
v pour la version ;
a pour l'algorithme de signature ;
- 45 -
c pour l'algorithme de canonicalisation d'en-tête et corps ;
q pour une liste de méthodes de requêtes utilisées afin de récupérer la clé publique de
signature ;
l pour la taille de la partie du corps signé à la forme canonique ;
t pour l'horodatage de la signature ;
x pour la durée d'expiration ;
h pour la liste des champs d'en-tête signés, éventuellement répétés pour ceux qui
apparaissent plusieurs fois (ex keywords ci-dessus). Il est à noter que le champ d'en-tête de
la signature DKIM est lui-même toujours inclus implicitement dans h, avec la valeur du
champ b, traité comme s'il était vide.
- 46 -
La principale qualité de cet antivirus est qu'il permet de balayer les courriels reçus et
envoyés avec un logiciel de messagerie classique. Il inclut un démon multitâches flexible et
configurable, un antivirus en ligne de commande et un utilitaire pour une mise à jour
automatique des définitions de virus via Internet. Le programme est basé sur une bibliothèque
distribuée avec le paquet Clam AntiVirus, que l’on peut utiliser pour créer notre propre logiciel.
Il propose un module appelé ClamSMTP qui est un filtre SMTP pour Postfix.
Une analyse détaillée de quelques-unes de ces attaques est abordée dans l’ouvrage [17]
- 47 -
CHAPITRE 4 : RESULTATS ET INTERPRETATIONS
Dans la sécurisation d’un système, il est primordial de tester l’efficacité des mesures
de sécurité implémentées. Les tests que nous avons effectués seront présentés dans ce
chapitre. Nous discuterons aussi sur les éventuelles amélioration et renforcement de sécurité.
L’option « sS » signifie que nmap va scanner le serveur à partir des paquets SYN du protocole
TCP.
L’option « sV » signifie que nmap va afficher les différents services liés aux ports ouverts sur
le serveur. Le résultat est montré sur la Fig 4.1.
- 48 -
Figure 4.1 : Résultat du scan de ports avec nmap
Ici on voit bien que seule les ports liés aux différents services de notre serveur sont
ouverts.
Pour tester l’efficacité de notre barrière anti DDOS nous avons créé un petit script en
python qui lance une attaque DDOS. Si on lance ce script sur un serveur qui n’a pas de barrière
anti DDOS ce serveur n’est plus disponible si on tente d’y accéder.
Par contre si on lance ce même script sur notre serveur sécurisé, l’adresse IP de la
machine qui le lance est bloquer et cette machine ne peut plus accéder à notre serveur.
Cette configuration que nous avons mise en place pour contrer les attaques DDOS banni
définitivement l’adresse IP source de l’attaque. Or cette attaque peut être mener par un virus
qui s’exécute à l’insu d’un utilisateur légitime. On pourrait donc améliorer cela dans le futur.
- 49 -
Après 3 tentatives de connexion erronées sur SSH (Fig 4.2) pendant les 5 dernières
minutes, notre adresse est bloquée pendant 5mn. On ne pourra donc pas accéder aux différents
services du serveur pendant 5mn.
Puis pour vérifier que le spam est bien intercepté par rspamd, on regarde le ficher
/var/log/mail.log (Fig 4.3).
- 50 -
Figure 4.3 : Fichier mail.log après l’envoi de spam
La cinquième ligne indique la présence de 250 types de virus contenus dans le fichier
de test envoyé en pièces jointe. La dernière ligne montre la détection de la signature du fichier
de test Eicar par ClamAV.
- 51 -
Nous avons mis en place des mesures de sécurité contre les attaques et les failles de
sécurité les plus courantes. Ces mesures ne sont pas des solutions absolues mais suffisent bien
protéger le serveur. Dans ce qui suit, nous proposons des éventuelles améliorations pour
renforcer encore la sécurité du serveur.
4.5 Amélioration
4.5.1 Chiffrement des communications
Pour limiter la portée des écoutes et garantir l’identité des machines qui communiquent
entre elles, il est nécessaire d’utiliser des solutions de chiffrement.
Chiffrer ou coder est la transformation d’un message (de donnée) en clair en un message codé
compréhensible seulement par celui qui dispose du code ou de la clé.
a. Chiffrement symétrique
Aussi connu sous le nom de chiffrement à clé secrète, le chiffrement symétrique utilise
une seule clé pour chiffrer et déchiffrer les données. Les deux parties doivent partager
l’information qui permettra de recouvrer les données. Expéditeur et destinataire doivent s’être
échangés au préalable – par un moyen sûr – la clé qui permettra à chacun d’eux de chiffrer ou
de déchiffrer les données.
- 52 -
Figure 4.5 : Chiffrement symétrique
• Data Encryption Standard (DES), inventé en 1977, utilise une clé de 56 bits.
• 3DES est l’application de l’algorithme DES à trois reprises lors du chiffrement avec trois clés
différentes (A–B–C 168 bits) ou deux clés différentes (A–B–A 112 bits).
•Blowfish
- 53 -
b. Chiffrement asymétrique
Pour utiliser le chiffrement asymétrique, également connu sous le nom de chiffrement
à clé publique, chaque utilisateur désirant échanger des données doit posséder un couple de clés
composé d’une clé privée et d’une clé publique. La clé publique, comme son nom l’indique, est
diffusée le plus largement possible, par exemple dans un annuaire, alors que la clé privée doit
rester connue de son seul propriétaire. Les données chiffrées avec la clé publique ne peuvent
être déchiffrées qu’avec la clé privée correspondante et réciproquement. Il n’est en théorie pas
possible de déduire la clé privée de la clé publique. Les utilisations du chiffrement asymétrique
sont diverses. Il est adapté et prévu pour assurer la confidentialité et la signature électronique
de documents.
- 54 -
La figure 4.7 illustre la transmission d’un message avec sa signature électronique.
DSA (Digital Signature Algorithm) et RSA, qui tire son nom de ses auteurs Rivest,
Shamir et Adleman, sont les deux principaux algorithmes de chiffrement à clé publique, utilisés
en particulier par SSL et SSH [19].
c. Le protocole SSL
SSL (Secure Socket Layer) est un protocole initialement proposé par la société Netscape
Inc. Il est aujourd’hui adopté par l’ensemble de la communauté informatique pour
l’authentification et le chiffrement des données entre clients et serveurs. Un nouveau standard
basé sur SSL, TLS a vu le jour et est aujourd’hui normalisé par l’IETF (Internet Engineering
Task Force). Initialement proposé pour sécuriser les connexions Web, SSL est utilisé
aujourd’hui par bien d’autres services réseau grâce à sa simplicité de mise en œuvre.
- 55 -
La figure 4.8 illustre l’insertion de SSL entre la couche réseau TCP/IP et la couche application
Figure 4.8 : Insertion de SSL entre la couche réseau TCP/IP et la couche application [18]
- 56 -
Les NIDS (Network Based Intrusion Detection System), qui surveillent l'état de la
sécurité au niveau du réseau ;
Les HIDS (Host Based Intrusion Detection System), qui surveillent l'état de la sécurité
au niveau des hôtes ;
Les IDS hybrides, qui utilisent les NIDS et HIDS pour avoir des alertes plus pertinentes.
Types Exemples
NIDS Snort , Bro, Suricata, Enterasys, Check Point, Tipping point, etc
HIDS AIDE, Chkrootkit, Tripwire, etc
IDS hybride Prelude, OSSIM
b. Système de sauvegarde
En cas d’attaque réussi sur notre serveur, l’attaquant décidera de ce qu’il fera de notre
serveur et peut choisir de détruire tous les données, un système de sauvegarde est donc utile
pour préserver la disponibilité des services.
- 57 -
CONCLUSION
Plusieurs solutions ont été mise en œuvre comme la barrière anti DDOS ; la lutte anti
brute force avec fail2ban ; et la lutte anti spam avec rspamd qui intègre plusieurs techniques de
lutte anti spam comme le filtrage bayesien et le filtrage par expression régulière.
- 58 -
ANNEXE A : QUELQUES DIFFERENCES ENTRE
RSPAMD, SPAMASSASSIN ET DSPAM
Générale
Programmé en C Perl C
Statu de développement Très active Active Abandonné
Caractère de filtrage de mail
Liste gris Oui Non Non
Composition de règles Oui Oui Non
Méthode de filtrage
Expression régulière Oui Oui Non
DKIM Oui Oui Non
DMARC Oui Non Non
Méthodes statistique
Classificateur de Bayesien Hidden markov Naïve Hidden Markov
Support MySQL Non Oui Oui
Remarque :
Le projet Dspam a été abandonné par son développeur en 2014 et par conséquent
supprimé des dépôts des distributions Debian.
- 59 -
ANNEXE B : Le protocole TCP/IP
TCP est le protocole de niveau trois du modèle DOD qui assure le transport fiable des
données à travers le réseau. Ce protocole fonctionne en mode connecté et aucune donnée ne
peut être transmise à moins que la connexion ne soit établie.
La longueur de l’en-tête est codée sur 4 bits et donne le nombre de mots de 32 bits.
Les bits de contrôle permettent de définir la fonction des messages ainsi que la validité
de certains champs :
- 60 -
• URG = 1 si le champ des priorités est utilisé (pour des demandes d’interruption
d’émission par exemple) ;
• EOM indique une fin de message (End of Message), les données doivent être
transmises à la couche supérieure ;
Le champ fenêtre (Windows) indique le nombre d’octets que le récepteur peut accepter
à partir du numéro d’acquittement.
Le champ options permet de définir, par exemple, la taille maximale d’un segment.
Après autorisation locale sur chaque station et déclaration d’un identificateur permettant
à l’application de référencer la connexion, la demande d’ouverture de connexion est transmise
à la couche transport qui positionne son bit SYN à 1. La station sollicitée répond avec les bits
SYN et ACK à 1 et une dernière confirmation est effectuée par la station initiatrice avec le bit
ACK à 1 [21].
- 61 -
Figure A.2 : Exemple de connexion réussie [21]
B.2. Le protocole IP
Le paquet IP, ou datagramme IP, est organisé en champs de 32 bits. Les fonctionnalités
IP se retrouvent dans chaque groupement de bits de l’en-tête.
- 62 -
Figure A.3 : Format du paquet IP [21]
Type de service (TOS) : désigne la qualité de service qui doit être utilisée par le routeur.
Par exemple, pour un transfert de fichier important, il est préférable de privilégier le
débit par rapport au délai de transmission. Pour une session interactive, le délai de
propagation sera primordial.
Identificateur : identifie le paquet pour la fragmentation (tous les fragments d’un même
paquet portent le même numéro).
- 63 -
longueur des multiples de 8 octets. Avec un codage sur 13 bits, le maximum pour un
paquet est de 8 192 fragments.
Durée de vie (TTL, Time to live) : indique en nombre de sauts le temps pendant lequel
un paquet peut rester dans le système. Si ce champ contient la valeur 0, alors le paquet
doit être détruit. Sa valeur est décrémentée à chaque passage dans un routeur même si
le temps de traitement est inférieur à une seconde. La valeur par défaut est fixée par la
station suivant l’importance du réseau à 32, 64, 128 ou 256.
- 64 -
REFERENCES
[12] « Mise en place d’un serveur de messagerie sur un réseau LAN » ; http://www.univ-
bejaia.dz/bitstream/mise-en-place-serveur-messagerie-LAN.pdf ; ; Mai 2019.
- 65 -
[15] Les 10 types des cybers attaques les plus courants ; https://blog.netwrix.fr/les-10-types-
de-cyberattaques-les-plus-courants.html ; Juillet 2019.
[17] RANDRIANARINOSY R. I. ; « Analyse des failles de sécurité des serveurs mail sous
Linux » ; mémoire de Master II ; mention Electronique ; IA ; ESPA ; 25 septembre 2019.
[18] HERTZOG R., MAS R. ; « The debian administrator’s handbook » ; Eyrolles ; 2015.
- 66 -
Titre du mémoire : IMPLEMENTATION DE CORRECTIFS DES FAILLES
DE SECURITE SUR UN SERVEUR MAIL SOUS LINUX
Auteur :
Nombre de pages : 66
Nombre de figures : 26
Nombre de tableaux : 4
RESUME
Cet ouvrage présente l’étude des sécurités des serveurs mail sous le système
d’exploitation GNU/linux. Le choix de ce dernier a été fait pour l’implémentation du serveur
mail parce qu’il propose des versions communautaires donc gratuit et il présente aussi moins
de failles sécurité que les autres systèmes d’exploitation. Il montre aussi l’implémentation des
techniques qui assure la protection du serveur mail contre les attaques DDOS, brute force et les
spam en utilisant Netfilter, Fail2ban, et Rspamd.
Contact: