Vous êtes sur la page 1sur 81

UNIVERSITE D’ANTANANARIVO

ECOLE SUPERIEURE POLYTECHNIQUE


-----------------------------------
MENTION ELECTRONIQUE
-----------------------------------
MEMOIRE EN VUE DE
L’OBTENTION DU DIPLOME DE MASTER

Domaine : Sciences de l’Ingénieur


Parcours : Informatique appliquée

Présenté par :
- Monsieur RATOVONIARIVO Iavotra Maherijaona

N° d’ordre : 108/EN/M2/IA/2019 Soutenu le, 25 septembre 2019


Année Universitaire : 2017 - 2018
UNIVERSITE D’ANTANANARIVO
ECOLE SUPERIEURE POLYTECHNIQUE
-----------------------------------
MENTION ELECTRONIQUE
-----------------------------------
MEMOIRE EN VUE DE
L’OBTENTION DU DIPLOME DE MASTER
Domaine : Sciences de l’Ingénieur
Parcours : Informatique appliquée

Présenté par :
- Monsieur RATOVONIARIVO Iavotra Maherijaona

Devant le jury composé de :

- Monsieur RASTEFANO Elisée, Président


- Madame RABEHERIMANANA Lyliane Irène, examinateur
- Monsieur HERINANTENAINA Edmond Fils, examinateur
- Monsieur RAMASOMBOHITRA Nivonjy, examinateur

- Monsieur RAKOTOARISOA Hasina Patrick, Encadreur

N° d’ordre : 108/EN/M2/IA/2019 Soutenu le, 25 septembre 2019


Année Universitaire : 2017 – 2018
Car l’Eternel donne la sagesse ;
De sa bouche sortent la connaissance et
l’intelligence.
« Proverbes 2 : 6 »
REMERCIEMENTS
Je rends gloire à Dieu pour m’avoir donné la santé, le temps et la
force durant mes études et la réalisation de ce mémoire.

Également, je tiens à apporter mes plus vifs remerciements à tous


nos enseignants de la Mention Electronique de l’Ecole Supérieure
Polytechnique d’Antananarivo pour m’avoir bien enseigné et bien
éduqué.

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.

A vous tous, Merci.

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

Tableau I. : Points d’application des chaînes en fonction des tables ....................................... - 34 -


Tableau II. : Liste des actions d’iptables .................................................................................. - 35 -
Tableau III. : Exemples de système de détection d’intrusion ................................................... - 57 -
Tableau IV. : Différence entre Rspamd, Spamassassin et dspam ............................................ - 59 -

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.

En effet, avec la croissance d’internet, les pirates informatiques se multiplient et


développent des techniques d’attaque de plus en plus performants comme les DDOS qui a pour
but de rendre un système inutilisable. En plus, les spams, les pertes de mails et l’usurpation
d’identité sont quelques problèmes de sécurité majeurs liés aux serveurs mail.

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

1.1 Notions de base


1.1.1 Définitions
a. Réseau informatique
Un réseau informatique est un ensemble constitué de matériels et d’équipement
informatique (ordinateur ou périphérique) autonomes connectés entre eux.

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

x:x:x:x:x:x:x:x où x représente les valeurs hexadécimales des 8 blocs de 2 octets chacun,


composant l’adresse.

Exemple : 5F06:0000:0000:A100:0000:0800:200A:3FF7

- Forme compressée

Un groupe de plusieurs blocs de 2 octets à 0 peut être remplacé par la notation « :: ».


Toutefois la séquence « :: » ne peut apparaître qu’une seule fois dans l’adresse.

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.

La figure 1.1 illustre l’arborescence des noms de domaines.

Figure 1.1 : Arborescence des noms de domaines

-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].

L’objectif d’OSI est de fournir un modèle structuré permettant à des réseaux


hétérogènes de communiquer. La figure 1.2 illustre les sept (7) couches du modèle OSI.

-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 session : L’établissement, la régulation et la fermeture des sessions entre les


différentes machines du réseau sont administrés par cette couche.

 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.

c. Le modèle DOD ou TCP/IP


TCP/IP ou Transmission Control Protocol/IP est une « suite protocolaire » ou « pile de
protocoles », travaillant sur un modèle en couches particulier DOD (Department Of Defense),
qui recouvre les différentes couches du modèle OSI notamment au niveau des couches basses.

Ce modèle comporte quatre couches seulement ce qui le rend plus « performant » qu’un
strict modèle OSI [7].

Pour pouvoir comprendre la structure de ce modèle, il existe une correspondance approximative


entre le modèle de référence OSI et ce dernier (Fig 1.3).

Figure 1.3 : Correspondance entre les modèles DOD et OSI

-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.

a. Architecture peer to peer


Dans une architecture Peer to Peer ou architecture d’égal à égal (ou pair à pair), il n’y a
pas de serveur dédié, mais chaque ordinateur joue le rôle de client et serveur à la fois. Les
machines sont libres de communiquer via un réseau, de partager simplement des informations,
des fichiers le plus souvent, mais également des flux multimédias continus. Cette architecture
nécessite des logiciels spécifiques comme Skype, eMule, etc.

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.

ii. Architecture à 2 niveaux


L'architecture à deux niveaux (appelée 2tiers) caractérise le système client/serveur dans
lequel le client demande une ressource au serveur qui la lui fournit directement.

-8-
Figure 1.4 : Architecture client/serveur à 2 niveaux

iii. Architecture à 3 niveaux


Dans l'architecture à trois niveaux (ou 3tiers), il y a :

- le client, demandeur de ressources (niveau 1),

- le serveur middleware chargé de fournir ces ressources (niveau 2),

- le serveur secondaire (généralement un serveur de base de données), qui fournit les ressources
au précédent (niveau 3).

La figure 1.5 montre l’architecture client/serveur à 3 niveaux.

Figure 1.5 : Architecture à 3 niveaux

-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.

1.1.4 Le système d’exploitation GNU/Linux


Le noyau Linux a été créé en 1991 par Linus Torvalds. A la fois multitâches,
multiutilisateurs et multiplateformes, il possède une pile de communication très fiable et très
performante qui fait de lui un système orienté réseau [9].

Plusieurs distributions ont été créées pour des diverses utilisations.

Voici quelques exemples de distribution Linux :

 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.

a. Protocole d’émission de message


SMTP (Simple Mail Transfert Protocol) est un protocole de communication qui est
utilisé pour transférer le courrier électronique d’un serveur à un autre. Il est de la famille des
protocoles basés sur TCP/IP. Il utilise généralement le port 25 [10].

Le mécanisme de fonctionnement de SMTP est qu'il commence d'abord par vérifier


l'existence de l'expéditeur et du ou des destinataire(s), indiqués dans l'entête du message, puis
il transmet le contenu. La transmission s'effectue sur un canal de communication établi entre
l'émetteur et le destinataire par émission bidirectionnelle de requêtes basées sur des
commandes.
Il existe aussi le SMTPS (Simple Mail Transfert Protocol Secure) qui est une méthode
pour sécuriser SMTP en utilisant TLS (Transport Layer Security). SMTPS vise à apporter de
l’authentification des serveurs communiquant, l’intégrité et la confidentialité.

b. Protocole de réception de message


i. POP
Le protocole POP qui signifie Post Office Protocol permet de récupérer son courrier sur
un serveur distant. Ce protocole est utile pour les personnes n’étant pas connectées à internet
en permanence afin de consulter les mails reçus hors connexion [11].

Le protocole POP télécharge le courrier électronique depuis le serveur et le rapatrie chez


le client (C'est-à-dire sur l’ordinateur personnel de l’utilisateur). Par défaut, POP efface du
serveur les courriels téléchargés, sauf en cas d’indication contraire du client [11].

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

1.2.2 Architecture d’un serveur mail


Un système de messagerie électronique est l'ensemble des éléments contribuant à
transmettre un courriel de l'émetteur au récepteur. Il est composé de trois éléments
fondamentaux. Ce sont :
- le Mail Transfert Agent ou MTA
- le Mail Delivery Agent ou MDA
- le Mail User Agent ou MUA

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.

Figure 1.6 : Le transfert d’un courriel 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.

Les notions nécessaires à la compréhension du fonctionnement des serveurs de


messagerie électronique ont été présentées dans ce chapitre. Mais les serveurs mails rencontrent
assez souvent des problèmes de sécurité comme : la perte de mail, l’accès non autorisé aux
comptes mails, le spam, l’envoie de virus informatiques, le déni de service pour rendre le
serveur hors service, etc.
La démarche de sécurisation, les stratégies de sécurités et les différents types d’attaques
et menaces ainsi que leurs contre-mesures seront abordées dans le prochain chapitre.

- 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 Définition et terminologie


2.1.1 Définition
La Sécurité des Systèmes d’Information (SSI) ou plus simplement sécurité
informatique, est l’ensemble des moyens techniques, organisationnels, juridiques et humains
nécessaires à la mise en place de moyens visant à empêcher l'utilisation non-autorisée, le
mauvais usage, la modification ou le détournement du système d’information [13].

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 à :

 Evaluer les risques et leur criticité

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.

 Rechercher et sélectionner les parades

É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.

 Mettre en œuvre les protections et vérifier leur efficacité

C'est l'aboutissement de la phase d'analyse et là que commence la protection du système


d'information. Une faiblesse fréquente de cette phase est d'omettre de vérifier que les
protections sont bien efficaces (tests de fonctionnement en mode dégradé, tests de reprise de
données, tests d'attaque malveillante, etc.).

- 18 -
Figure 2.2 : Spirale de la sécurité

2.4 Stratégie de sécurité


Pour mieux préserver le patrimoine de l’entreprise contre des agresseurs potentiels, le
déploiement d’un système de sécurité est devenu inéluctable. Pour se faire, différentes stratégies
ont été mises sur pied.

2.4.1 Le principe de moindre privilège


Le principe de sécurité le plus fondamental est celui du moindre privilège. À la base, il
signifie que toute entité (utilisateur, programme, système, etc.) ne doit disposer que des
privilèges dont il a besoin pour effectuer ses tâches assignées. Cela limite l’exposition aux
attaques ainsi que les dommages occasionnés.

- 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.

2.4.3 La sécurité par réseau


Au fur et à mesure que les environnements croissent en taille et en diversité, et que leur
sécurisation machine par machine devient difficile, de plus en plus de sites se tournent vers un
modèle de sécurité par réseau. Dans ce cas de figure, on met l’accent sur le contrôle de l’accès
réseau aux divers serveurs et aux services qu’ils offrent au lieu de les sécuriser un par un.

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.

2.5 Attaques et vulnérabilités


Il existe de nombreux types d’attaques et de vulnérabilités et cela ne cesse de croitre de
jour en jour mais les plus courants sont [15] :

2.5.1 DOS et DDOS


Une attaque DOS (Denial Of Services) submerge les ressources d’un système afin que
ce dernier ne puisse pas répondre aux demandes de service. Une attaque DDOS (Distributed
Denial Of Services) vise elle aussi les ressources d’un système, mais elle est lancée à partir d’un
grand nombre d’autres machines hôtes infectées par un logiciel malveillant contrôlé par
l’attaquant.

À la différence des attaques conçues pour permettre à un attaquant d’obtenir ou de


faciliter des accès, le déni de service ne procure pas d’avantage direct aux attaquants. Il est une
satisfaction en soi pour certains pirates. Cependant, si la ressource attaquée appartient à un
concurrent, l’avantage pour l’attaquant est alors bien réel. Une attaque DOS peut aussi avoir
pour but de mettre un système hors ligne afin de pouvoir lancer un autre type d’attaque.

- 20 -
Il existe plusieurs types d’attaques DOS, en voici quelques exemples avec leurs contre-
mesures :

SYN flood : Un attaquant exploite l’utilisation de l’espace tampon lors du handshake


d’initialisation de session TCP. La machine de l’attaquant inonde de demandes de connexion
la petite file d’attente de traitement du système cible, mais elle ne réagit pas lorsque le système
cible répond à ces demandes. Le système cible se met alors à temporiser en attendant la réponse
de la machine de l’attaquant, ce qui fait planter le système ou le rend inutilisable lorsque la file
d’attente de connexion se remplit.

Pour contrer ce type le SYN flood il faut :

- 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.

A ce jour, les systèmes récents ne sont plus vulnérables à cette attaque.

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.

2.5.2 Une attaque de l’homme du milieu


Une attaque de l’homme du milieu (MitM : Man in the Middle) est un attaquant qui
s’insère dans les communications entre un client et un serveur. Voici quelques types courants
d’attaques de l’homme du milieu :

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 :

 Un client se connecte à un serveur.


 L’ordinateur de l’attaquant prend le contrôle du client.
 L’ordinateur de l’attaquant déconnecte le client du serveur.
 L’ordinateur de l’attaquant remplace l’adresse IP du client par sa propre adresse IP et
son propre nom de domaine et usurpe les numéros de séquence du client.
 L’ordinateur de l’attaquant poursuit le dialogue avec le serveur, le serveur croit qu’il
communique toujours avec le client.

Les figures 2.3 et 2.4 illustrent le déroulement d’un détournement de session.

- 22 -
Figure 2.3 : Reniflement de paquet

Figure 2.4 :Attaque de l’homme de milieu

- 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.

2.5.3 Attaque de mot de passe


Les mots de passe étant le mécanisme le plus couramment utilisé pour authentifier les
utilisateurs d’un système informatique, l’obtention de mots de passe est une approche d’attaque
courante et efficace. Le mot de passe d’une personne peut être obtenu en fouillant le bureau
physique de la personne, en surveillant la connexion au réseau pour acquérir des mots de passe
non chiffrés, en ayant recours à l’ingénierie sociale, en accédant à une base de données de mots
de passe ou simplement en devinant. Cette dernière approche – deviner – peut s’effectuer de
manière aléatoire ou systématique :

 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.

2.5.4 Injection SQL


Des commandes SQL (Structured Query Language) sont insérées dans la saisie du plan
de données (par exemple, à la place du nom d’utilisateur ou du mot de passe) afin d’exécuter

- 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 :

“SELECT * FROM users WHERE account = ‘“ + userProvidedAccountNumber +”’;”

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 :

“SELECT * FROM users WHERE account = ‘’ or ‘1’ = ‘1’;”

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.

2.5.5 Attaque par logiciel malveillant


Un logiciel malveillant peut être décrit comme un logiciel indésirable installé dans un
hôte sans aucun consentement. Il peut s’attacher à un code légitime et se propager, se cacher
dans des applications utiles ou se reproduire sur Internet. Voici quelques-uns des types de
logiciels malveillants les plus courants :

- 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.

 Infecteurs de système ou de secteur d’amorçage :

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.

 Logiciels publicitaires (adware) :


Ce sont des applications logicielles utilisées par les entreprises à des fins de marketing ; des
bannières publicitaires sont affichées pendant l’exécution d’un programme. Les logiciels

- 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.

 Logiciels espions (spyware) :


Ce sont des programmes installés pour recueillir des informations sur les utilisateurs, leurs
ordinateurs ou leurs habitudes de navigation. Ils surveillent à notre insu tout ce que nous
faisons et envoient les données à un utilisateur distant. Ils peuvent également télécharger et
installer d’autres programmes malveillants depuis Internet. Les logiciels espions
fonctionnent comme les logiciels publicitaires, mais il s’agit généralement d’un programme
distinct qui s’installe à de l’utilisateur lorsqu’il installe une application gratuite.

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.

3.1 Les différentes étapes de mise en place d’un serveur mail


Pour mettre en place d’un serveur mail, en minimum il faut :

- 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.

En plus, il y a deux avantages à désactiver systématiquement les services inutiles. Cela


augmente d’une part la sécurité potentielle du système : autant de services en moins sont autant
de vulnérabilités potentielles en moins. D’autre part, cela permet de libérer quelques mégaoctets
de mémoire et quelques cycles de processeur, ce qui est toujours bon à prendre.

Pour désactiver les services inutiles, il faut exécuter les commandes suivantes :

- Désactivation au redémarrage du système d’exploitation :

# chkconfig --level 0123456 autofs off

- Suppression des services de la table de configuration :

# chkconfig - - del autofs

- Arret immédiat du service :

# service autofs stop

b. Gestion des accès et Stratégie local de sécurité


La gestion des accès aux différentes ressources du système est capitale. Avec une
installation par défaut, tout est permis ou presque. Une bonne politique est au contraire de
systématiquement limiter les accès au maximum, pour ensuite ouvrir l’utilisation des services
lorsque les besoins s’en font sentir.

- Compte privilégié root

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.

- Blocage des comptes inutiles

À l’installation du système, de nombreux comptes sont créés. Ils correspondent pour la


plupart à des comptes d’applications et n’ont pas pour vocation d’être utilisés de façon
interactive. À ce stade, seul le compte administrateur root est un compte de connexion. Le shell
de tous les autres comptes doit être positionné à /sbin/nologin(sous Red Hat) ou /bin/false(sous
Debian)

3.2.2 Sécurisation du service SSH


a. Définition
SSH est un protocole réseau sécurisé permettant l’établissement de connexions
interactives, l’exécution de commandes distantes, le transfert de fichiers et le relais
d’applications TCP, plus particulièrement X11. SSH est en fait une réponse à un besoin de
sécurité grandissant que certains produits historiques n’étaient pas ou plus en mesure d’assurer.
SSH met en jeu des mécanismes de chiffrement pour la confidentialité des données mais
présente également des mécanismes d’authentification forte, similaires à ceux qu’utilisent SSL
(Secure Socket Layer).

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.

IPtables fournit trois types de fonctionnalités [16] :

• filtrage : statique ou dynamique ;

• NAT (Network Address Translation) : traduction d’adresses IP ;

• marquage et manipulation de paquets

i. tables et chaîne
À chacune des trois fonctions d’IPtables correspond une table qui sert à programmer
cette fonction.

• FILTER : pour les règles de filtrage ;

• NAT : pour les règles de traduction d’adresses ;

•MANGLE : pour la manipulation et le marquage de paquets.

- 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) :

 PREROUTING : le paquet se présente sur une interface de la machine. Les chaînes


appliquées sur PREROUTING seront exécutées avant d’analyser l’adresse IP du paquet
pour prendre la décision de routage. Le cas d’utilisation typique est le DNAT.
 POSTROUTING : les chaînes appliquées sur POSTROUTING seront exécutées juste
avant d’envoyer le paquet sur l’interface de sortie, alors que le paquet est déjà routé. Le
cas d’utilisation typique est le SNAT.
 FORWARD : le paquet n’est pas destiné à la machine locale, mais il doit être relayé sur
une autre interface. Les chaînes appliquées sur FORWARD ne concerneront pas les
paquets à destination ou venant de la machine locale.
 INPUT : les chaînes appliquées sur INPUT concerneront tout paquet à destination de la
machine locale.

- 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.

Tableau I. : Points d’application des chaînes en fonction des tables [18]

NAT MANGLE FILTER


PREROUTING PREROUTING
POSTROUTING POSTROUTING
INPUT INPUT
OUTPUT OUTPUT OUTPUT
FORWARD FORWARD

ii. Les cibles


Ils constituent les actions à effectuer sur les paquets si les règles sur les chaines sont
satisfaites.

L’écriture d’une règle IPtalbes se fait comme suit (Fig 3.2) :

Figure 3.2 : Syntaxe d’écriture d’une règle IPtables [18]

- 34 -
La liste des actions possibles est indiquée sur le tableau II.

Tableau II. : Liste des actions d’iptables [18]

-j ACCEPT Le paquet est accepté.


-j DROP Le paquet est rejeté.
-j REJECT Le paquet est rejeté, l’expéditeur est averti de l’indisponibilité du service.
-j QUEUE Le paquet est envoyé à une application.
-j LOG Le paquet est envoyé au système « syslog ».
-j MARK Le paquet est marqué.
-j TOS Modifie le « Type Of Service » du paquet.
-j MIRROR Renvoie le paquet à l’expéditeur.
-j SNAT L’adresse source du paquet est translatée.
-j DNAT L’adresse destination du paquet est translatée.
-j MASQUERADE L’adresse source du paquet est translatée.
-j REDIRECT Redirection d’un port vers un autre.

c. Configuration du firewall au sein du serveur


Sur un serveur, seul un certain nombre de port sont nécessaire pour les communications
entre le serveur et les clients. Pour cela, il est judicieux de fermer les ports non utilisés afin de
réduire le nombre d’attaques sur le serveur.

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.

Fermeture de tous les ports :

iptables -t filter -P INPUT DROP


iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP

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

iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT

iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT

- HTTP et HTTPS

iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 8443 -j ACCEPT

- SMTP

iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT

- IMAP

iptables -t filter -A INPUT -p tcp --dport 143 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT

- 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.

i. Attaque du type SYN Flood


Pour contrer les attaques de type SYN flood nous allons :

- Bloquer les paquets qui ne sont pas de type SYN et qui n’appartient pas à une connexion
déjà établie.

iptables -t mangle -A PREROUTING -m conntrack --ctstate INVALID -j DROP

- Bloquer les nouveaux paquets et qui n’utilise le drapeau SYN.

iptables -t mangle -A PREROUTING -p tcp ! --syn -m conntrack --ctstate NEW -j


DROP

- Limité le nombre connexion par seconde :

iptables -A INPUT -p tcp --syn -m limit --limit 2/s --limit-burst 30 -j ACCEPT

Cette commande accepte 30 connexions avant d’appliquer la limite de 2 connexions maximum


par seconde. Au-delà de ce seuil la connexion est interrompue.

- Bloquer les bogus TCP flags

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

ii. Ping of death


Pour contre le DDoS par requette ping il suffit de limiter les requettes echo-request
envoyés par seconde :

iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/second -j


ACCEPT

3.2.4 Anti Brute Force


La solution la plus simple et la plus efficace de stopper les attaques par brute force c’est
de bloquer un certain moment l’adresse qui effectue une tentative de connexion à un certain
nombre de fois et qui échoue.

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 :

# apt-get install fail2ban

b. Configuration
Les services à monitorer sont stockés dans /etc/fail2ban/jail.conf.

Les parametres généraux sont :

- ignoreip : Liste des adresses IP de confiance à ignorer par fail2ban

- 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.

- Enabled : Monitoring activé (true) ou non (false)

- Port : Port relatif au service.

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

Et nous avons fait de même pour Postfix, Courier, Roundcube et MariaDB.

- 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 d’enveloppe : s'applique uniquement à l'enveloppe du message, qui contient


souvent assez d'informations pour pouvoir distinguer un spam. Il ne s'attache pas au
contenu du courriel.

 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 ».

 Filtrage par expression rationnelles : Une expression rationnelle (appelée souvent


« expression régulière » en informatique) est un motif que l'on peut appliquer à une
chaîne de caractères afin de voir si ladite chaîne correspond au motif. Par exemple : un
chiffre suivi de trois lettres suivi d'un d'espace, puis d'un chiffre pourrait s'écrire de cette
manière : /^[0-9]{1}[A-Za-z]{3} [0-9]{1}$/).

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 install -y lsb-release wget


#CODENAME=`lsb_release -c -s`
#wget -O- https://rspamd.com/apt-stable/gpg.key | apt-key add -
#echo "deb [arch=amd64] http://rspamd.com/apt-stable/ $CODENAME main" >
/etc/apt/sources.list.d/rspamd.list

#echo "deb-src [arch=amd64] http://rspamd.com/apt-stable/ $CODENAME main" >>


/etc/apt/sources.list.d/rspamd.list

#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.

ii. Domaine organisationnels

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.

iii. Recherche d’un enregistrement DMARC

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).

Par exemple, si l'expéditeur (champ From: de l'e-mail) est exemple@a.news.example.org :

 On cherche un enregistrement TXT pour _dmarc.a.news.example.org (la valeur du


paramètre p sera utilisée).
 À défaut, on cherche un enregistrement TXT pour _dmarc.example.org (la valeur du
paramètre sp sera utilisée).
 Les niveaux intermédiaires sont toujours ignorés (ici : _dmarc.news.example.org)

- 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.

En effet, DKIM fonctionne par signature cryptographique du corps du message ou


d'une partie de celui-ci et d'une partie de ses en-têtes. Une signature DKIM vérifie donc
l'authenticité du domaine expéditeur et garantit l'intégrité du message. DKIM intervient au
niveau de la couche application du modèle OSI, ainsi il constitue une double protection pour
des protocoles de messagerie électronique tels que SMTP, IMAP et POP en plus de l'utilisation
de ces protocoles en mode sécurisé (POPS, IMAPS).

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.

La spécification résultante est utilisée en production. Tous les courriels émanant de


Yahoo, GMail, AOL et FastMail contiennent en principe une signature DKIM.

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.

Un serveur SMTP réceptionnant un email signé utilise ensuite l'identifiant de domaine


responsable de la signature (SDID) et le sélecteur associé annoncés dans les en-têtes afin de

- 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.

La figure 3.5 montre un exemple de signature jointe en en-tête d'un mail .

Figure 3.5 : Exemple de signature jointe en en-tête d’un email

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.

Un vérificateur teste l'enregistrement DNS TXT de brisbane_domainkey.example.com.


Il n'y a ni autorité de certification, ni système de liste noire. Le sélecteur est une méthode directe
pour autoriser un signataire à ajouter ou retirer des clés quand il le souhaite, sans archivage des
signatures. Les données renvoyées par ce test sont également structurées en paires clé-valeur.
Cela inclut la clé publique du domaine, ainsi que des tokens et flags. Le destinataire peut utiliser
cela pour déchiffrer la valeur de hachage du champ en-tête et simultanément recalculer la valeur
du hachage du mail reçu (en-tête et corps). Si les deux valeurs correspondent, cela prouve
cryptographiquement que le mail a été signé par le domaine indiqué, et n'a pas été altéré pendant
le transit.

L'échec de vérification de la signature n'impose pas de rejet systématique du message. En


effet, ces raisons précises peuvent être rendues disponibles dans des processus en amont et en
aval. Ces méthodes peuvent inclure un message FBL, ou ajouter des champs résultats
d'authentification au message, comme décrit dans la RFC 7001. La politique de rejet d'un email
dont la signature DKIM ne serait pas vérifiée peut être publiée dans une entrée DNS de type
TXT DMARC (_dmarc.example.com).

3.2.6 Mise en place de l’antivirus ClamAV


ClamAV est un logiciel antivirus pour systèmes Linux. Il est généralement utilisé avec
les serveurs de courriels pour filtrer les courriels.

- 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.

Son aspect minimaliste et modulable réduit la consommation en termes de ressources


matériels. Et en fin, on peut aussi l’utiliser avec d’autre protocole comme le FTP, POP, HTTP,
etc.

Pour installer ClamAV, il suffit d’exécuter la commande suivante :

#apt-get install clamav clam-smtp

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é.

4.1 Test du firewall


Notre configuration du firewall se divise en deux catégories. D’une part la fermeture
des différents ports inutiles du serveur, et d’autre part le filtrage des paquets circulant sur le
serveur pour contrer les attaques DDOS.

Pour tester l’efficacité du premier type de configuration on va scanner les ports du


serveur à partir d’une autre machine. Pour se faire, nous utiliserons nmap qui est un scanner de
port très efficace et qui offre plusieurs options.

La commande suivante lance un scan de ports sur notre serveur.

#nmap –sS –sV 192.168.244.139

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.

4.2 Test de l’efficacité de fail2ban


Nous avons configuré fail2ban à surveiller les différents services liés à notre serveur qui
sont SMTP, MariaDB, HTTP et SSH.

- 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.

Figure 4.2 : Tentatives de connexion en SSH

4.3 Test de l’efficacité de rspamd


Pour tester que rspamd filtre les spams on utilise ce qu’on appelle un fichier de test
GTUBE qui signifie Generic Test for Unsolicited Bulk Email. C’est un fichier texte qui contient
une chaîne de caractères de 6 octets utilisé pour tester les systèmes anti-spam.

La commande suivante envoie un mail avec le contenu du fichier GTUBE

#mail test@electronique.com < gtube.txt

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

4.4 Test de ClamAv


Le module ClamSMTP de ClamAV permet de scanner les pièces jointes des mails. Pour
le tester on a utilisé le virus de test EICAR. En effet, le fichier de test EICAR est une chaîne de
caractères, écrite dans un fichier destiné à tester le bon fonctionnement d’un logiciel antivirus.
Il a été développé par l’EICAR (European Institute for Computer Ani-Virus Research) pour
tester la réponse d’un antivirus à certains programmes.

On a mis en pièces jointe ce fichier puis on l’envoie à test@electronique.com. Le fichier


/var/log/mail.log contient les informations relatives à l’envoie d’un mail. (Fig 4.4)

Figure 4.4 : Le fichier log après détection de virus

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é.

Deux types de chiffrement sont aujourd’hui couramment utilisés. Il s’agit du


chiffrement symétrique et du chiffrement asymétrique. Ils sont complémentaires et ont chacun
un rôle déterminé dans l’établissement et la gestion des connexions sécurisées [18].

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.

La figure 4.5 illustre la transmission d’un message avec un chiffrement symétrique.

- 52 -
Figure 4.5 : Chiffrement symétrique

L’intérêt du chiffrement symétrique réside principalement dans sa rapidité d’exécution.


Il sera en général utilisé pour chiffrer les transferts réseau. Son inconvénient est qu’il est
nécessaire, pour assurer la confidentialité des données avec ses interlocuteurs, de partager une
clé sécrète différente avec chacun d’entre eux. Cette contrainte peut rapidement devenir
pénalisante avec le nombre de clés à gérer.

Voici quelques exemples d’algorithmes de chiffrement symétrique couramment utilisés [19].

• 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).

• RC2, RC4 et RC5 utilisent des clés jusqu’à 1024 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.

La figure 4.6 montre la transmission d’un message avec le chiffrement asymétrique

Figure 4.6 : Chiffrement asymétrique

- 54 -
La figure 4.7 illustre la transmission d’un message avec sa signature électronique.

Figure 4.7: 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]

4.5.2 Surveillance et audit


Les technologies dont nous disposons pour développer la sécurité sont en constante
évolution. Les pirates disposent eux également d’outils plus sophistiqués de jour en jour ! Ainsi,
un niveau de sécurité qui était confortable hier, s’avère nettement insuffisant aujourd’hui et fera
de nous la cible de toutes les compromissions s’il n’a pas évolué demain.

Il faut donc être capable de mesurer au quotidien la robustesse de notre politique de


sécurité. C’est le rôle des outils de surveillance et d’audit.

a. Système de détection d’intrusion


Un système de détection d'intrusion (ou IDS : Intrusion Detection System) est un
mécanisme destiné à repérer des activités anormales ou suspectes sur la cible analysée (un
réseau ou un hôte). Il permet ainsi d'avoir une connaissance sur les tentatives réussies comme
échouées des intrusions.

Il existe trois grandes familles distinctes de IDS :

- 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.

Le tableau III. liste quelques systèmes de détection d’intrusion

Tableau III. : Exemples de système de détection d’intrusion

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

La sécurisation du serveur se fait en premier lieu par le choix de ses différents


composants. En effet ces derniers pourraient causer des failles de sécurité au sein même du
système dans son ensemble si la sécurité de l’outil n’a pas été pensée pendant sa phase de
conception. La complexité de configuration peut aussi affaiblir le niveau de sécurité et choisir
un outil facile à configurer devient aussi un critère de choix.

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.

Ces solutions constituent des sécurisations de base et recouvrent les attaques


couramment rencontrer par les serveurs mail. En plus, nous avons proposé des éventuelles
améliorations pour renforcer la sécurité de notre serveur comme : Le chiffrement des
communications et l’implémentation des outils de surveillance et audit. Ces derniers permettent
de surveiller les activités du serveur et de connaitre la présence de tentatives d’attaques subit
par le serveur.

Néanmoins, la sécurité informatique est en constante évolution. La sécurisation doit


donc se faire régulièrement. La sécurité confortable d’hier pourrait être insuffisante aujourd’hui
et être une source de compromission demain, il serrait meilleur d’envisager un système de
sauvegarde comme le RAID (Redundant Array of Independent Disks) ou autre pour préserver
la disponibilité du service en cas d’attaque réussie.

- 58 -
ANNEXE A : QUELQUES DIFFERENCES ENTRE
RSPAMD, SPAMASSASSIN ET DSPAM

Tableau IV. : Différence entre Rspamd, Spamassassin et dspam [20]

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

B.1. Le protocole TCP

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.

B.1.1. Format des segments TCP

Figure A.1 : Format des fragments TCP [21]

 Les numéros de port permettent de référencer les applications.

 Le numéro de séquence indique le numéro du premier octet transmis dans le segment.

 Le numéro d’acquittement contient le numéro de séquence du prochain octet attendu


par l’émetteur.

 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) ;

•ACK = 1 si la valeur du champ acquittement est significative ;

• EOM indique une fin de message (End of Message), les données doivent être
transmises à la couche supérieure ;

• RST (Reset) : demande de réinitialisation de la connexion ;

• SYN : demande d’ouverture de connexion (les numéros de séquence doivent être


synchronisés) ;

• FIN : fin de connexion.

 Le champ fenêtre (Windows) indique le nombre d’octets que le récepteur peut accepter
à partir du numéro d’acquittement.

 Le champ checksum correspond à une somme de contrôle de l’en-tête et du message.

 Le champ priorité contient lors d’une interruption d’émission (URG = 1) un pointeur


sur les octets de données à traiter en priorité.

 Le champ options permet de définir, par exemple, la taille maximale d’un segment.

B.1.2. Ouverture d’une connexion

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].

Ce mécanisme est illustré par la figure A.3.

- 61 -
Figure A.2 : Exemple de connexion réussie [21]

B.2. Le protocole IP

Le protocole IP est l’implémentation de la couche trois du modèle TCP/IP. Il gère les


connexions entre les nœuds et définit la façon de router les paquets dans le réseau. Fonctionnant
en mode datagramme, il n’est pas tenu d’assurer l’ordonnancement ou la fiabilité des transferts
[21].

B.2.1. Format du paquet

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]

 Version : numéro de version du protocole IP (actuellement 4).

 Longueur : longueur de l’en-tête codée sur 4 bits et représentant le nombre de mots de


32 bits (généralement 5).

 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.

 Longueur totale : longueur totale du fragment (en-tête et données) exprimée en nombre


d’octets.

 Identificateur : identifie le paquet pour la fragmentation (tous les fragments d’un même
paquet portent le même numéro).

 Drapeaux : gère la fragmentation sur 3 bits suivant le format : DF MF.

o Le bit DF (Don’t Fragment) demande au routeur de ne pas fragmenter le paquet;


o Le bit MF (More Fragment) est positionné à 1 dans tous les fragments, sauf le
dernier.

 Position du fragment : indique par multiple de 8 octets la position du fragment dans le


paquet courant. Tous les fragments du paquet, sauf le dernier, doivent donc avoir pour

- 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.

 Protocole : numéro du SAP (Service Access Point) destinataire du paquet, indique le


protocole de la couche supérieure (1 pour ICMP, 6 pour TCP, 17 pour UDP).

 Options : utilisées pour le contrôle ou la mise au point.

- 64 -
REFERENCES

[1] E1011ADS ; cours : « Administration systèmes » ; M2 ; Mention Electronique ; ESPA ;


2017 – 2018.

[2] SEVERIN C. ; « Réseaux et télécoms » ; DUNOD ; 2003.

[3] MENU J. ; « Technologie internet » ; Université de Genève ; 2007.

[4] RAFAHELIARISON O. P., RAMAROSANDRATANA T. H. ; « Le e-learning du


département électronique » ; mémoire d’ingéniorat ; mention électronique ; EA et IA ; ESPA ;
14 juillet 2005.

[5] Karanjit S. ; « TCP/IP » ; Editions Campus Press Paris ; 2003.

[6] CraigHunt, « TCP/IP : Administration de réseau », 2nd édition,Editions O’REILLY,Paris,


1998.

[7] GOUPILLE P. A. ; « Technologie des ordinateurs et des réseau » ; 7e édition ; DUNOD.

[8] ALSON R. Y. ; « Configuration d’une architecture parallèle à mémoire distribuées avec


MPIH » ; ingéniorat ; mention électronique ; IA ; ESPA ; 23 Mai 2008.

[9] « Linux » ; http://www.wikipedia.org/wiki/linux ; Juillet 2019.

[10] « Installation d’un serveur MAIL sous Ubuntu Server » ; http://astronomie-


trophotographie.fr ; Août 2019.

[11] « Mise en place d’un serveur mail linux » ; https:// www.supinfo.com/articles/single/mise-


en-place-serveur-mail-linux ; Mai 2019.

[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.

[13] « Sécurité des Système d’information » ;


http://www.wikipedia.org/wiki/Sécurité_des_systèmes_information.html ; Juin 2019.

[14] « Introduction et initiation à la sécurité informatique » ;


http://securiteinfo.com/conseils/introsecu.shtml ; Juin 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.

[16] « Lutte anti-spam » ; http://www.wikipedia.org/wiki/lutte-anti-spam.html ; Août 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.

[19] « Compare Rspamd with other spam filter » ; http://www.rspamd.com/comparison.html ;


Août 2019.

[20] « Installer Ngninx avec mysql et PHP7-FPM sur Debian 9 Stretch » ;


https://www.jeconstruismonpc.com/category/tutorial/serveurs/debian/nginx.html ; Août 2019.

[21] LOHIER S., PRESENT D. ; « Transmission et réseaux » ; 3e éditions ; DUNOD ; 2003.

- 66 -
Titre du mémoire : IMPLEMENTATION DE CORRECTIFS DES FAILLES
DE SECURITE SUR UN SERVEUR MAIL SOUS LINUX

Auteur :

RATOVONIARIVO Iavotra Maherijaona

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.

Mots clés : GNU/Linux, spam, anti-spam, fail2ban, Rspamd, DDOS, Netfilter.

Directeur de mémoire : Monsieur RAKOTOARISOA Hasina Patrick

Contact:

maheriavotra@gmail.com 034 53 039 80

Vous aimerez peut-être aussi