Année universitaire: 2015-2016
REPUBLIQUE TUNISIENNE MINISTERE DE
L'ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE UNIVERSITE TUNIS
EL MANAR
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux1.png)
DEPARTEMENT DES SCIENCES DE L'INFORMATIQUE
RAPPORT De Projet de Fin d'Etudes Présenté en
vue de l'obtention du
Diplôme National d'INGÉNIEUR EN INFORMATIQUE
Sécurisation
Optimisation et virtualisation D'un serveur linux
Au SEiN DE
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux2.png)
Élaboré par:
M. Kortli MOHAMED ALi
Encadré par :
Dr. Kaffel-Ben Ayed HELA (FST)
M. Mahjoub OuSSAMA (SOTuTECH)
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux3.png)
Dédicaces
Amon adorable mère qui a tout sacrifié pour que
j'arrive là où je suis. Amon père qui m'a aidé
à être autonome dans ma vie et trouver mon chemin.
Amon cher frère Abdelkader et ma famille pour ses
encouragements pour que je puisse aller jusqu'au bout dans mes
études.
Atous mes amis que j'aime et qui m'ont toujours
supporté dans les moments durs de mes dernières années et
qui supporte mon manque quasi permanent de disponibilité à leur
égard.
Atous mes chers collègues activistes dans les
communautés technologiques où j'ai trouvé la passion
informatique conjugué avec l'organisation des événements
et la concrétisation des connaissances techniques.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux4.png)
Remerciements
Au terme de ce travail de fin d'études,
réalisé à la société Sotutech en
collaboration avec Faculté des Sciences de Tunis, je tiens à
remercier vivement Monsieur Mahjoub Oussama pour son assistance lors de la
réalisation de ce projet, pour sa disponibilité qui m'a permis de
mener à terme ma tâche. Son encadrement m'a été
très bénéfique.
Je voudrais, également, exprimer toute ma gratitude
à Madame Hela Kaffel-Ben Ayed pour son suivi de près de
l'avancement de ce projet, pour les conseils judicieux qu'elle n'a cessé
de me prodiguer, ainsi pour la précieuse aide qui a permis
d'amé-liorer la qualité de ce rapport.
Enfin, je voudrais remercier tous mes enseignants. Sans le
savoir faire qu'ils n'ont cessé de me communiquer, ce stage n'aurait pu
être mené à bien.
iii
Table des matières
Dédicaces i
Remerciements ii
Introduction Generale 2
1 Étude préliminaire 4
1.1 Intoduction 4
1.2 Présentation de l'organisme d'accueil 4
1.3 Présentation du projet 4
1.3.1 Problématique 5
1.3.2 Objectif du projet 5
1.3.3 Besoins fonctionnels 6
1.3.4 Besoins non fonctionnels 6
1.4 Audit de sécurité 6
1.4.1 La Sécurité Informatique 8
1.4.2 Étude des failles de sécurité d'un
système Linux 9
1.4.3 Techniques de piratage et logiciels d'audit de
sécurité 11
1.5 Étude des Solutions techniques existantes des failles
et attaques 22
1.5.1 Solutions de détection d'intrusion 22
1.5.2 Solutions de prévention d'attaque force brute
23
1.5.3 Solutions de simulation d'intrusion 24
1.6 Conclusion 25
2 Sécurisation du serveur 26
2.1 Adoption de la politique de sécurité 26
2.2 Stratégie de base de sécurisation du serveur
27
2.2.1 La mise à jour du système 27
2.2.2 la minimisation du système 28
2.2.3 L'isolation du serveur et la protection de son accès
30
2.3 Les pare-feux et les anti-crackages 37
2.3.1 FirewallID 37
2.3.2 Fail2ban 40
2.4 Système de détection d'intrusion IDS 42
iv
|
|
Table des matières
|
|
|
2.4.1 Les détecteurs d'intrusion locales HIDS
2.4.2 Le détecteur de balayage de ports portsentry
2.4.3 OSSEC
2.4.4 Les détecteurs d'intrusions réseau NIDS
|
43
47
48
49
|
|
2.5
|
Le simulateur d'intrusion Nessus
|
52
|
|
2.6
|
Surveillance du système
|
54
|
|
|
2.6.1 Logwatch
|
54
|
|
|
2.6.2 NtopNG
|
54
|
|
|
2.6.3 Webmin
|
55
|
|
2.7
|
La sauvegarde et la restauration
|
56
|
|
2.8
|
Conclusion
|
59
|
3
|
Optimisation des performances et virtualisation du
serveur
|
60
|
|
3.1
|
Optimisation des performances
|
60
|
|
|
3.1.1 Pourquoi optimiser les performances
|
60
|
|
|
3.1.2 Mesure de performance
|
61
|
|
|
3.1.3 Optimisation des performances
|
62
|
|
3.2
|
Virtualisation du serveur
|
64
|
|
|
3.2.1 Virtualisation : cadre d'emploi et concepts
généraux
|
64
|
|
|
3.2.2 Les risques liées à la virtualisation et les
recommandations de sécurité . . .
|
69
|
|
|
3.2.3 Recommandations de sécurité
|
71
|
|
|
3.2.4 Virtualisation du serveur
|
72
|
|
3.3
|
Conclusion
|
76
|
4
|
Conclusion et perspectives
|
77
|
v
Table des figures
1.1 Exemple des tentatives d'accès ssh 5
1.2 Distribution du marché Serveurs en 2015 [IMS
research] 7
1.3 Statistique des attaques sur Linux X Windows [http ://
www.zone-h.org] 7
1.4 Version de glibc 10
1.5 Version bind du serveur 10
1.6 Répartition des cibles de DDOS [http ://
www.kaspersky.fr/] 12
1.7 Requêtes ICMP(ping) 13
1.8 Liste des ports ouverts et les applications
associées 13
1.9 Interface wireshark 15
1.10 Filtre wireshark 15
1.11 Résultat sniffing avec wireshark 15
1.12 Syntaxe tcpdump 16
1.13 Exemple de capture des paquets avec tcpdump 17
1.14 Découverte des ports ouverts avec nmap 18
1.15 Syntaxe de base pour Hydra 19
1.16 Attaque par dictionnaire avec l'outil Hydra 19
1.17 Attaque force brute sur ssh avec hydra 19
1.18 Syntaxe de base pour Medusa 20
1.19 Interface graphique hoic et loic 21
1.20 Rapport de scan de simulateurs d'intrusions Nessus
21
2.1 Politique de sécurité 27
2.2 Exemple de fichier de configuration yum-cron 28
2.3 Exécution du service yum cron 28
2.4 Liste des services installés 29
2.5 Authentification SSH 31
2.6 Exemple de fichier de Configuration ssh 31
2.7 Génération des clés rsa 32
2.8 Configuration de l'authentification par clé
publique en utilisant PuTTY sur un
ordinateur Windows 33
2.9 Configuration d'alerte login 33
2.10 Exemple alerte login 34
2.11 Exemple plug-in ssh sous pam 35
vi Table des figures
2.12 Stratégie du mot de passe avec pam-unix et
pam-cracklib 36
2.13 Test de stratégie du mot de passe 36
2.14 Principe de fonctionnement du firewallId 38
2.15 Exemple d'un script firewall 39
2.16 Exemple d'actions fail2ban 40
2.17 Mécanisme de fonctionnement fail2ban 41
2.18 Blocage d'une connexion ssh par fail2ban 41
2.19 Liste des ip bloquées par fail2ban 41
2.20 Architecture d'une plateforme de détection
d'intrusion 42
2.21 Diagramme de fonctionnement de tripwire 44
2.22 Exemple d'alerte tripwire 45
2.23 Test de fonctionnement de etckeeper 46
2.24 Exemple d'alerte de detection de rootkit 47
2.25 Échec d'attaque nmap dû à portsentry
48
2.26 Liste d'adresse ip bloquée par portsentry 48
2.27 Processus de traitement d'un incident par OSSEC 49
2.28 Structure du règle snort 50
2.29 Exemple de règle snort de détection d'une
injection sql 50
2.30 Diagramme cas d'utilisation snort 51
2.31 Diagramme de séquence snort 51
2.32 Séquence d'opérations Nessus 52
2.33 Diagramme cas d'utilisation Nessus 53
2.34 Exemple d'un rapport Nessus 53
2.35 Exemple de rapport logwatch du fichier log ssh 54
2.36 Top Hosts (Send-Receive) 55
2.37 Liste des services accessibles via webmin (exemple
FirewallID) 56
2.38 Architecture de Bacula 57
2.39 Restauration du sauvegarde avec bacula 58
2.40 Script de sauvegarde 58
3.1 quelque Statistiques de performance de divers année
61
3.2 Exemple d'analyse d'un site avant optimisation de
performance 62
3.3 Exemple d'un fichier htaccess avec mod-expires 63
3.4 Exemple d'analyse d'un site après optimisation de
performance 64
3.5 Chronologie de la virtualisation 65
3.6 Architecture de la virtualisation au un niveau
système 66
3.7 Architecture de la solution de virtualisation QEMU 67
3.8 tableau comparatif de quelques solutions de virtualisation
69
3.9 Vérification de chargement des modules kvm 72
3.10 Script d'installation de machine virtuel centos 7 avec
kvm 73
3.11 Script d'installation de machine virtuel windows 7 avec
kvm 73
3.12 Démarrage de machine virtuelle 74
3.13 Liste des machines virtuelles 74
3.14 Usage de disque de la machine virtuelle centos7 74
3.15 Interface de saisie d'url de la machine virtuelle 75
3.16 Interface d'authentification 75
Table des figures vii
3.17 Machine virtuelle centos à distance 75
4.1 Topologie de backup avec bacula 79
4.2 Liste des tableaux de la base bacula 79
4.3 Fichier de configuration du client bacula 80
4.4 Liste des fichiers ignorés 81
4.5 Configuration de fichier jail.conf 81
4.6 Démarrage service snort 84
4.7 Initialisation tripwire 85
4.8 Vérification d'intégrité de fichier
manuellement avec tripwire 85
1
Liste des tableaux
1.1 Tableau récapitulatif des failles et attaques et
leurs solutions associés 22
1.2 Tableau comparatif des solutions de détection
d'intrusion 23
1.3 Tableau comparatif des simulateurs d'intrusions 25
4.1 Tableau comparatif de quelques solutions de virtualisation
69
2
Introduction Générale
Dés son invention en 1989 ,le web vit de grand
progrès. Fabricants, opérateurs et autres grandes entreprises
anticipent et innovent afin d'investir dans ce marché . De grandes
batailles ce sont livrées autour de ce dernier et ceci n'est que la
conséquence de l'importance que semble avoir le web dans nos vies.En
effet plus que Trois milliards de personnes utilisent Internet et par suite le
web ,soit un demi de la population mondiale.
Le monde du web nécessite obligatoirement la
présence du SERVEUR WEB et des prestataires spécialisés
appelés hébergeurs web.Il existe des différents types de
serveurs web soit Windows soit Linux.
Avec l'arrivée de l'informatique, des réseaux,
puis d'Internet, les vols d'informations physiques se sont peu à peu
transformés en intrusions informatiques. Il devient donc essentiel que
les données stockées sur des serveurs soient suffisamment
protégées et sécurisées. Pour cela, de nombreuses
techniques de sécurisation sont mises en place, afin d'assurer le
respect de bonnes pratiques de sécurités (comme celles
définies dans la série des normes ISO 27000 ).
La sécurité des Serveurs d'informations
aujourd'hui fait partie des priorités des directions des systèmes
d'informations . Mais ni les techniciens ( développeurs, administrateurs
systèmes), ni même les utilisateurs, sont suffisamment
formés et sensibilisés à la sécurité
informatique. Le postulat de Nicolas Ruff, « la sécurité est
un échec », [2] est, 4 ans plus tard, toujours d'actualité.
Peu d'entreprises disposent d'un niveau de sécurité suffisant
pour protéger convenablement leurs données.
De la même façon, on remarque qu'il est
impossible pour un Serveur web d'avoir une sécurité absolue et
à toute épreuve. Il faut donc recourir à des techniques
différentes que la sécurisation pure afin de s'assurer du niveau
de fiabilité du système d'information
La première technique, l'audit de
sécurité, permet de détecter les failles et les
vulnérabilités en amont et d'obtenir un aperçu du niveau
de sécurité du Serveur. La seconde technique est la
détection d'intrusions. Elle permet, comme son nom l'indique, de
détecter des intrusions à posteriori, à partir d'une liste
de critères définissant les activités anormales et
malicieuses qui pourraient survenir.La troisième technique est la
Surveillance : Technique permettant d'analyser, de contrôler et de
surveiller en temps réel l'état du Serveur.
C'est dans ce contexte qu'il nous a été
confié de réaliser une mission de sécurisation
,optimisation et virtualisation D'un serveur Linux chez SOTUTECH .
le travail effectué dans ce projet de fin
d'études est répartie en quatre chapitres :
Le premier chapitre est dédié à
présenter le cadre général de notre projet ensuite nous
allons présenter la problématique pour extraire ensuite les
besoins fonctionnels et non fonctionnels. Puis nous allons aborder
l'état de l'art dans lequel nous présentons les
différentes failles et techniques utilisées Lors d'une attaque
informatique et le choix de la solution adoptée.
Dans le second chapitre, nous allons détailler la
solution à réaliser pour augmenter la sécurité
Introduction 3
du serveur et le test de validation de solution
proposée.
Dans le troisième chapitre, nous allons proposer de
nouvelles solutions techniques pour optimiser les performances du serveur en
cas de forte sollicitation des ressources contenant La virtua-lisation du
Serveur.
Finalement, la conclusion générale présente
le bilan de ce projet, les apports de point de vue savoir-faire ainsi que les
perspectives de notre contribution.
4
Chapitre1
Étude préliminaire
1.1 Intoduction
L'étude préliminaire présente la partie
la plus importante dans un projet vu qu'il permet de tracer les grandes lignes
des parties implémentation et réalisation.
Le présent chapitre aura pour objectif la
présentation du cadre général du projet. Par la suite, une
partie sera réservée aux exigences auxquelles notre travail doit
répondre . A la fin pour situer notre projet, nous présenterons
l'état de l'art .
Le projet a été réalisé au sein de
SOTUTECH , dont nous donnerons un petit aperçu, dans le cadre de la
préparation de mémoire de fin d'études
présenté en vue de l'obtention du diplôme
d'ingénieur en informatique à la Faculté des Sciences de
Tunis pour l'année universitaire 2015/2016
1.2 Présentation de l'organisme d'accueil
SOTUTECH est une Société de Services en
Informatiques et Ingénierie (SSII) spécialisée dans
l'ingénierie logicielle, l'infogérance et le consulting. Ses
équipes en Tunisie et en France apportent leurs expertises et leurs
expériences en fournissant les meilleures solutions IT adéquates
aux différents besoins de ses clients.
Sotutech a des multiples activités et missions Dans le
domaine de l'informatique et des technologies de l'information et de la
communication,elle est notament specialisée dans le conseil qui fait
partie de l'un de ces services, ainsi que les solutions d'entreprises et
l'ingénierie logicielle : Le conseil en stratégie de la DSI, Le
conseil en management de la DSI, Le conseil en organisation d'une DSI, Le
conseil IT, L'intégration de l'organisation et du système
d'information, L'intégra-tion des technologies Les Applications Web :
J2EE, PHP, .Net Les Applications Desktop : Java, C sharp Les Applications
Mobiles: Android, iOS, Windows Mobile
1.3 Présentation du projet
Tout projet démarre à partir d'une
problématique traduisant ainsi une idée qui va se
développer de proche en proche pour arriver au stade de
l'exécution. Au cours de ce chemin, nous adoptons
généralement une méthodologie bien choisie au
préalable.
1.3. Présentation du projet 5
6 Chapitre 1. Étude préliminaire
1.3.1 Problématique
Actuellement il existe environ 156 millions sites Web, sont
évolués du simple texte et pages de lien hypertexte basées
aux normes actuelles d'applications de productivité mobile dynamique. En
raison de l'augmentation de la demande des moyens d'accéder aux demandes
de plus en plus sophistiquées sur Internet, le nombre d'applications web
développées récemment a explosé suite à une
utilisation sur plusieurs plateformes.
Les sites web sont les vitrines sur le web de chaque
société. Les factures, les salaires, les comptes bancaires, les
données secrets sont tous accessibles via le web.C'est pourquoi, les
sites internet ont toujours été des éléments
sensibles de la sécurité dont l'intérêt pour leurs
sécurités augmente de façon spectaculaire par rapport au
nombre d'applications vulnérables.. En effet, un site web est un serveur
public accessible par n'importe qui, n'importe où y compris les
Hackers.Les sites web sont héberges chez des serveurs, par la suite, ces
serveurs sont donc continuellement sollicités en terme de tentatives de
piratage.Pour s'en convaincre, il suffit de consulter les logs du serveurs :
Les tentatives d'accès au contenu du serveur
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux5.png)
FIGURE 1.1 - Exemple des tentatives d'accès ssh
L'enjeu majeur pour l'équipe SOTUTECH est de garantir
les données de leurs clients sécu-risées,d'assurer la
disponibilité de leur service et d'améliorer l'expérience
de navigation de inter-nautes.
SOTUTECH met à la disposition de ses clients des
solutions d'hébergement des sites et des applications web
adaptées aux besoins de nombreux secteurs d'activité.
1.3.2 Objectif du projet
Aujourd'hui, SOTUTECH est idéalement placée pour
offrir des solutions parfaitement intégrées permettant de
garantir un haut niveau de performance et de sécurité totale
c'est pour cela que J'ai été chargé de concevoir et
d'implémenter la sécurisation et l'optimisation de la performance
de nos serveurs web. Le piratage des serveurs sera alors bien plus complexe, et
si cela venait de se produire, les restaurations automatiques permettront une
réinstallation rapide et automatique et de virtualiser les serveurs
Linux .
Le premier objectif de ce stage a été de
déterminer l'état de l'art des différentes failles connues
et les techniques de piratage des serveurs (failles aussi bien dans la
configuration du serveur qu'au niveau des applications web
installées).
Ensuite, j'ai cherché à associer à chaque
problème ou faille identifiée, la solution technique de
sécurisation associée qui sera mise en place,
développée ou installée.
Puis , déployer ou développer une solution de
sauvegarde et restauration automatique de l'ensemble des environnements web et
inclure la possibilité de sauvegarder/restaurer en utilisant
également la plateforme plesk .
Une autre objectif de ce stage est qu'il devait
également me permettre de mettre une solution de sécurité
et de monter en compétences sur plusieurs sujets, en particulier la
détection d'intrusions .Au cours de ce stage il faut intégrer
aussi une solution de monitoring de l'état qui permet d'alerter en cas
de failles de sécurité.
Enfin, Proposer de nouvelles solutions techniques pour
optimiser les performances du serveur en cas de forte sollicitation des
ressources et proposer une solution de virtualisation des serveurs Linux.
1.3.3 Besoins fonctionnels
Ces exigences répondent à la question : à
quoi sert notre travail?, nous détaillerons dans ce paragraphe les
besoins fonctionnels autrement dit les objectifs que nous voulons atteindre.
<> Définir une politique de sécurité
<>Corriger les failles de sécurité et
réduire leurs impacts et leurs exploitations par les attaques
.
<>Définir un mécanisme d'isolation du
serveur.
<> Collecter et afficher des informations concernant les
fichiers logs.
<> Identifier et se prémunir des attaques
traditionnels comme les Dos attaques.
<>Implémentation d'un système de
détection d'intrusion.
<> Collecter les alertes concernant les attaques.
<> Surveiller l'état du serveur en temps réel
.
<>Gérer une solution de sauvegarde et restauration
automatique.
<>Proposer de nouvelles solutions techniques pour optimiser
les performances du serveur
<>Déployer une solution de virtualisation .
1.3.4 Besoins non fonctionnels
Ce sont des exigences qui n'affectent pas
spécifiquement le comportement du système mais plutôt
identifient des contraintes internes et externes du travail. Les principaux
besoins non fonctionnels se résument dans les points suivants :
<> Dans la réalisation des différents
étapes de ce projet, il faut tenir compte de la possibilité de
son extension par l'ajout de nouvelles modules ou solutions.
<>Ergonomie: les solutions développées ou
implémentées doivent être facile à manipuler.
<> Test : les solutions doivent montrer leur efficacité suite
à des multiples tests .
1.4 Audit de sécurité
Un audit de sécurité est une partie de la mise
en oeuvre de la sécurité où nous essayons de trouver les
vulnérabilités du système et de proposer des actions pour
améliorer la sécurité. On s'intéresse dans ce que
suit à l'audit de sécurité du système Linux.
D'après une étude d' IMS Research, il y a
aujourd'hui 5 milliards d'équipements connectés à Internet
,et plus de 20 milliards sont envisagés en 2020.les administrateurs
systèmes et réseau se demandent peut être quel est le poids
de chaque OS sur le marché. Dans ce coupon, on essaye à
détailler les parts de marchés que détiennent les
systèmes d'exploitation dans le secteur d'activité des serveurs
basé à des statistiques produite en mai 2015.
La domination de Microsoft sur la poste de travail
répond une domination de Linux du côté serveur, et dans le
Cloud. Les spécialistes le savent bien, mais ils manquent souvent de
chiffres précis pour mesurer cette hégémonie, et percevoir
son évolution. On peut l'estimer à 90%.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux6.png)
1.4. Audit de sécurité 7
FIGURE 1.2 - Distribution du marché Serveurs en 2015
[IMS research]
LINUX présente le standard coté serveur, il est
considéré comme une alternative face aux autres OS. Comme son
part du marché est importante, il présente une cible de choix
pour les pirates. En effet Linux est un os open source Donc il est facile
à parcourir son code à la recherche d'une faille exploitable.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux7.png)
FIGURE 1.3 - Statistique des attaques sur Linux X Windows [http
://
www.zone-h.org]
Ce que nous pouvons dire aussi de ces chiffres est que le
nombre des attaques augmente de manière importante et que Linux est une
cible préférable pour les pirates. Cela montre que Linux a des
trous de sécurité dans la plupart des logiciels applicatifs.
Une bonne compréhension des mécanismes d'attaque
et des failles du système Linux sont à la base de la
sécurité quels que soient les outils utilisés, car il est
possible aujourd'hui de configurer ce système pour atteindre un niveau
de sécurité satisfaisant.
8 Chapitre 1. Étude
préliminaire
Après avoir présenté le poids de Linux
dans le monde des serveurs web et son choix comme cible d'attaque, nous pouvons
maintenant présenter une étude des différentes failles
connues et les techniques de piratage des serveurs afin de poser les bases
nécessaires à la bonne compréhension de ces techniques .
Une bonne compréhension des mécanismes d'attaque et des failles
du système sont à la base de la sécurité quels que
soient les outils utilisés.
Je commencerai cette partie par une introduction à la
sécurité informatique, afin de donner les notions et le
vocabulaire récurrent lié aux solutions de sécurité
proposés. Après Je poursuivrai ce rapport en décrivant les
failles connues et exploitables d'un point de vue pratiques et des
différents outils et techniques de piratage des serveurs, et plus
particulièrement par ceux utilisés lors de mon stage.
Enfin, je terminerai cette partie par la présentation
des solutions où nous allons citer brièvement quelques solutions
existantes et connues qui assurent la sécurité.
1.4.1 La Sécurité Informatique
Avant de pouvoir entrer dans le vif du sujet, il est important
de poser quelques notions de base sur l'informatique, et notamment sur la
sécurité informatique.
La notion de sécurité informatique couvre
l'ensemble des moyens outils, techniques et méthodes pour garantir que
seules les personnes ou autres systèmes autorisés interviennent
sur le système et ont accès aux données, sensibles ou non.
On doit ainsi maîtriser les 3 enjeux suivants :
1. La confidentialité : le fait de s'assurer que
l'information n'est accessible qu'aux personnes autorisées et qu'elle ne
sera pas divulguée en dehors d'un environnement
spécifié.
2. L'intégrité : les personnes
autorisées sont seuls qui ont le droit de pouvoir modifier les
ressources informatiques.
3. La disponibilité : l'assurance que les personnes
autorisées doivent pouvoir accéder à tout instant aux
ressources.
À cela, on peut également rajouter l' enjeu
suivant, qui permet d'atteindre un niveau de sécurité plus
importante.
4. La non-répudiation : signifie la possibilité
de vérifier que l'envoyeur et le destinataire sont bien les parties qui
disent avoir respectivement envoyé ou reçu le message.
La sécurité informatique consiste donc à
s'assurer, qu'à tout instant, les 4 propriétés
précédentes des ressources informatiques sont assurées.
Une démarche de sécurité commence en
premier lieu par l'estimation des enjeux. Puis, l'iden-tification des risques
potentiels est une étape fondamentale qui présente une bonne
pratique pour diminuer les impacts. Elle doit être définie par les
étapes suivantes, l'identification des actifs qui seront infectés
en cas d'attaque ,dans notre cas c'est le serveur Linux, identification des
vulnérabilités et leurs impacts possibles sur la
confidentialité, la non-répudiation, la disponibilité et
l'intégrité du serveur et les moyens possibles pour se
prémunir, car il est inutile de mettre en place des solutions de
prévention ou de protection sans avoir au préalable estimé
exhaustivement les risques potentiels.
L'identification des différents types de failles et
attaques peut aider dans la détermination de leur dangerosité et
des contrôles adaptés permettant de réduire leur impact
potentiel. Ils sont des sources effectives d'incidents pouvant entraîner
des effets indésirables et graves sur le serveur. Ces menaces peuvent
être classées selon leur source, leur type et leur action et
effet.
Une fois les risques sont identifiés, il est alors
temps de sélectionner les solutions de prévention en comparant le
coût d'usage et le risque couvert.
Puis, optimiser les solutions de sécurité avec
une mécanisme pour détecter le plus rapidement possible les
attaques et intrusions.
Enfin, il est nécessaire d'identifier des plans secours
basé sur la situation précédente l'attaque.
1.4. Audit de sécurité 9
1.4.2 Étude des failles de sécurité
d'un système Linux
Selon Secunia, qui est une entreprise danoise
spécialisée dans la sécurité informatique,
notamment dans le suivi de vulnérabilités logicielles 66 % des
vulnérabilités peut être exploitée à
distance, ce qui signifie qu'ils sont exposés à un attaquant qui
ne dispose pas d'un compte sur le système, 17 % des
vulnérabilités peut permettre à un pirate d'élever
ses privilèges sur le système vulnérable, ce qui signifie
que le pirate peut être en mesure d'obtenir les privilèges root et
causer des dommages graves illimité.[9]
La question se pose quelles vulnérabilités des
systèmes d'exploitation Linux sont le plus souvent ciblés par des
attaquants malveillants. Bien qu'il y ait un flux non-arrêt de
vulnérabilités exploitables à distance Linux, mais
seulement quelques-uns d'entre eux ont été utilisés pour
les exploits réels contre des nombreux de serveurs.
L'expérience montre que toute application a des
failles; les attaquants ne perdent pas leur temps à faire de la
recherche sur la résolution d'un équation de second degré,
ils essaient de repérer les failles et ils les exploitent.
Ci - dessous, je présente la liste des
vulnérabilités plus couramment exploitée qui
représentent un vrai danger en ignorant les vulnérabilités
liées aux applications hébergées sur le serveur.
Secure Shell (SSH) est un programme
utilisé pour se connecter à un autre système sur un
réseau, exécuter des commandes sur une machine distante et
déplacer des fichiers d'une machine à une autre. Il fournit
l'authentification forte et des communications sécurisées sur des
canaux de communication non sécurisés. SSH est conçu comme
un remplaçant pour rlogin , rsh et rcp . De plus, ssh fournit des
connexions sécurisées. SSH se présente comme une
vulnérabilité en raison de la complexité du protocole et
sa mise en oeuvre est la façon la plus courante d'entrer dans le
système à distance.
Les versions obsolètes de SSH peuvent permettre
à un utilisateur malveillant de se connecter avec un autre utilisateur,
d'insérer des commandes arbitraires en une session, ou pour obtenir un
accès root distant au serveur SSH.
Avec l'utilisation d'un client SSH comme Putty, un bloc de
code peut être ajouter en terminal ce que permet d'allouer un tableau de
taille zéro, ce qui renvoie un pointeur en propre espace d'adressage
coté serveur. Un attaquant pourrait envoyer un long paquet
spécialement conçu qui exploite cette condition, ce qui
exécute un code arbitraire sur le serveur. On parle d'un
dépassement de tampon.
Problèmes d' authentification
générale Linux tels que les comptes sans mot de passe ou
des mots de passe faibles : une des failles de sécurité les plus
communes à tous les systèmes est la mise en place de mots de
passe à bas niveau de complexité voire leur absence. Pour cela,
l'administrateur du système doit être conscient de l'importance de
la mise en place de mots de passe avec un certain degré de
complexité. La préconisation générale est que le
mot de passe respecte un certain nombre de règles : Il doit être
composé d'un minimum de 8 éléments Il doit contenir des
caractères, chiffres, caractères spéciaux Il doit contenir
des caractères majuscules et minuscules Il doit être changé
régulièrement. Mise en place d'un période de rotation. Il
ne doit pas contenir des éléments du login.
L'une des Vulnérabilités fréquentes de
mot de passe est l'existence d'un ou plusieurs comptes avec des mots de passe
peu résistants ce qui facilite son identification en un peu de temps
avec des logiciels spéciales. L'existence d'un compte par défaut
avec un mot de passe connu de tous les experts lors de l'installation d'un
nouveau système ou logiciel, avoir un mot de passe qui a perdu son
caractère secret, fonction de hachage utilisé par système
pour la sauvegarde d'un mot de passe en un format irréversible est non
fiable, les attaques sur les mots de passe tels que password cracking,le
cassage par "Brute Force" ou l'attaque par dictionnaire montrent le risque
lié à cette
10 Chapitre 1. Étude
préliminaire
vulnérabilité
Les Ports ouverts : chaque application,
service, logiciel installé ouvre un certain nombre de ports pour pouvoir
fonctionner. La majorité de ces programmes est installée par
défaut par Linux et leur présence n'est pas toujours utile.
À l'aide des ports ouverts, l'attaquant peut savoir les
services qui tournent, de trouver leurs failles et les exploiter dans son
attaque pour aller plus loin
Anciennes versions de logiciels : Linux
étant loin d'être parfait, des failles sont découvertes
quotidiennement sur la panoplie des logiciels, services qu'il héberge.
Les éditeurs des logiciels essayent de temps en temps de corriger les
failles de leurs applications et les mettre à jour, car à chaque
fois qu'une faille est découverte, elle sera publiée est
exploitable par tous les intéressants.
Configuration incorrecte et incomplète de
programmes Les nouveaux programmas installés possèdent
des configurations par défaut, cela présente une
vulnérabilité liée à Une configuration incorrecte
ou une faille incluse dans cette configuration.
Apache Web Server : les
vulnérabilités dans l'implémentation Apache du serveur Web
et les composants associés peuvent se traduire par déni de
service, la divulgation d'informations, site web défiguration,
l'accès root à distance, ou d'innombrables autres
résultats défavorables.
Vulnérabilité de dépassement de
mémoire tampon dans GNU C Library (glibc) Si
votre glibc version est inférieur à 2.18, vous devez supposer que
votre serveur est vulnérable. Dans notre cas, la version de glibc est
2.12.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux8.png)
FIGURE 1.4 - Version de glibc
Cette vulnérabilité permet aux acteurs locaux ou
distants afin d' exécuter du code arbitraire dans le cadre du
privilège d'utilisateur exécutant la fonction gethostbyname ().
Cette vulnérabilité touche toutes les distributions CentOS 5.x,
6.x, 7.x .
Qualsys, qui a signalé le bug a été en
mesure d'exploiter à distance ce bogue dans un serveur. Alternativement,
programme de test publié par Qualsys exploite la
vulnérabilité pour prendre contrôle du serveur.voir ( http
://
www.openwall.com/lists/oss-security/2015/01/27/9).
Vulnérabilité dans le service DNS BIND
Le 28 Juillet 2015, Internet Systems Consortium a annoncé une
vulnérabilité critique (CVE-2015-5477) dans tous les serveurs DNS
BIND où les versions de 9.1.0 à 9.9.7-P1. Elle permet à un
attaquant distant d'exploiter une erreur dans le traitement des requêtes
TKEY pour lancer une attaque par déni de service (DoS) qui va provoquer
le crash du serveur.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux9.png)
FIGURE 1.5 - Version bind du serveur
1.4. Audit de sécurité 11
La vulnérabilité de Bash "Shell Shock"
Si vous avez un web Linux serveur d' hébergement, il a Bash
pour traiter certaines commandes et si vous ne l' avez pas expressément
patché il, supposer que votre serveur est vulnérable à
pirater. Linux serveurs d' hébergement Web est
généralement activé avec les modules CGI, et ils
pourraient permettre aux commandes d'être transmis à Bash, ouvrant
ainsi les portes aux pirates. Cette vulnérabilité permet aux
pirates aussi d'exécuter des commandes arbitraires et d'obtenir un
accès non autorisé au système. Ce problème est
particulièrement dangereux, car il existe de nombreuses façons
possibles Bash peut être appelé par une application. Toutes les
versions centos antérieures à celles qui sont
énumérées les mises à jour pour cette question sont
vulnérables à un certain degré.
Un pirate qui désire nuire une à une
société par des attaques pratique presque toujours de la
même manière, il s'informe des failles de sécurité
et les exploite.La reste de cette partie décrit en détail cette
stratégie.
1.4.3 Techniques de piratage et logiciels d'audit de
sécurité
1.4.3.1 Techniques de piratage d'un serveur Linux
Les agences de renseignements et des services de
sécurité de nombreux pays considèrent le piratage de leurs
systèmes et réseaux informatiques comme la plus grande menace
nationale. Ce qui était autrefois considéré comme une
blague inoffensive jouée par génies de l'informatique a
maintenant évolué en un crime à égalité avec
tout autre en termes de ses répercussions. Il est
considéré avce la même sévérité que le
terrorisme par de nombreux pays et est condamné par les gouvernements du
monde entier.
En termes simples, le piratage est rien d'autre que la rupture
dans l'ordinateur ou le système de quelqu'un d'autre en contournant les
mesures de sécurité et de voler les informations contenues dans,
ou pire, de saboter l'ensemble du système.
Dans cette partie, nous allons examiner les divers aspects de
piratage.
Dans sa forme la plus élémentaire, le piratage
peut être défini comme le processus de détermination et
l'exploitation ultérieure des diverses insuffisances et les faiblesses
dans un système informatique ou d'un réseau de ces
systèmes informatiques. Cette exploitation peut prendre la forme
d'accès et de voler des informations, la modification de la
configuration, en changeant l'image structurelle du système informatique
et ainsi de suite.
La démarche globale d'un attaque se base sur cinq
étapes, au début, la récupération des informations
publiques concernant la cible, puis cartographier le réseau cible en
listant les machines, les OS, les ports ouverts, les applications fonctionnant
sur le réseau. La troisième étape est de s'informer des
failles des applications et os utilisés. Comme deux dernières
étapes, l'attaque du système défaillant et la destruction
des traces d'attaque.
Il est facile de récolter les informations concernant
la cible en consultant son site web ou grâce au service offerte par
"whois" qui donne les noms de domaines et autres informations. La commande
traceroute aide à deviner facilement l'emplacement géographique
d'un serveur ou réseau en indiquant les passerelles
traversées.
La cartographie du réseau est assurée à
l'aide des dizaines d'outils comme ping, wireshark, nmap etc. Il est
malheureusement assez facile de récolter les informations sur les
failles, il suffit de rejoindre les sites web officiels d'une application ou
logiciel pour rendre compte les bugs et les failles de
sécurité.
Si les étapes précédentes sont bien
faites, l'attaque devient une simple formalité, ce qui reste au pirate
et de masquer ces traces pour ne pas permettre à la cible de se servir
de son attaque.
Sur la base de leur mode de fonctionnement et l'intention
derrière leurs actions, les techniques de piratage peuvent être
classées dans les catégories suivantes :
12 Chapitre 1. Étude
préliminaire
1.4. Audit de sécurité 13
Deni de service Dos Une attaque par
déni de service (en anglais Denial of Service, DoS) est une attaque qui
a pour but de mettre hors-jeu le système qui est visé. Ainsi, la
victime se voit dans l'incapacité d'accéder à son
réseau. Ce type d'attaque peut aussi bien être utilisé
contre un serveur d'entreprise qu'un particulier relié à
internet. Tous les systèmes d'exploitation sont également
touchés : Windows, Linux, Unix, ...
Les attaques DOS se présentent sous plusieurs formes
différentes, de Smurf aux larmes gouttes, à Pings de mort.
D'après Arbor Networks Plus de 2 000 000 DDoS attaques par jour sont
observées à l'échelle mondiale [11]
Chaque industrie est une cible, le secteur qui subit la grande
partie des attaques, c'est le Cloud avec 32 % de la totalité. 1/3 de
tous les incidents de temps d'arrêt sont attribués à des
attaques DDoS .
[8]
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux10.png)
FIGURE 1.6 - Répartition des cibles de DDOS [http ://
www.kaspersky.fr/]
Le reniflage ou sniffing Une technique qui
consiste à analyser le trafic réseau et capte des informations
vitales du trafic réseau spécifique à ce réseau.
Lorsque deux ordinateurs communiquent entre eux, il y a un échange
d'informations (trafic). Mais, il est toujours possible qu'une personne
malveillante récupère ce trafic. Elle peut alors l'analyser et y
trouver des informations sensibles.
L'objectif de renifler est de voler les login ,les mots de
passe...
Wireshark ,Tcdump et Ethereal sont des célèbres
logiciels de sniffing.
Énumération et balayage des ports
Cette technique de piratage consiste à effectuer un balayage ou
analyse de tous les ports sur un cible en utilisant un outil appelant
scanner.
À fin de vérifier si les ports ciblés
sont ouverts ou non le scanner envoie différents paquets sur divers
ports de la machine et en fonction de leurs réactions, le
résultat du balayage sera déduit.
Les hackers le considéré comme étant un
outil impressionnant qui leur permet de découvrir les points faibles
d'une machine et ainsi de savoir par où ils peuvent lancer leurs
attaques.
Le but principal de cette technique est d'assurer : La
découverte d'hôte, le balayage de ports ouverts, détection
de version et Service associé aux ports, détection OS et
Contournement de
pare-feu.
Avant de lancer n'importe quel type d'attaques, il faut savoir
quels sont les hôtes vivants comme il est impossible d'accéder et
de pénétrer dans une cible morte ou bien hors service sans
accès physique directe ,c'est l'étape initial d'un Test
d'intrusion (« penetration test » ou « pentest » en
anglais).
Variété de méthodes et d'outils sont
utilisés pour découvrir les cibles vivantes. La méthode
courante la plus utilisée est l'envoi des requêtes ping.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux11.png)
FIGURE 1.7 - Requêtes ICMP(ping)
Comme nous l'avons obtenu une réponse, ceci signifie
que la cible est vivante. Nous pouvons également utiliser un outil
très puissant "nmap" en spécifiant des plages de réseau
pour analyser afin de rendre notre travail plus simple.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux12.png)
FIGURE 1.8 - Liste des ports ouverts et les applications
associées
Dans la partie précédente, on a parlé du
technique de balayage des ports ouverts et les services correspondants en cours
d'exécution sur ces ports. Maintenant, il est temps d'étudier les
techniques d'exploiter ces vulnérabilités.
Le crackage Tout service ou application qui
prend en charge l'authentification est souvent utilise des mots de passe
faibles ou par défaut, qui peuvent être facilement devinés
ou fissurés par une force brute. C'est le moyen le plus rapide
d'accéder à un système distant si elle est utilisée
de manière intelligente.
14 Chapitre 1. Étude
préliminaire
Le crackage ou attaque force brute est un processus qui
consiste a deviner le mot de passe de la victime par diverses techniques,
généralement, ces attaques sont divisés en trois
catégories :
1-Force Brute traditionnelle : toutes les combinaisons
possibles vont être testées pour deviner le mot de passe correct.
Ce processus coûte beaucoup de ressource et de temps et dépendre
de la machine utilisée pour l'exécuter. Heureusement, tester
toutes les combinaisons prend beaucoup de temps.
2-Attaque par dictionnaire: attaque basée sur un
dictionnaire, une liste de mots personnalisée est utilisée au
cours de ce processus, qui contient une liste de toutes les combinaisons
possibles de nom d'utilisateur et mot de passe, elle consomme moins de temps et
de ressource que l'attaque Force Brute traditionnelle donc elle est plus
rapide, mais elle ne garantit pas le succès si les mots de passe ne sont
pas disponibles dans la liste.
3-Attaque hybride: une technique qui combine deux types
d'attaques traditionnelles, attaque force brute traditionnelle et attaque par
dictionnaire, cela se manifeste par l'application d'un attaque force brute sur
un dictionnaire. Certaines applications qui nécessitent une
authentification obligeant l'utilisateur d'utiliser un mot de passe contenant
des lettres alphabétiques suivant des chiffres. Dans ce cas, ni force
brute traditionnelle, ni attaque de dictionnaire serait efficace, mais
l'attaque hybride serait.
Il existe une variété d'outils exploitant cette
attaque come medusa ,hydra,crunch...
Détournement de session ou "Hijacking"
Nous avons vu dans les méthodes précédentes
comment craquer le mot de passe d'une cible, mais si le mot de passe de la
session est robuste cela devient difficile et prendra beaucoup de temps
à le deviner. Alors c'est inutile parfois de le craquer, mais à
la place le pirate peut attendre jusqu'à ce que la victime s'authentifie
et prendre sa place.C'est le principe du détournement de session et pour
pouvoir réagir avec le serveur, il faut mettre la victime hors-jeu en
bénéficiant d'un attaque par déni de service.
Après avoir étudié les différents
types d'attaques et vulnérabilités et comme stratégie de
sécurité, il est temps de passer à les exploiter à
l'aide des outils pour mieux se protéger.
1.4.3.2 Logiciels d'audit de sécurité
Pour pouvoir valider la sécurité du
système, il faut essayer de trouver, découvrir et détecter
des failles dans le système. Donc il faut se comporter et jouer le
rôle d'un pirate en utilisant ces outils.
Les logiciels d'audit sont classés selon plusieurs
catégories :
1.Les analyseurs du trame network protocol
analyser ou sniffer est un dispositif permettant de récupérer et
analyser les paquets réseaux, ces outils sont indétectables et
servent à aider les responsables de sécurité à
diagnostiquer les problèmes sur leur réseau et peuvent être
utilisé par des malveillants pour collecter des informations.
Wireshark, tcpdump,ettercap,dsniff sont des sniffers ultra
rapide et puissants qui supporte la plupart des protocoles.
Wireshark est un outil open source
célèbre dans le monde du réseau informatique,
précédemment connu sous le nom Ethereal, est l'un des meilleurs
renifleurs de paquets jamais. Il est non seulement utilisé par les
pirates et les testeurs de pénétration, mais aussi par les
administrateurs réseaux pour régler les problèmes au sein
d'un réseau. Depuis Wireshark est un outil vaste, il est impossible pour
moi de couvrir tous les aspects de cet outil dans ce partie; cependant, je vais
vous donnez un aperçu rapide. Nous allons utiliser cet outil pour
capturer les mots de passe en texte envoyés à travers le fil.
Commençons donc :
1.4. Audit de sécurité 15
1 -Pour lancer Wireshark on exécute la commande "
Wireshark " du terminal. Une fois lancé, on clique sur le bouton
"Capture " en haut, puis on clique sur le bouton "Analyser"
2 - Ensuite, on sélectionne l'interface qu'on souhaite
le renifler,dans ce cas, c'est eth0 et on clique sur "Démarrer" .
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux13.png)
FIGURE 1.9 - Interface wireshark
3 - l'outil de sniffing commence à capturer tous les
paquets qui circulent à travers le réseau. Sur la machine cible.
Je vais connecter à un site Web qui prend en charge l'authentification
http et arrêtera la capture sur ma machine attaquant une fois que je suis
connecté.
4 - Puisque nous avons beaucoup de paquets, nous devons les
filtrer à l'aide de Wireshark pour prendre en compte uniquement les
requêtes HTTP POST. Ainsi, à l'intérieur de la colonne du
filtre, on va taper" http.request.method == POST. "
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux14.png)
FIGURE 1.10 - Filtre wireshark
La première requête est une demande "POST"
réalisée à la destination 75.98.17.25 de notre victime,
qui a une source IP 192.168.75.142
5 - Puis, on fait un clic droit sur le paquet, en cliquant
"Follow stream tcp ", il va nous montrer la demande généré
à partir du navigateur de la victime de message original. La sortie
devrait ressembler à ce qui suit :
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux15.png)
FIGURE 1.11 - Résultat sniffing avec wireshark
16 Chapitre 1. Étude
préliminaire
Pour conclure, la requête POST contient le nom
d'utilisateur "admin" et le mot de passe "pass . " . Pour filtrer les
différents types de trafic, il existe différents types de filtres
à Wireshark à utiliser. Pour plus d'informations, je vous
suggère le site officiel de wireshark
wireshark.org .
Tcpdump au contraire que wireshark, tcpdump
travaille en mode texte, il partage la même
bibliothèque "libpcap" avec wireshark et toute capture par
tcpdump peut etre lisible par l'outil
graphique wireshrk a cause qu'ils ont la même syntaxe
d'écriture des filtres.
L'expression générale du syntaxe de tcpdump est
tcpdump [option] [expression]
On présente ici quelques options :
-- -a : convertir les adresses en nom
-- -i :specifier l'interface (eth0,eth1...)
-- -n :ne converti pas les adresses en nom
-- -x : affiche chaque paquet en hexadécimal
-- -w fichier :stocke les captures dans un fichier
-- -q :afficher le minimum d'information
les expression :
-- host,net,port : spécifie le type d'objet qu'on analyse
.
-- src ,dst :indique la direction des paquets
-- ip,icmp ... :le protocol utilisé
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux16.png)
FIGURE 1.12 - Syntaxe tcpdump
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux17.png)
1.4. Audit de sécurité 17
FIGURE 1.13 - Exemple de capture des paquets avec tcpdump
Alors, quelle est l'idée derrière la recherche
de paquets. Eh bien une bonne chose peut être à renifler des mots
de passe. Voici un exemple rapide pour renifler les mots de passe en utilisant
grep
tcpdump port http, or port FTP, or port SMTP, or port imap or
port pop3 -l -A
egrep -i 'pass= pwd= log= login= user= username= pw= passw=
passwd= password= pass: user: name : password : login : pass user'
2.Les balayeurs de ports des outils qui
servent à scanner les ports pour détecter ceux ouverts et savoir
les applications et services actives sur un système distant.
Telnet, nc, hping2, nmap sont les outils de balayage le plus
connu.Nmap se considère comme l'outil phare dans ce domaine.
Nmap ( "Network Mapper" ) est une utilitaire open source pour
la découverte du réseau et de l'audit de sécurité.
Il a été nommé " Produit de sécurité de
l'année » par Linux Journal, WorldInfo ,
LinuxQuestions.Org et codetalker
Digest.[6]
Nmap utilise des paquets IP bruts afin de déterminer
quels sont les hôtes disponibles sur le réseau, quels services
(nom de l'application et la version ) ces hôtes offrent, quels
systèmes d'exploitation (et les versions du système
d'exploitation ), ils sont en cours d'exécution, quel type de filtres de
paquets / pare-feu sont en cours d'utilisation, et des dizaines d' autres
caractéristiques. Il a été conçu pour analyser
rapidement les grands réseaux.
La syntaxe générale de nmap est de la forme nmap
[type d'analyse] [option] hote réseau Les différentes types
d'analyse :
-- -sT : balayer les ports en utilisant la connexion TCP.
-- -sP :determiner les hotes actifs dans un réseaux
-- -sS :balayer les ports en utilisant les paquets SYN.
Les options :
-- -O : essayer de déterminer le système
d'exploitation du système cible
18 Chapitre 1. Étude
préliminaire
-- -A :déterminer les applications et leurs
versions.
-- -r :balayer les ports en séquence de 1 à
1024.
On peut également analyser le réseau varie avec
nmap sur le réseau donné. Voici la commande pour balayer une
gamme d'hôtes de nmap : -sP nmap 192.168.15.1/24 . Il va scanner tous les
hôtes de la gamme 192.168.15.1 à 192.168.15.255 et retourner ceux
qui sont en place.
Comme on peut le voir sur la capture d'écran, trois
hôtes vivants ont été trouvés après avoir
scanné le réseau.
Une fois la découverte d'hôte vivant a
été effectué avec succès, nous essayons de trouver
des ports ouverts et les services qui leur sont associés. Les ports
ouverts révèlent les services qui sont en cours
d'exécution sur l'hôte. L'analyse des ports est effectuée
afin de rechercher des points d'entrée potentiels.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux18.png)
FIGURE 1.14 - Découverte des ports ouverts avec nmap
3.Les logiciels de craquage le craquage des
services se fait en fonction des protocoles ciblés,Il existe plusieurs
moyens qui pourraient être utiles ,le plus connus sont orienté
pour les OS Linux comme Backtrack ,Kali Linux ... Jetons un coup d' oeil sur
eux.
THC Hydra: est l'un des plus anciens de
craquage de mot de passe des outils développés par " La
Communauté Hackers. " De loin, Hydra a une couverture de protocole le
plus que tout autre mot de passe outil de craquage, et il est disponible pour
presque tous les systèmes d'exploitation modernes.[5]
Syntaxe de base pour Hydra:
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux19.png)
1.4. Audit de sécurité 19
FIGURE 1.15 - Syntaxe de base pour Hydra
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux20.png)
FIGURE 1.16 - Attaque par dictionnaire avec l'outil Hydra
Un simple dictionnaire de mots
téléchargés depuis internet et une liste des noms
d'utilisateurs est suffisante pour lancer une attaque avec hydra et deviner le
nom d'utilisateur et le mot de passe et de prendre contrôle au serveur si
la service attaquée est ssh à l'aide d'un seul commande" hydra -L
user.list -P password.list <@ip cible > "
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux21.png)
FIGURE 1.17 - Attaque force brute sur ssh avec hydra
20 Chapitre 1. Étude
préliminaire
Medusa comme Hydra, Medusa est un logiciel de
force brute rapide, stable et surtout fait tourné ses traitements en
parallèle car il utilise " Pthread , " ce qui signifie qu'il ne sera pas
nécessairement dupliqué l'information. Il est aussi modulaire,
car chaque fonctionnalité est conçu comme un module et il couvre
tout les modules ainsi que FTP HTTP IMAP MS-SQL MySQL POP3 PostgreSQL SNMP SMTP
SSHv2 VNC. Syntaxe de base pour Medusa:
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux22.png)
FIGURE 1.18 - Syntaxe de base pour Medusa
4. Les logiciels de dos attaque et dos
distribué DDOS les cyber-attaques de type «déni de
service» (DoS) et «Déni de service distribué»
(DDoS) sont devenue populaires et les applications qui lancent ce type
d'attaque sont devenu à la porter de tous les internautes, même
les débutants peuvent lancer une attaque dos et mettre le serveur hors
disponibilité.
HOIC et LOIC High Orbit Ion Cannon et low
orbit Ion cannon deux logiciels de la même famille,outils de dos attaque
performants, disposant d'une interface facile à utiliser,
multiplate-forme. Ils offrent la possibilité de sélectionner le
nombre de threads dans une attaque en cours et la Capacité à
étrangler les attaques individuellement avec trois réglages :
LOW, MEDIUM et HIGH. Il peut attaquer un grand nombre de cibles
simultanément jusqu'à atteindre 256 cibles.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux23.png)
1.4. Audit de sécurité 21
FIGURE 1.19 - Interface graphique hoic et loic
Les attaques gérées par ces deux outils se
basent sur le lancement de requêtes ping en arriéré plan
vers la cible, cela dépend de la performance de la machine qui effectue
cette attaque.
5.Les simulateurs d'intrusions Attack
simulator ou Network vulnerability scanner, outil complet d'attaque ou d'audit
de sécurité, il est, de même, composé d'un ensemble
d'outils comme les balayeurs de ports. Nessus, openvas, sara, Saint et ISS sont
des logiciels est le simulateur de simulateur d'intrusion. Nessus est le
simulateur le plus connu, il fonctionne en client-serveur à travers une
liaison SSL, le client pilote le serveur, il lui indique les applications et
les postes défectueuses et les exploits à utiliser. À la
fin du scan, Nessus génère un rapport sous différents
formats. Ce rapport permet d'établir la liste des machines
scannées, leurs services et leurs vulnérabilités.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux24.png)
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux25.png)
FIGURE 1.20 - Rapport de scan de simulateurs d'intrusions
Nessus
Il n'existe pas de « remède miracle » pour se
protéger et se défendre contre les différentes failles et
attaques. Plusieurs solutions techniques doivent être combinées
pour réduire à la fois le risque de faille et pour
atténuer l'impact en cas de d'attaque.
22 Chapitre 1. Étude préliminaire
1.5 Étude des Solutions techniques existantes
des failles et attaques
L'approche initiale de défense contre les attaques
ciblées et les failles de sécurité reposait sur la
sécurisation du périmètre à l'aide de pare-feu et
de systèmes de détection des instructions, permettant de
déceler et de bloquer tout comportement anormal. Cette approche peut
être efficace contre certains types d'attaques, mais non contre tous les
types de vecteurs d'attaque.Ci-dessus, je présente un tableau
récapitulatif des vulnérabilités ou attaque et les
solutions existantes pour se défendre.
Vulnérabilité ou attaque
|
solution technique
|
déni de service
|
fail2ban firewall
|
balayage de ports
|
Scanner laa machine pour connaître les ports ouverts
Surveiller les ports ouverts avec un firewall et fermer ceux qui
ne sont
pas utiles
Utiliser un IDS (détecteur d'intrusion)
Desinstallation des Services inutiles
|
Cracking
|
Adopter une politique de mots de passe robustes
Choix d'un mot de passe robuste et le garder confidentielle
Changement régulièrement de mot de passe
DenyHosts
fail2ban
|
Sniffing
|
Utilisation d'un détecteur de sniffer
Utilisation des protocoles chiffrés pour les
informations sensibles comme les mots de passe.
|
Hijacking
|
S'assurer que la communication est sécurisée
Rootkit Hunter
détecteur "activité non autorisée"
|
Buffer OverFlow
|
Installation du libsafe ( empêche les exploits de
dépassement de tampon )
Avoir un système à jour
être au courant concernant les failles des logiciels et
télécharger les patchs appropriés
|
Vulnérabilité de dépassement de
mémoire tampon
|
mise à jour du version glibc
|
Vulnérabilité dans le service DNS BIND
|
migration vers le bind 9
|
Shell Shock
|
mise à jour du bash
|
Tableau 1.1 - Tableau récapitulatif des failles et
attaques et leurs solutions associés
A chaque fois qu'on parle des attaques et failles de
sécurité , la première solution que vient à notre
esprit est la mise en oeuvre d'un système de détection
d'intrusion IDS.
1.5.1 Solutions de détection d'intrusion
Les systèmes de détection d'intrusion essayent
de distinguer la différence entre l'usage normale et une usage abusive
accompagnée d'une tentative d'intrusion. On constate une grande
quantité de distributeurs de solutions IDS développes par les
grandes entreprises de sécurité.On présente ci dessous une
comparaison technique entre les solutions propriétaires et libres.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux26.png)
1.5. Étude des Solutions techniques existantes des
failles et attaques 23
DenyHosts est un outil de
sécurité de prévention d'intrusion basée sur
l'analyse du journal d'authentification SSH. DenyHosts vérifie la fin du
journal d'authentification pour les récentes
Tableau 1.2 - Tableau comparatif des solutions de
détection d'intrusion
1.5.2 Solutions de prévention d'attaque force
brute
Dans ce cadre, nous allons citer brièvement quelques
solutions existantes et connues qui assurent la prévention des attaques
par dictionnaire. Ces solutions sont en générales logicielles qui
sont dans leur intégralité des scripts. Nous pouvons citer
24 Chapitre 1. Étude
préliminaire
OpenVAS est un scanner de vulnérabilité qui a
été dérivé de la dernière version gratuite
de Nessus après cet outil a été commercialisé en
2005. Les plugins OpenVAS sont toujours
tentatives de connexion infructueuses. Il enregistre des
informations sur leurs adresses IP d'origine et compare le nombre de tentatives
non-valides à un seuil défini par l'utilisateur. S'il y a eu trop
de tentatives invalides assume une attaque par dictionnaire est en cours et
empêche l'adresse IP de faire d'autres tentatives en l'ajoutant à
/etc/hosts.deny sur le serveur.
Les limites de cette solution sont :
** DenyHosts est limité aux connexions utilisant IPv4. Il
ne fonctionne pas avec IPv6. ** Ne parvient pas à protéger contre
une attaque par force brute distribuée.
** Vulnérable à l'injection de journal distant,
une technique d'attaque similaire à l'injection SQL, dans lequel un nom
d'utilisateur spécialement conçu est utilisé pour
déclencher un bloc contre un site choisi par l'attaquant
** Supporte seulement les attaque force brute sur le service
ssh.
** Utilise le fichier hosts.deny au lieu du pare feu.
Fail2ban : DenyHosts ne fait que
protéger le service ssh. Si on a besoin pour protéger d'autres
services aussi bien, Fail2ban est certainement un meilleur choix. Il est
configurable pour regarder presque tous les services si vous êtes
prêt à modifier sa configuration, mais cela ne devrait pas
être nécessaire que les nouvelles versions de Fail2ban comprennent
des rules par défaut qui conviennent à de nombreux démons
de serveur populaires.Fail2ban utilise des règles iptables pour bloquer
complètement un attaquant pour un laps de temps spécifié,
au lieu de simplement réduire la rapidité, il peut marteler votre
serveur.
Les bénéfices de Fail2ban :
** Supporte tous les services.
** Fonctionne avec la connexion IPV4 et IPV6
** Simple à mettre en oeuvre.
** utilise le pare-feu au lieu de fichier hosts.deny
1.5.3 Solutions de simulation d'intrusion
Comme on a déjà vu un simulateur d'intrusion est
un outil performant qui peut être à la fois une sorte d'attaque ou
un moyen pour s'informer des failles récentes.
SAINTEst un outil d'évaluation des
vulnérabilités. Comme Nessus, il l'habitude d'être libre et
open source, mais est maintenant un produit commercial. SAINT fonctionne sur
Linux et Mac OS X. En fait, SAINT est l'un des rares fournisseurs de scanners
qui ne prennent pas en charge Windows du tout. L'abonnement mensuelle du Saint
est trop cher, il coûte 3 000 $.
Nessus est l'un des scanners les plus populaires et capables
de vulnérabilité, en particulier pour les systèmes UNIX.
Il a d'abord été libre et open source, mais ils ont fermé
le code source en 2005. Il coûte maintenant 2190 $ par année, qui
bat encore beaucoup de ses concurrents. "Nessus Home" version gratuite est
également disponible, même si elle est limitée et seulement
une licence pour l'utilisation du réseau domestique.
Nessus est constamment mis à jour, avec plus de 70.000
plugins. Les dispositifs principaux incluent des contrôles locaux et
distants (authentifié) sécurité, une architecture client /
serveur avec une interface basée sur le web, et un langage de script
intégré pour écrire vos propres plugins ou à
comprendre ceux qui existent déjà.
1.6. Conclusion 25
écrites dans la langue Nessus NASL. Malgré qu'il
est gratuit et libre, les mises à jour sont rares et son interface
graphique est difficile à manipuler.
Ci-dessous on présente quelques problèmes de
sécurité et les simulateurs d'intrusions qui les supportent.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux27.png)
Tableau 1.3 - Tableau comparatif des simulateurs d'intrusion
1.6 Conclusion
Dans ce premier chapitre, nous avons présenté
Sotutech. Puis nous avons expliqué le contexte du projet et
explicité la problématique à résoudre. Finalement,
nous avons décrit les différentes étapes du projet ainsi
qu'un aperçu de l'état de l'art des failles et attaques et une
étude comparative des solutions existantes dans le marché. Le
chapitre suivant mettre en oeuvre, les solutions de sécurité.
26
Chapitre2
Sécurisation du serveur
Dans le chapitre précédant ,j'ai
présenté une définition de la sécurité
informatique ,les types de vulnérabilité et attaque . Dans ce
chapitre je veux prendre un point important : comment se protéger?
Mettre en place une sécurité forte sur un
serveur a pour but d'empêcher, ou au moins de limiter, les attaques de
pirates et de couvrir les vulnérabilités .
L'association à chaque problème ,attaque ou
faille identifiée, sa solution technique ,l'étude et
l'implémentation des différents outils de sécurité
proposés et existants, l'intégration d'un système de
surveillance en temps réel le développant d'un mécanisme
de sauvegarde et restauration du système d'informations peut
réduire le risque de piratage et de perte des données du serveur
.
2.1 Adoption de la politique de
sécurité
Comme tout problème qui réside dans n'importe
quelle entreprise en particulier les problèmes informatiques ,leurs
actions doivent être le résultat d'une démarche bien
déterminé méthodologi-quement en l'occurrence une
politique de sécurité ,Celle ci nous permet d'agir en de
manipuler des choix cohérents qui répondre à un cahier des
charges .
Pour établir une politique de sécurité on
doit dans un premier lieu identifier ce qu'il faut protéger , ensuite
passant par analyser et pondérer des risques qui étaient
déjà effectués au niveau du chapitre
précédent .Puis l'évaluation des contraintes ,les
principales sont souvent l'existant coté matériel et logiciel et
le temps. À ne pas oublier une phase importante le choix des moyens qui
vont être regroupés selon trois catégories , Les moyens de
sécurisation citons les pare feux les antivirus ... , Les moyens de
sécurisation citons-les parent feux les antivirus ... les moyens de
détections d'intrusion, les moyens de surveillance du serveur citons
l'analyse des logs, les alertes...Comme dernière étape la phase
du test, après avoir mis en place une politique de
sécurité assurer s'il répond au cahier des charges
.L'objectif principal de la sécurité est de garder ou de
sauvegarder la pérennité de l'entreprise. C'est pour cela que la
politique de sécurité mise en oeuvre doit s'inspirer des besoins
réels qui ont été définis à partir de cahier
des charges, des menaces et des vulnérabilités. Elle impose une
complémentarité entre les procédures, les outils mis en
oeuvre et les personnes impliquées.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux28.png)
2.2. Stratégie de base de sécurisation du
serveur 27
FIGURE 2.1 - Politique de sécurité
2.2 Stratégie de base de sécurisation du
serveur
Sécuriser un serveur Centos passe évidemment par
plusieurs étapes ,l'une des étapes le plus critiques c'est
maintenir le système à jour .
2.2.1 La mise à jour du système
Effectué une mise à jour du système et
des applications est sans doute la tache la plus efficace et la plus importante
car il corrige les failles .La mise à jour devient être
obligatoire et journalière pour un bon fonctionnement du système.
Les principales commandes pour maintenir à jour notre serveur Centos
sont :
yum check-update : vérifier s'il
existe des mises à jour à effectuer.
rpm -q -changelog : consulter l'historique
des mises à jour et leurs raisons.
yum update : effectuer les mises à
jour.
C'est inutile de mettre à jour manuellement le
système donc c'est décisif de programmer le système
à vérifier les mises à jour existant de les effectuer et
d'alerter l'administrateur du serveur à la fin de l'opération .
Pour cela on installe et on modifie Le paquet yum-cron qui offre un moyen
pratique pour vérifier, télécharger et appliquer des mises
à jour automatiquement pour qu'il s'adapte à nos besoins . le
sevice yum-cron est installé sous centos à l'aide de yum -y
install yum-cron puis on édite le fichier de configuration
/etc/yum/yum-cron.conf .
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux29.png)
28 Chapitre 2. Sécurisation du serveur
FIGURE 2.2 - Exemple de fichier de configuration yum-cron
Après avoir configurer yum-cron il faut le lancer et vérifier son
fonctionnement .
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux30.png)
FIGURE 2.3 - Exécution du service yum cron
2.2.2 la minimisation du système
On désigne par minimiser le système
installé les applications nécessaires et donc désinstaller
tout ce qui n'est pas nécessaires, activer seul les services
fonctionnels , fermer les ports non utilisés, supprimer les
bannières des applications, le principe est de supprimer tout ce qui
indique le nom et la version de l'application [Fig 2.4] car elles simplifient
le travail du pirate, minimiser les comptes utiliser et enfin minimiser les
privilèges d'accès.
Avant de passer à la minimisation du système il
faut lister les services installés, les services actifs, les ports
ouverts et les applications associés..
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux31.png)
2.2. Stratégie de base de sécurisation du
serveur 29
30 Chapitre 2. Sécurisation du serveur
FIGURE 2.4 - Liste des services installés
Commençons par supprimer ou désinstaller les
services inutiles . Dans notre serveur Centos on
n'a pas besoin d'utiliser les services portmap, nfs et inetd ,on
les désinstalle ou les arrête à l'aide
des commandes
/etc/init.d/portmap stop
update-rc.d -f portmap remove
yum remove portmap
/etc/init.d/nfs-common stop
update-rc.d -f nfs-common remove
update-rc.d -f inetd remove
yum remove ppp
Passons à la minimisation des
autorisations diverses concernant les compilateurs et les instal-
leurs ,l'ajout et la suppression des comptes utilisateurs et la
modifications du pare-feu ,cela devrait
être effectué seulement par l'utilisateur root :
chmod o-x /usr/sbin/gcc : gcc est un
compilateur
chmod o-x /usr/sbin/make :make est un outil de
construction des fichiers exécutables à
partir d'un code source.
chmod o-x /usr/sbin/yum-complete-transaction :
yum-complete-transaction est un
programme qui trouve les transactions yum incomplètes ou
avortées sur un système et tente de
les compléter.
chmod o-x /usr/sbin/useradd : useradd est une
commande d'ajout d'un utilisateur.
chmod o-x /usr/sbin/userdel : userdel est une
commande de suppression d'un utilisateur.
chmod o-x /usr/sbin/iptables : iptables est le
parefeu Linux.
2.2.3 L'isolation du serveur et la protection de son
accès
Présente évidement la clé de
sécurité ,car il limite tout accès illégal au
serveur ,il concerne toutes techniques servent à garder le serveur loin
des mains des agresseurs.
Les mots de passe
Il existe différentes manières
d'authentification, la plus répondue est l'utilisation d'un mot de
passe, selon SANS (SysAdmin, Audit, Network, Security) une organisation
regroupant 165 000 professionnels de la sécurité , un mauvais mot
de passe constitue la deuxième plus importante faille d'un
système ,la première étant l'absence de la mise à
jour . [12] .Un bon choix des mots de passe robustes est nécessaire pour
rendre difficiles à les retrouver à l'aide d'outils
automatisés et à deviner par une tierce personne.
Un bon mot de passe doit ne pas contenir le prénom ,le
nom , le login,des informations qui ont un rapport avec l'utilisateur "date
naissance , nom d'un membre de la famille ... " , des mots du dictionnaire de
n'importe quelle langue, une suite des lettres de la forme w sur le clavier
comme aqwsedcft ,edcftgbhu ...Tout simplement à ne pas utiliser tout ce
que peut être deviné facilement.Un mot de passe efficace doit
contenir au moins 8 chiffres en assurant la mélange entre les majuscules
, les minuscules ,les chiffres et les symboles et en facilitant sa
mémorisation et la rapidité lorsqu'on tape pour éviter
l'espionnage .Il existe des bonnes pratiques pour générer un mot
de passe , utiliser l'initiales des mots d'une phrase ,prenons comme exemple
"JPCAU14" générer à partir de la phrase "je
préfère Centos à Ubuntu 14" ou mélanger des mots
,par exemple les mots "redhat et Centos " donnent "rceednhoast".Le plus
important que ça est de changer régulièrement le mot de
passe , associer à chaque service son propre mot de passe , garder le
confidentielle et ne le transmettre pas via e-mail ou l'écrire n'importe
où .
Secure Shell SSH
Secure Shell ou SSH est à la fois un programme
informatique et un protocole de communication sécurisé qui offre
un ensemble de commandes en remplaçant les commandes remote (rlogin,rsh)
. Il devient donc impossible d'utiliser un sniffer pour voir ce que fait
l'utilisateur. SSH est implémenté pour différents
environnements tel que linux windows et macintosh .Le logiciel putty pour
windows sert à jouer le rôle d'un client ssh et telnet .
Après avoir lancé putty, il ouvre un tunnel
sécurisé avec le serveur pour établir une connexion avec
le serveur .
L'établissement d'une connexion SSH se fait en
plusieurs étapes : Dans un premier temps le serveur et le
client s'identifient mutuellement afin de mettre en place un canal
sécurisé (couche de transport sécurisée).
Dans un second temps le client s'authentifie auprès du
serveur pour obtenir une session .
La figure ci-dessous présente l'architecture du
protocole SSH .
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux32.png)
2.2. Stratégie de base de sécurisation du
serveur 31
FIGURE 2.5 - Authentification SSH
L'authentification ssh Une fois que la
connexion sécurisée est mise en place entre le client et le
serveur, le client doit s'identifier sur le serveur afin d'obtenir un droit
d'accès. Il existe plusieurs méthodes : La méthode la plus
connue est le traditionnel mot de passe. Le client envoie un nom d'utilisateur
et un mot de passe au serveur au travers de la communication
sécurisée et le serveur vérifient si l'utilisateur
concerné a accès à la machine et si le mot de passe fourni
est valide. Une méthode moins connue mais plus souple est l'utilisation
de clés publiques. Si l'authentification par clé est choisie par
le client, le serveur va créer un challenge et donner un accès au
client si ce dernier parvient à déchiffrer le challenge avec sa
clé privée
Afin de mieux sécuriser l'accès SSH au serveur,
j'édite le fichier de configuration de ssh , changer le port de
connexion par défaut est une bonne idée pour éviter
quelques attaques par force brute sur le port 22, qui est bien connu pour
héberger ce service,n'autorisons pas l'accès via compte root
dès le début ,accéder en tant qu'autre utilisateur puis
avec la commande su ouvrons une session root .
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux33.png)
FIGURE 2.6 - Exemple de fichier de Configuration ssh
32 Chapitre 2. Sécurisation du serveur
Notre politique de sécurité de la connexion ssh
se base sur l'authentification à clé publique . Utiliser
l'authentification SSH par une clé publique pour se connecter à
un système distant est un solide alternatif plus sûr pour se
connecter avec un mot de passe . SSH authentification par clé publique
repose sur des algorithmes cryptographiques asymétriques qui
génèrent une paire de clés distinctes un privé et
l'autre public. On garde la clé privée un secret et on le stocke
sur l'ordinateur que l'on utilise pour se connecter au système distant.
La clé publique sera stocké sur le système distant dans un
répertoire .ssh/authorized-keys.
Pour configurer l'authentification par clé publique en
utilisant SSH ,on utilise la ligne de commande SSH pour générer
une paire de clés en utilisant soit l'algorithme DSA ou RSA : pour
générer des clés DSA , on tape ssh-keygen -t dsa , dans
notre cas on génère des clés RSA à l'aide du
commande ssh-keygen -t rsa
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux34.png)
FIGURE 2.7 - Génération des
clés rsa
Trois fichiers seront crées sous /.ssh , un fichier
id-rsa présent la clé privé , un fichier id-rsa.pub
correspond au clé publique et un fichier autorized-keys contient une
copie des clés publiques des utilisateurs distants .La clé
privée sera copiée sur la poste client qui sera utilisée
pour configurer de l'authentification par clé publique en utilisant un
agent comme PuTTY sous Windows.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux35.png)
2.2. Stratégie de base de sécurisation du
serveur 33
FIGURE 2.8 - Configuration de l'authentification par
clé publique en utilisant PuTTY sur un ordinateur Windows
Alerte login root Recevoir une alerte
à chaque connexion ssh limite le piratage du serveur .De cette
façon, nous serons prévenus lorsqu'un login est
effectué.Il suffit donc d'éditer le fichier /root/.bashrc
exécutable au démarrage d'une session root pour envoyer un e-mail
de notification contenant la date , l'identité du source de connexion
.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux36.png)
FIGURE 2.9 - Configuration d'alerte login
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux37.png)
34 Chapitre 2. Sécurisation du serveur
FIGURE 2.10 - Exemple alerte login
PAM
PAM, Pluggable Authentication Modules (modules
d'authentification enfichables) est une API , présente une solution
crée par SUN Microsystems afin de résoudre l'adaptabilité
des règles de sécurité , en effet avant la création
de ce mécanisme le changement de méthode d'authentification ou
des règles de sécurité impose la modification
d'application de login qui était différent d'un système
linux à un autre.Toute commande devient modifiable sans recompilation en
utilisant cette API , il suffit donc de modifier des plug-in associer à
chaque application .
Chaque application possède un fichier de configuration
sous PAM dans le répertoire /etc/pam.d Chacun de ces fichiers est
composé de 3 parties : prenons l'exemple de plug-in ssh [Fig 2.11] :
1.type de module:
auth : authentification de l'utilisateur (Unix, SMB, LDAP...)
account : gestion des utilisateurs (ex : restrictions
horaires)
session : tâches à effectuer en début et fin
de chaque session
2.contrôle de réussite :
required : la réussite d'au moins un des modules required
est nécessaire
requisite : la réussite de tous les modules requisite est
nécessaire
sufficient : la réussite d'un seul module sufficient est
suffisante
optional : la réussite d'au moins un des modules
required est nécessaire si aucun autre n'a réussi
3.Quelques modules PAM intéressants :
pam-unix : Ceci est le module d'authentification standard
Unix. Il utilise des appels standard provenant des bibliothèques du
système pour récupérer et définir les informations
de compte, ainsi que l'authentification. Habituellement, cela est obtenu
à partir du fichier /etc/passwd et le fichier /etc/shadow
pam-cracklib : ce module utilise la bibliothèque
cracklib pour vérifier la solidité d'un nouveau mot de passe. Il
peut également vérifier que le nouveau mot de passe n'est pas
construit à partir de l'ancien.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux38.png)
2.2. Stratégie de base de sécurisation du
serveur 35
FIGURE 2.11 - Exemple plug-in ssh sous pam
pam-limits : ce module permet de limiter les ressources
accessibles à un utilisateur et/ou à un groupe comme le nombre de
processus simultanés et leurs temps CPU, le nombre de fichiers ouverts
simultanés et leurs tailles, le nombre de connexions simultanées,
etc. La configuration se fait via le fichier /etc/security/limits.conf
pam-rootok : permet à root l'accès à un
service sans avoir à rentrer de mot de passe. A ne pas utiliser avec
login.
pam-time : permet de limiter les horaires d'accès. La
configuration se fait via le fichier /etc/security/time.conf
pam-user : ne permet l'accès au compte root qu'aux
seuls membres du groupe user. A n'utiliser qu'avec su.
Gérer la stratégie du mot de passe avec
pam-unix et pam-cracklib Comme on a déja vu dans la partie
précédente que le mot de passe construit la première
defence contre le piratage donc on va effectuer une stratégie de
contrôle de changements de mot de passe .Éditons sous /etc/pam.d/
le fichier sysauth .il doit mémoriser un nombre précis de mot de
passe ancien avec un ensemble des règles prédéfinies .A
chaque changement de mot de passe , il les vérifie.Pour éviter un
attaque par dictionnaire on définit une politique de mot de passe, un
ensemble de règles qui doivent être respectées . La
politique de mot de passe est un facteur important dans la
sécurité informatique depuis les mots de passe des utilisateurs
sont trop souvent la principale raison de la violation de la
sécurité du système informatique.
36 Chapitre 2. Sécurisation du serveur
La politique de mot de passe sera définie comme ceci :
*Âge de Mot de passe :Le nombre maximum de jours un mot de
passe peut être utilisé.
*Longueur de Mot de passe :Longueur minimale du mot de passe
acceptable. *complexité de Mot de passe
*Nombre d'échecs de connexion
*Nier les mots de passe utilisés
Des lignes de code seront ajoutées au plug-in pam
concerné comme password requisite
pam-cracklib.so
try-first-pass retry=3 type= ucredit=-2 lcredit=-2 dcredit=-2
ocredit=-2
ucredit=-2 où 2 est le nombre de caractères
majuscules requis dans un mot de passe
lcredit=-2 où 2 est le nombre de caractères
minuscules requis dans le mot de passe
dcredit=-2 où 2 est le nombre de chiffres requis dans le
mot de passe ocredit=-2 où 2 est le nombre de symboles requis dans un
mot de passe
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux39.png)
FIGURE 2.12 - Stratégie du mot de passe avec pam-unix et
pam-cracklib
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux40.png)
Il existe autres modules pam limitant accès au
système ainsi que pam-limit,pam-
FIGURE 2.13 - Test de stratégie du mot de passe
2.3. Les pare-feux et les anti-crackages 37
warn et pam-time qui a pour rôle de restreindre
l'accès au système ou des applications spécifiques
à différents moments de la journée et des jours
spécifiques. Ce module peut être configuré pour refuser
l'accès aux utilisateurs (individuels) en fonction de leur nom, l'heure
du jour, le jour de la semaine, le service qu'ils appliquent et leur terminal
à partir duquel ils font leur demande.
2.3 Les pare-feux et les anti-crackages
Un pare-feu (firewall en englais ) est outil matériel
et/ou logiciel. Ils sont considérés comme la première
solution technologique conçut pour protéger les données
d'un système local ou en réseau utilisé . De ce fait, il
existe différentes catégories de firewall. Chacune d'entre-elles
dispose d'avantages et d'inconvénients qui lui sont propres. Le choix du
type d'un type de firewall plutôt qu'un autre dépendra de
l'uti-lisation que l'on souhaite en faire, mais aussi des différentes
contraintes imposées par le réseau devant être
protégé.On s'intéresse ici au pare-feu logiciel .
2.3.1 FirewallID
Firewalld est une solution complète de pare-feu
disponible par défaut sous Cen-tOS serveur,présente une
évolution dans le monde de firewall.Son importance réside dans le
fait qu'ils prennent en compte la validité des paquets qui transitent
par rapport aux paquets précédemment reçus,tous attributs
de chaque connexion seront sauvegardés en mémoire dès
leurs débuts jusqu'à leur fin .les adresses IP, numéros de
port ... sont les attributs qui seront stockés en mémoire .Ce
firewall a pour advantage la protection contre certaines attaques DoS comme le
Syn Flood,un attaque qui consiste à envoyer en masse des paquets de
demande de connexion (SYN) sans en attendre la réponse (c'est ce que
l'on appelle flood). Ceci provoque la surcharge de la table des connexions des
serveurs ce qui les rend incapable d'accepter de nouvelles connexions.
Un autre atout de FirewallId est l'acceptation
d'établissements de connexions à la demande. C'est à dire
qu'il n'est plus nécessaire d'ouvrir l'ensemble des ports
supérieurs à 1024.
Le principe de fonctionnement FirewallId est décrit
comme suit dans la figure [Fig 2.14]
- INPUT :Cette chaîne est utilisée pour les
paquets étant à destination des applications du firewallId. A ce
stade, les paquets sont prêts à être envoyé aux
applications.
- OUTPUT : Cette chaîne est utilisée pour les
paquets sortant des applications du firewallId. A ce stade, les paquets ont
donc déjà été traités, ou
générés par les applications
- FORWARD : Cette chaîne filtre les paquets passant
d'une interface à une autre du firewallId, c'est à dire qu'ils ne
sont pas destinés à une application présente sur le
firewallId. Ces paquets ne passent pas par les chaînes INPUT et OUTPUT et
ne
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux41.png)
38 Chapitre 2. Sécurisation du serveur
FIGURE 2.14 - Principe de fonctionnement du
firewallId
passent jamais par la couche applicative. Dans ce cas, le
firewallId se comportera comme une passerelle.
- PREROUTING : Quand les paquets arrivent au niveau du
firewall, ils sont dans un état non modifié. C'est à dire
qu'il n'y a encore eu aucun traitement quel qu'il soit
- POSTROUTING : Quand les paquets sont prêts à
être envoyés sur l'interface réseau. Ils ont donc
été traités par les applications, et router par le
firewall. Tous les traitements sur ces paquets sont alors terminés.
nous allons mettre en place un pare-feu pour le serveur . la
figures ci-dessous présente un exemple des règles définies
pour contrôler le trafic entré-sorti sur différents ports
et n'accepte que ceux qui sont autorisés .
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux42.png)
2.3. Les pare-feux et les anti-crackages 39
40 Chapitre 2. Sécurisation du serveur
FIGURE 2.15 - Exemple d'un script firewall
La firewallId est donc une suite de règles qui
spécifient des critères. Si un paquet ne correspond pas à
une règle c'est la prochaine règle de la chaîne qui est
utilisée, si il correspond la règle va « sauter » vers
une autre règle .Parmi les cibles définies par firewallId trois
sont fréquemment utilisées : ACCEPT, DROP et REJECT.
· ACCEPT signifie qu'on laisse passer le paquet à
travers le firewall.
· DROP signifie que le paquet est purement et simplement
jeté. L'hôte source du paquet ne sera pas prévenu, le cas
est identique à la perte du paquet.
· REJECT signifie que le paquet est rejeté. A la
différence de DROP, un paquet d'erreur est transmis à
l'émetteur du paquet rejeté. Ainsi celui-ci est prévenu
que le paquet a été rejeté et pour donc agir en
conséquence
Les réglés de pare-feu peuvent être
modifiées par plusieurs outils de sécurité Se
prémunir contre les attaques ,l'une entre eux est Fail2ban pour lutter
contre attaque par dictionnaire .
2.3.2 Fail2ban
Fail2ban est un script surveillant les accès
réseau grâce aux logs des serveurs. Lorsqu'il détecte des
erreurs d'authentification répétées, il prend des
contre-mesures en bannissant l'adresse IP grâce à iptables. Cela
permet d'éviter nombre d'attaques force brute et/ou par dictionnaire.
Généralement Fail2Ban est utilisé pour
mettre à jour les règles de pare-feu pour rejeter les adresses IP
pour une marge de temps spécifié, bien que toute autre action
arbitraire ,par exemple l'envoi d'un e-mail, pût également
être
configurée. la boîte
Fail2Ban est livré avec des filtres pour divers services (apache,
courrier, ssh, etc.).
Fail2Ban est capable de réduire le taux des tentatives
d'authentifications incorrectes mais il ne peut pas éliminer le risque
que la faiblesse des services d'authentifi-cation qu'il faut les Configurer
à utiliser seulement deux facteurs ou des mécanismes
d'authentification public / privé si on veut vraiment les
protéger.Son fonctionnement se base sur divers actions , filtres et
"jails" .[Voir Annexe F page 81].
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux43.png)
FIGURE 2.16 - Exemple d'actions fail2ban
Le rôle des filtres est d'indiquer à fail2ban
quelles chaînes à rechercher dans les logs, et comment en extraire
l'adresse IP. Les jails à son rôle indiquent à fail2ban
dans quels logs rechercher ces chaînes, combien d'échecs
tolérés, quels ports bloquer et pendant combien de temps.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux44.png)
2.3. Les pare-feux et les anti-crackages 41
FIGURE 2.17 - Mécanisme de fonctionnement fail2ban
FIGURE 2.18 - Blocage d'une connexion ssh par fail2ban
On peut ensuite vérifier directement par Fail2ban les
IP bloquées avec la commande "fail2ban-client status ssh" , ssh pour
filtrer tous les autres services.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux45.png)
FIGURE 2.19 - Liste des ip bloquées par fail2ban
la protection de tous ses outils se limite c'est là
où les systèmes de détection d'in-trusion viennent
compléter ses fonctions : au travers d'une surveillance de
l'identité des requêtes en circulation sur le réseau, ces
outils sont à même de repérer les requêtes
malintentionnées, de repérer les intrus dans le flot du trafic
courant transitant par les ports de communication laissés ouverts par le
firewall.
42 Chapitre 2. Sécurisation du serveur
2.4 Système de détection d'intrusion
IDS
L'évolution des techniques de piratage nécessite
obligatoirement l'évolution des techniques de combattre d'attaque.Le
système de détection d'intrusion IDS (Intrusion détection
system) présente depuis longtemps un moyen prometteur pour lutter contre
.Les techniques de détection d'intrusion essayent de distinguer la
différence entre l'usage normal et un usage abusif accompagné
d'une tentative d'intrusion et effectuent une alerte .
Typiquement ,Les données sont parcourues à la
recherche des signatures d'intru-sion ,des actes anormaux ou d'autres
agissements intéressants .Il est de préférence que la
détection se fait en temps réel pour alerter immédiatement
pour que le responsable sécurité pourra essayer de le
réparer .
Chaque système de détection d'intrusion
possède nombreuse partie,chacun a son propre rôle dans le
processus de détection :
1.Les sources de données : Cible d'attaque
,analysée lors de la détection d'intru-sion afin de
vérifier si une intrusion est en cours ou non .
2.Le moteur de détection d'intrusion : responsable
d'analyse de données et reçu précédemment.
3.La réponse de détection : suite au analyse
effectué par le moteur, le système choisir d'effectuer une action
.
Je présenterai ci-dessous l'architecture d'un
détecteur d'intrusion .
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux46.png)
FIGURE 2.20 - Architecture d'une plateforme de
détection d'intrusion
Les détecteurs d'intrusions sont multiples et peuvent se
classifier en plusieurs
2.4. Système de détection d'intrusion IDS
43
catégories adaptées au type de donnée que
l'on souhaite analyser.Il est possible de ne retenir que deux grandes familles
d'IDS :
2.4.1 Les détecteurs d'intrusion locales HIDS
HIDS ou Host-Based Intrusion Detection System, se basent sur
des informations provenant du système d'exploitation et se divisent
eux-mêmes en plusieurs catégories .
2.4.1.1 Les outils de vérification
d'intégrité des fichiers
Connu sous le nom FIS(file intrusion scanner),toutes
modifications de fichiers ou logiciels détectables sont
considérées comme infections ou activité non
autorisée .Le mécanisme FIS se base initialement sur la
vérification des empreintes des fichiers (MD5,SH1...) Linux dispose de
plusieurs outils de vérification d'intégrité (file
integrity checker ) comme tripwire et etckeeper .
Tripwire :
Qu'est-ce que Tripwire?
Tripwire est un programme détectant "activité
non autorisée" sur le système en créant une base de
données de tous les fichiers , y compris des informations sur la
l'emplacement des fichiers ,taille de chaque fichier , la dernière date
de modification et d'autres données.Tripwire peut aider à assurer
l'intégrité des fichiers et des répertoires critiques du
système en identifiant toutes les modifications apportées.Les
options de configuration tripwire incluent la possibilité de recevoir
des alertes par e-mail si des fichiers particuliers sont modifiés et
l'intégrité automatisée de vérification à
des dates régulières via une tâche cron. Utilisation de
Tripwire pour la détection d'intrusion et l'évaluation des
dommages vous aide à garder la trace des changements de système
et peut accélérer la récupération à partir
d'un cambriolage en réduisant le nombre de fichiers que vous devez
restaurer pour réparer le système.
Tripwire compare les fichiers contre les enregistrements de la
base de données et utilise l'information générée
pour déterminer si l'un de ces changements nécessitent une
enquête plus approfondie.Cet outil sera programmé pour
vérifier les fichiers à des heures régulières sur
le système contre les enregistrements de la base de données et
utilise l'information générée pour déterminer si
l'un de ces changements nécessite une enquête plus approfondie. Il
génère la ligne de base en prenant un instantané des
fichiers et des répertoires spécifiés dans un état
sûr connu.On présente ci-dessous la méthode de
fonctionnement de tripwire .[Voir Annexe T page 84.]
44 Chapitre 2. Sécurisation du serveur
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux47.png)
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux48.png)
FIGURE 2.21 - Diagramme de fonctionnement de
tripwire
Tripwire peut être configuré pour envoyer un
e-mail à un ou plusieurs comptes s'il détecte lors de son analyse
une violation d'un type spécifique de la politique .Notez qu'il faut
avoir comprendre ce que la politique de sécurité doit être
surveillée et qui devra être notifié quand ces
règles sont violées.Dans le cas des grands systèmes avec
multiple administrateurs ,selon le type de violation un administrateur obtient
un
2.4. Système de détection d'intrusion IDS
45
e-mail de notification.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux49.png)
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux50.png)
FIGURE 2.22 - Exemple d'alerte tripwire
Etckeeper
Le répertoire etc est l'un des principaux
répertoires Linux , la raison de son importance et son rôle
essentiel dans le fonctionnement du système Linux es que presque tous
les fichiers de configuration du système se trouve ici .Les applications
nouvellement installées ,les bibliothèques système
intégrées accompagnées de leurs configurations ,les
changements de configuration et les mises à jour sont stockées
sous etc .Donc ,il est important d'identifier toute intrusion affecte cette
répertoire .
Avec etckeeper, on peut facilement gérer etc avec une
mécanisme de contrôle de version et garder une trace des
modifications effectuées dans /etc en le plaçant dans un
dépôt et minimiser la perte potentielle de données.Il
interagit avec la commande yum pour appliquer les changements automatiquement
à etc lorsque des paquets sont installés ou mis à
jour.Comme tripwire , etckeeper peut être configuré d'alerter
l'administrateur de tous changements affectant le répertoire etc . [Voir
Annexe E page 80].
46 Chapitre 2. Sécurisation du serveur
Si on change un fichier sous etc comme le fichier hosts
etckeeper détecte ce changement et envoie une alerte .
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux51.png)
FIGURE 2.23 - Test de fonctionnement de
etckeeper
2.4.1.2 Les détecteurs de rootkit et Les
antivirus
Cela fait maintenant presque 20 ans que les rootkits existent,
et qu'ils permettent aux pirates informatiques d'accéder aux
données des utilisateurs afin de les voler sans qu'ils ne soient
détectés pendant un certain temps. Ce terme désigne
généralement certains outils de malware qui sont conçus
spécialement pour se dissimuler dans les ordinateurs infectés et
permettent aux pirates de contrôler l'ordinateur.[3]
Si par malheur , après une intrusion , l'attaquant
arrive a prendre contrôle du système , il y a fort à parier
qu'il y laisse une backdoor (porte dérobée) qui lui permettrait
d'en reprendre le contrôle plus tard, ou d'installer un rootkit qui lui
permet de modifier certaines commandes .Le FIS (File Intrusion Detection) peut
les détecter mais certains rootkit sont particulièrement
dangereux et difficile à détecter compte tenu du fait que ce type
de malware est conçu pour être dissimulé et effectuer son
travail en arrière plan ,donc on a besoin utilitaires conçus pour
rechercher les rootkits comme Rkhunter .
Rkhunter Rkhunter ou rootkit Hunter, est
basiquement un chasseur de rootkit chargé de détecter
d'éventuels rootkits sur le systeme .Le résultat final de
l'intégra-tion d'un rootkit est donc que le binaire/exécutable du
programme est modifié, son hash change également.
RKhunter offre une protection en comparant les fonction de
hachage hash (MD5 ,SHA1) des fichiers importants avant/après infection
,càd comparer les empreintes des exécutables connus (exemple
« cd« , « ls« , « bash« , etc..) du
système avec une base de hash en ligne.
Il part à la recherche et la detection de tous
comportement suspect le fruit d'une infection ,prenoms l'exemple de La
présence de fichiers cachés inhabituels,la présence de
signatures de rootkits et malwares connus,les permissions anormales (exemple :
une permission 777 sur /etc/shadow contenant la liste des mots de passe),les
ports en écoute,détails de configuration des services sensibles
(SSH par exemple).
2.4. Système de détection d'intrusion IDS
47
Rkhunter est relativement léger , il peut être
configuré pour exécuter des vérifications chaque jour pour
que nous avons toujours des informations à jour sur les intrusions.toute
activité anormale détectable ,l'administrateur sera alerté
.Ci dessous est un exemple d'alerte lors d'un analyse rkhunter.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux52.png)
FIGURE 2.24 - Exemple d'alerte de
detection de rootkit
Il existe autres outils anti rootkit ,qui réagissent de
la même façon que rkhunter comme chkrootkit - Linux rootkit
scanner ,Lynis - Universal security auditing tool and rootkit scanner et
TDSSKiller l'outil performant développé par Kaspersky Lab .l'anti
rootkit doit etre supporté par un antivirus pour optimiser la
protection.
Antivirus Généralement Linux ne
présente pas un cible pour les virus ,d'abord parce qu'il y'a un peu de
virus orienté Linux et qu'ensuite il est facile à les
détecter .La protection antivirus est la dernière chose dont on a
besoin pour notre sécurité pour protéger contre les vers
et les chevaux de Troie qui envahissent les dossiers.Clamav un logiciel libre
et open source d'antivirus pour linux suffisant pour assurer la protection .Une
fois clamav est installé , mettre à jour sa base de donnée
est une tache critique pour avoir les signatures des virus à jour puis
il est préférable d'automatiser une analyse journalière
.
2.4.2 Le détecteur de balayage de ports
portsentry
Comme on a déjà vu , le balayage des ports,
genre avec nmap est une phase importante lors d'un attaque ,Avoir un
détecteur et bloquer de scans de ports optimise la
sécurité .Portsentry est un programme qui a pour mission de
l'assurer .Il a comme rôle d'alerter en envoyant un mail lors d'un scan
suspicieux sur le serveur. Ou alors il peut carrément bloquer
l'attaquant via les iptables.
Une configuration minimale requise de portsentry se base sur
le CHOIX DES PORTS qui vont être mappés ,avec cette options,
portsentry établit une liste des ports d'écoute, TCP et UDP, et
bloque l'hôte se connectant sur ces ports sauf s'ils sont
autorisés.Puis paramétrer les fichiers annexes de configuration
(WHITELIST,
48 Chapitre 2. Sécurisation du serveur
BLACKLIST, ETC...) ,les adresses ip qui ne seront pas
affectés sont ajoutés à Whitelist .Ensuite il faut
paramétrer le mode de réponse aux scans en précisant
à portsentry de bloquer les ip qui tentent des scans sur le serveur.Pour
se terminer ,paramétrer le choix du temps de réaction comme le
choix le nombre de connections à un port nécessaire pour
déclencher Portsentry.
Si on lance un test de la numérisation à l' aide
nmap sur le serveur où portsentry est déjà
configuré ,on obtient le résultat suivant :
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux53.png)
FIGURE 2.25 - Échec d'attaque nmap dû à
portsentry
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux54.png)
FIGURE 2.26 - Liste d'adresse ip bloquée par
portsentry
2.4.3 OSSEC
OSSEC est un HIDS open-source et multiplateformes basé
sur le système d'ex-ploitation plutôt que sur le réseau,
maintenu depuis 2009 par Trend Micro .Il détecte l'intrusion locale et
réagisse en temps réel.Cet outil se compose de deux composants
,un agent client déployé sur le système ou les
systèmes à surveiller responsable de la collection des
informations , et un serveurs OSSEC qui reçoit toutes les données
et les analysé .Les agents OSSEC collecte les informations provenant des
bases de données comme PostgreSQL et MySQL ,logs de plusieurs
applications comme PAM
2.4. Système de détection d'intrusion IDS
49
,SSH,SU et SUDO , les serveurs web comme Apache HTTP Serve
,les outils de sécurité comme les antivirus...Le serveur OSSEC
joue le rôle d'un moteur de détection d'intrusion ,les
données reçues sont manipulées par des décodeurs
qui vont extraire les informations nécessaires a la détection ,
un processus d'analyse sera lancé et des alertes seront envoyés
à la fin du processus .
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux55.png)
FIGURE 2.27 - Processus de traitement d'un
incident par OSSEC
L'outil OSSEC possède donc une architecture
client/serveur mais malgré ça ,elle est simple à
déployer ,de plus il est polyvalent car il analyse n'importe quel
fichier log.Mais comme tout outil il possède des limites .Si l'intrusion
se fait via le réseau il faut utiliser d'autres types de systèmes
de détection d'intrusions, comme les NIDS.[Voir Annexe O page 82]
2.4.4 Les détecteurs d'intrusions réseau
NIDS
NIDS ou Network Intrusion Detection System est un outil qui
analyse les paquets réseau à la recherche à la recherche
des signatures associées à des intrusions . J'ai principalement
utilise, au cours de mon stage un NIDS , snort .
Snort un système de détection
d'intrusion multiplatformes édité par Martin Roesch ,basé
sur le réseau en analysant la totalité des données
réseau utilisant le protocole IP .Puis chaque paquet sera analysé
et selon des règles prédéfinies ,il effectue une action
.la liste d'action snort comprend en premier lieu l'alerte d'admi-nistrateur
,loguer les paquets ou encore bloquer les paquets ou rejeter la connexion
.Suite à la réception d'un paquet malicieux, l'une des
règles prendre action .Lors d'un blocage d'un paquet ou de rejet d'une
connexion ,snort se comporte comme système de prévention des
intrusions IPS.Voici la structure de l'alerte : <Règle Actions>
<Protocole> <Adresse IP Source> <Port Source>
<opérateur Direction> <Adresse IP de destination>
<Destination> (options de règle) .[Voir Annexe S page 83]
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux56.png)
50 Chapitre 2. Sécurisation du serveur
FIGURE 2.28 - Structure du règle snort
Les alertes Snort étant basées sur la signature
des paquets illégitimes, le moteur de Snort doit être capable
d'analyser le contenu des flux réseaux. A fin de réaliser cette
opération, un ensemble de décodeurs ainsi que TCP ,UDP,ICMP et IP
sont disponible sous snort pour lui permettre d'analyser intrinsèquement
le contenu des flux.Grâce a ces décodeurs , il est facile
d'écrire des règles snort en fonction des options
spécifiques au protocole concerné ou des valeurs de certains
champs utilisés et par suite les règles deviendront plus
précis .
Pour mieux observer le principe de construction des
règles Snort, je présente ci dessous un exemple simple de
règle : détecter une injection SQL.
Cette règle lance une alerte identifié par le
message Injection sql ,si Snort détecte que la chaîne de
caractères SELECT * FROM est transmise au serveur web sur le port tcp
:80 ,WEB-SERVER est une variable Snort qui contient l'adresse IP du serveur
Web.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux57.png)
FIGURE 2.29 - Exemple de règle snort de détection
d'une injection sql
Dans cette section je présente aussi quelques
diagrammes de cas d'utilisation et de séquence concernant notre
modèle de détection d'intrusion snort .
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux58.png)
2.4. Système de détection d'intrusion IDS
51
FIGURE 2.30 - Diagramme cas d'utilisation snort
L'administrateur peut gérer les règles de snort
en automatisant une mise à jour automatique des règles, le site
officiel
snort.org offre les dernières mise
à jour des règles ou en éditant manuellement les
règles .
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux59.png)
Snort est un NIDS performant, capable de traiter de grandes
quantités de don-
FIGURE 2.31 - Diagramme de séquence snort
52 Chapitre 2. Sécurisation du serveur
nées,il fonctionne selon plusieurs modes ,un sniffer
qui capture et affiche les paquets réseau ,comme un paquet logger qui
enregistre les paquets pour les analyser ultérieurement ,comme un IDS et
en Inligne mode qui obtient les paquets iptables et décide le
comportement du pare-feu . IL dispose d'un jeu de règles évolue
permettant d'obtenir des informations très précises sur les
incidents en cours sur le réseau
.
Pour conclure ,Les éléments décrits plus
haut doivent être la base de la stratégie de
sécurité d'un serveur Linux ,et malgré que ces
opérations sont complexes à les maîtriser ils sont
très efficaces et fiables pour lutter contre les attaques et les failles
de sécurité .La surveillance du serveur est aussi un autre moyen
efficace pour s'en protéger .
2.5 Le simulateur d'intrusion Nessus
Nessus est l'un des scanners les plus populaires et capables
de vulnérabilité , en particulier pour les systèmes UNIX .
Il a d'abord été libre et open source , mais ils ont fermé
le code source en 2005 et a retiré le " Flux enregistré" version
gratuite en 2008. Il coûte maintenant 2190 $ par année , qui bat
encore beaucoup de ses concurrents . A " Nessus Home" version gratuite est
également disponible , même si elle est limitée et
seulement une licence pour l'utilisation du réseau domestique . Nessus
est constamment mis à jour , avec plus de 70.000 plugins . Les
principales caractéristiques comprennent contrôles à
distance et locales ( authentifiés) de sécurité , une
architecture client / serveur avec une interface basée sur le Web , et
un langage de script intégré pour écrire vos propres
plugins ou à comprendre ceux qui existent déjà .Nessus
balaie les ports ouverts, identifie les services actifs, leur version, puis
tente diverses attaques.Ci dessous ,je présente la séquence
d'opérations lors d'un simulation d'intrusion Nessus .
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux60.png)
A partir d'interface basée sur le web , l'administrateur
peut effectuer plusieurs
FIGURE 2.32 - Séquence
d'opérations Nessus
2.5. Le simulateur d'intrusion Nessus 53
taches on les résume dans le diagramme de cas
d'utilisation suivant.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux61.png)
FIGURE 2.33 - Diagramme cas d'utilisation Nessus
Après avoir effectuer une simulation d'intrusion
,Nessus exporter les données sous divers formats (Html,Xml...) , il
détaille les différentes vulnérabilités
trouvées , leurs descriptions ,les informations liées à
eux ,la date de découverte de faille et si elle est exploitable ou non
et il offre une solution.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux62.png)
FIGURE 2.34 - Exemple d'un rapport Nessus
54 Chapitre 2. Sécurisation du serveur
2.6. Surveillance du système 55
2.6 Surveillance du système
Le monitoring ,la supervision ou la surveillance est une
mesure d'une activité informatique à un temps précis .On
peut surveiller beaucoup domaines comme l'état physique du serveur (
température,stockage...) ,les performances du réseau ,Les
fichiers logs ...
2.6.1 Logwatch
Logwatch est un système configurable d'analyse de
fichiers journaux ( log ) il va tirer un rapport de log pour avoir une vision
simplifie et synoptique et envoyer un rapport par courriel chaque jour pour
nous laisser informer sans avoir parcourir manuellement les logs.on peut
également spécifier les logs à analyser et à
rapporter .Ci dessous on présente un exemple de rapport logwatch du
fichier log ssh .
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux63.png)
FIGURE 2.35 - Exemple de rapport logwatch du
fichier log ssh
2.6.2 NtopNG
C'est un outil extraordinaire qui permet de surveiller le
trafic réseau .Il est à la base du commande linux Ntop : network
top la commande qui permet de surveiller en temps réel le trafic
réseau.Grâce à son interface web avec des
résumés et des graphiques,il est utilisé principalement
pour savoir rapidement le type de trafic généré dans le
réseau.
Ntopng écoute par défaut au port TCP 3000 de
sorte que on aura besoin d'une
règle de pare-feu si on essaye d'obtenir l'accès
à partir d'une machine distante .La figure ce dessous est un exemple de
capture en temps réel du trafic des hôtes .
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux64.png)
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux65.png)
FIGURE 2.36 - Top Hosts (Send-Receive )
2.6.3 Webmin
Webmin est une interface Web pour l'administration
système Linux à distance via n'importe quel navigateur web.On
peut configurer les comptes utilisateur , serveur Apache, DNS, le partage de
fichiers , les règles pare-feu et bien plus encore. Webmin supprime la
nécessité de modifier manuellement les fichiers de configuration
Linux comme etc , passwd, et on peut gérer un système à
partir de la console ou à distance.webmin donne aussi des statistiques
sur l'usage de RAM , La température du système , le stockage et
le nombre des processus exécutés. Webmin utilise par
défaut le port 10000 et accompagné d'une connexion
sécurisée à l'aide de TLS .
Les outils de surveillance,les détecteurs d'intrusions
, les moyens de sécurité de base sont des
périmètres nécessaires pour assurer la
sécurité ,mais il n'existe pas une sécurité
optimale et il arrive parfois des cas où les hackers réussissent
à pénétrer le système et faire détruire les
systèmes .Dans le monde informatique ,il n a jamais pas de l'exception ,
tout est un cible de choix pour les hackers , prenons l'exemple de marque
japonais Sony piratée en 2011 et perde les informations d'au moins un
million d'usagers. Pour éviter les risques de pertes des données
et de confiance des clients , un mécanisme de sauvegarde est
nécessaire pour pouvoir récupérer les données en
cas où le serveur est piraté .
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux66.png)
56 Chapitre 2. Sécurisation du serveur
FIGURE 2.37 - Liste des services
accessibles via webmin (exemple FirewallID)
2.7 La sauvegarde et la restauration
Elle est important d'effectuer une sauvegarde complète
suite à l'installation du serveur qui permettre la rapidité de sa
réinstallation .Il faut également mettre en place une politique
de sauvegarde journalière.L'utilisation des serveurs de secours doit
être envisagée.Il existe plusieurs outils qui peuvent assurer la
sauvegarde et la restauration ,mondo ,Clonzilla ,rsync et Bacula .
Durant ce travail j'ai utilisé Bacula , il est
relativement facile à manipuler et très efficace, tout en offrant
de nombreuses fonctionnalités de gestion de stockage avancées qui
le rendent facile à trouver et récupérer des fichiers
perdus ou endommagés. En termes techniques, il est un Open Source,
programme de sauvegarde basé sur le réseau.Il est
considéré comme le programme de backup le plus populaire.
Bacula est structuré comme un certain nombre de
composants coopérants, qui utilisent tous les sockets TCP pour
communiquer sur une connexion réseau. L'utili-sation du protocole TCP /
IP comme le transport entre composants est essentielle à la philosophie
de conception de Bacula, car il permet aux composants d'être
déployés sur des machines multiples ou séparées
(selon la capacité ou l'accès à du matériel
spécialisé) et fournit une méthode omniprésente
pour les commandes inter-composants. Le transport TCP peut être
enveloppé d'une couche de sécurité de couche de transport
standard (TLS) de cryptage pour protéger les données pendant la
transmission.
2.7. La sauvegarde et la restauration 57
Les composants d'application distincts illustrés
ci-dessous fournissent chacun une fonction de base dans l'environnement Bacula.
La liste suivante identifie chaque composant et décrit la fonction
fournie à la demande globale :
Director :Bacula est l'application au coeur d'un
déploiement Bacula,il gère la Supervision de toutes les
opérations ,la planification , le suivi de la dépendance, le
contrôle d'accès , il est responsable de la configuration presque
tous à base de règles. La plupart des modifications à la
configuration Bacula se produisent dans le fichier de configuration de
l'administrateur.
Database server : , élément essentiel de
l'architecture Bacula est le catalogue d'un index des emplacements de stockage
de fichiers sauvegardés Responsable de la maintenance des index de
fichiers et bases de données de volume utilisé pour localiser et
restaurer le fichier rapidement .Bacula Prend en charge trois bases de
données MySQL, PostgreSQL et SQLite .
Storage daemon : gère l'interaction avec les
médias utilisés pour stocker des données de sauvegarde ,
la seule partie de Bacula qui communique réellement avec des supports
physiques en lecture-écriture.
Console :fournit l'interface à l'administrateur et les
utilisateurs pour la gestion des tâches, la gestion des messages et des
informations d'état ,la gestion d'espace de stockage ,sous Linux on
utilise comme console "bconsole".
File daemon : Installé sur les systèmes à
sauvegarder ,transfère effectivement les données du client vers
le serveur de stockage . il communique avec le "Director" afin de
déterminer quels fichiers à sauvegarder puis il transmet les
données directement au "Storage daemon" sélectionné.[Voir
Annexe B bacula page 79]
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux67.png)
FIGURE 2.38 - Architecture de Bacula
58 Chapitre 2. Sécurisation du serveur
On peut effectuer la phase de backup et restauration à
l'aide d'invite de commande ou graphiquement en intégrant un module de
gestion bacula à webmin.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux68.png)
FIGURE 2.39 - Restauration du sauvegarde avec bacula
Pour garantir la conservation des données et prendre en
compte le cas de dommage de Bacula , je développe au cours de mon stage
un script de sauvegarde journalière , et un script des restauration qui
sera exécute manuellement pour reprendre un état bien
précis du système .
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux69.png)
FIGURE 2.40 - Script de sauvegarde
2.8. Conclusion 59
2.8 Conclusion
L'un des principes de sécurité appliquée
au système consiste à mettre en place des
périmètres de sécurité afin d'assurer : la
disponibilité des données et des applications, la
disponibilité des services, la tolérance aux pannes et la
prévention des désastres. comme La valeur de l'entreprise
réside dans les données collectées et stockées, la
protection de ces données et la préservation de leur
confidentialité est cruciale,il est important aussi que le client peut
accéder rapidement a ces données.Il est nécessaire
d'assurer un équilibre entre la sécurité et la performance
du serveur .
60
Chapitre3
Optimisation des performances et
virtualisation du serveur
3.1 Optimisation des performances
3.1.1 Pourquoi optimiser les performances
La question de la performance des sites web est à la
base des priorités des hé-bergeurs internet .Le site web est-il
accessible facilement? est l'un des question qui s'impose fréquemment
car L'expérience utilisateur avec la navigation web est un
élément déterminant .Elle est autour de quatre axes ,
l'accessibilité, la Confiance, l'utilité,la Valeur.
L'optimisation comprend plusieurs
pôles,commençons par optimiser l'expérience utilisateur.
La fidélisation des clients dépend en grande
partie de la qualité et des performances des sites visités.Il
faut assurer que l'internaute se sente bien lors de la visite d'un site
web.Trois éléments doivent être respectés pour
l'amélioration de navigation d'un utilisateur.Un utilisateur ou
internaute est comme un acheteur dans un carrefour n'aime pas attendre devant
la caisse car cela provoque une mauvaise expérience, donc assurer la
rapidité d'affichage et la réduction de taux et temps de
transformation des données.Parfois,l'utilisateur est obligé
d'attendre un peu sur la page index, par contre page après page
l'expérience de navigation devient négative.ci-dessous quelques
statistiques très significatifs pour comprendre l'intérêt,
l'impact, l'enjeu qu'offre l'optimisation des performances du site.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux70.png)
3.1. Optimisation des performances 61
FIGURE 3.1 - quelque Statistiques de
performance de divers année
D'après des statistiques faites par google Analytics,en
2006, les consommateurs étaient patients, ils attendaient 4 secondes
avant d'abandonner la page web, 70% des internautes à peine
considéraient que la vitesse de chargement influençait sur leur
fidélité et Les sites étaient plus légers. Il y
avait moins de concurrents.En 2009,la délai d'attente est diminué
en 2 secondes seulement,75% des internautes considèrent que la
rapidité de chargement influe sur leur fidélité.Ces
statistiques montrent que est impatient et de moins en moins
déterminé à attendre l'affichage d'une page.
Un autre pôle important est la réduction du
coût d'un site web en optimisant le temps de chargement du site et par
suite la réduction du trafic réseau et par suite la
réduction du facture .
3.1.2 Mesure de performance
Avant d'entrer en phase d'optimisation , il faut prendre des
mesures pour savoir si les modifications apportées sont efficaces ou non
.La mesure de rapidité d'affichage d'un site web peut se faire
facilement à l'aide d'un coup d'oeil, c'est primitif certes, mais c'est
simple et souvent efficace mais cette méthode à des limites car
le résultat change d'un navigateur à un autre ,d'un réseau
à un autre et de temps en temps .Il existe donc des autres outils de
mesures quelque soit en local ou en ligne. pagespeed et Chrome Developer Tools
sont deux exemples d'outils de mesure local,PageSpeed Insights mesure la
façon dont les performances de la page peuvent être
améliorées en matière de : temps de chargement du contenu
au-dessus de la ligne de flottaison: temps écoulé entre le moment
où un internaute envoie une requête pour une nouvelle page et le
moment où le contenu au-dessus de la ligne de flottaison est
affiché par le navigateur. temps de chargement de la page
complète : temps écoulé entre le moment où un
internaute envoie une requête pour une nouvelle page et le moment
où la page est affichée dans son intégralité par le
navigateur.[4]
Il existe d'autres outils en ligne offre le service de mesure
et de comparaison des performances comme dareboost une plateforme en ligne de
test d'analyse et d'optimisation d'un site .ci dessous est un exemple d'analyse
du site hébergés chez nos serveurs .
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux71.png)
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux72.png)
62 Chapitre 3. Optimisation des performances et
virtualisation du serveur
FIGURE 3.2 - Exemple d'analyse d'un site avant
optimisation de performance
3.1.3 Optimisation des performances
Il y a de nombreuses solutions d'optimisation
côté serveur,on commence par déployer un serveur d'imagerie
où tous les images et les vidéos seront stockés ou
déployer ce qu'on appelle une solution CDN "Content Delivery Network"
emplacement supplémentaire ou sont stockés des
données,cela divise le trafic réseau entre deux serveurs , l'un
responsable de charger le code du page et l'autre d'importer les images,
permettre la parallélisation navigateur et réduire le temps
d'attente pour les internautes situés loin du serveur .Le principe de
parallélisation est simple,si le domaine principal où je place
mes fichiers php par exemple est
ns398162.ip-37-59-36.eu et
le domaine ou je place les fichiers lourd est vps.222.89.134.eu alors le
navigateur va charger les fichiers par paquets, pendant que quatre fichiers de
code sont chargés, quatre images sont de même chargées.Sous
IE7 par exemple le chargement de fichiers se fait e fera 2 par 2.
Comme l'optimisation du serveur Linux se base initialement sur
l'optimisation serveur HTTP Apache On continue ensuite par la mise en place du
cache afin d'économiser de la bande passante et temps d'un nouvel
accès.Le plus simple est de modifier le fichier de configuration pour
apache .htaccess en utilisant le mode "mod-expires", un mode qui permet la
validité des fichiers télécharges d'un navigateur lors
d'un appel à une page web, car lors du premier accès le
navigateur télécharge tout le contenu du page et le met en
cache.Dans les chargements qui se suivent, le navigateur
téléchargera uniquement les fichiers qui ne sont plus valides
après contrôle des fichiers contenus dans son cache et leurs
validités . ci-dessous est un
3.1. Optimisation des performances 63
64 Chapitre 3. Optimisation des performances et
virtualisation du serveur
3.2. Virtualisation du serveur 65
exemple de fichier .htaccess après insertion du
mod-expires.ExpiresByType définit l'âge de l'entête de cache
et le type de fichier dans le cache.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux73.png)
FIGURE 3.3 - Exemple d'un fichier htaccess
avec mod-expires
Une autre solution performante disponibles pour Apache est
l'utilisation d'un outil opcode.A chaque chargement de page web,Apache
interprète et compile le code ligne par ligne sous forme de série
des taches qui consomment beaucoup du temps.Ici où intervient l'outil
opcode qui fait cette manipulation une fois seulement et le garder comme un
résultat dans un cache .Eaccelarator et Zend sont deux exemples de
produits disponible sous Linux qui sont une fois installés pouvant
gérer cette phase d'optimisation.
l'optimisation d'un serveur ne s'arrêtera pas ici, il
y'a une autre idée innovante basée sur l'utilisation d'un
ramdisk.La memoire Ram est très rapide par rapport aux disques durs donc
au lieu de stocker les fichiers temporaire sur ce dernier on les stocke en Ram
en évitant de la saturer .Sous Linux, il existe tmpfs (Temporary File
System) implémenté en noyau Linux depuis la version 2.6 et qui se
base sur ramfs, il alloue de maniere dynamique la mémoire et garantir de
ne pas l'utiliser en excès, etgrâce à son extrême
simplicité il offre de meilleures performances .
Une dernière étape au cours de processus
d'optimisation concerne mySQL.Le plus fréquemment utilisé est de
se servir de la Cache base de données mySQL quand les tables changent
rarement et par suite les requêtes restent les mêmes.Limiter le
nombre de connexion simultané baisse le trafic et
assure que la base ne soit pas sollicitée.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux74.png)
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux75.png)
FIGURE 3.4 - Exemple d'analyse d'un site
après optimisation de performance
une étude comparative entre l'analyse d'un site web
hébergé chez notre serveur avant et après optimisation
montre que le délai du premier octet reçu diminue de 1.54 seconde
à 0.37 seconde accompagné d'une diminution importante de 3.41
seconde à 1.65 seconde .
3.2 Virtualisation du serveur
3.2.1 Virtualisation : cadre d'emploi et concepts
généraux
Les technologies dites de «virtualisation» ont connu
un essor important ces dernières années,56% des entreprises l'ont
recours en 2009 [1], lié notamment au développement de nouveaux
usages comme le cloud computing. Virtualiser les serveurs est devenu
aujourd'hui relativement aisé, et de nombreuses entreprises ont choisi
cette technologie pour bénéficier des fonctionnalités
facilitant des économies de place, d'énergie et de budget par
réduction des coûts accompagnée par une meilleure gestion
de la capacité, la simplification de la maintenance et la mise à
l'échelle.Les bénéfices de cette technologie touchent
aussi la réduction de risques avec l'isolation, l'indépendance
matérielle .
La virtualisation offre aussi la mise en place des serveurs
virtuels dédiés permettant d'offrir un hébergement
assurant le partage de ressource, l'autonomie et le
contrôle totale du serveur contrairement aux offres
traditionnelles qui sont l'héber-gement dédié (serveur
à disposition configurés selon les besoins) et
l'hébergement mutualisé,Elle intervient aussi dans
l'amélioration de la disponibilité des serveurs et des services.
Il invente aussi la notion de la virtualisation de secururité .
Le concept de virtualisation était introduit depuis les
années 1960 avec la première implémentation d'une machine
virtuelle faite par IBM et évolue rapidement dés 1999 avec La
solution VMware Workstation .
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux76.png)
FIGURE 3.5 - Chronologie de la
virtualisation
En général et en essence, Virtualiser c'est
rendre indépendant du matériel le support logiciel d'une
machine. il rendre l'exécution de
plusieurs systèmes sur la même machine possible et
simplifié, ou de migrer en quelques instants et de manière
transparente un système d'une machine à une autre, plus
simplement .La Virtualisation nécessite une mise en oeuvre d'une
solution qui assure la gestion des différents systèmes
virtualisés et leur exécution.
Cette technologie innovante s'applique à deux niveaux
seulement, un premier applicatif où l'application présente une
cible pour la virtualisation en lui offrant une couche d'abstraction
correspondant à son environnement d'exécution. notez que " une
couche d'abstraction matérielle (abrégé en HAL pour
hardware abstraction layer) est un logiciel intermédiaire entre le
système d'exploitation et le matériel informatique"[10], prenons
l'exemple de JvM traduite en machine virtuelle java, un outil qui
exécute des applications Java développées sous forme de
bytecode Java en produisant les mêmes résultats quelle que soit la
plate-forme.La virtualisation s'applique aussi au niveau système,il
permet de faire tourner plusieurs systèmes
66 Chapitre 3. Optimisation des performances et
virtualisation du serveur
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux77.png)
d'exploitation simultanément sur la même machine.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux78.png)
FIGURE 3.6 - Architecture de la virtualisation
au un niveau système
deux principes fondamentaux doivent être
respectées lors de la virtualisation, le cloisonnement et la
transparence, chaque système d'exploitation est indépendant des
autres OS et ne peut pas interférer avec eux celui ci est le principe de
cloison-nement,par contre la transparence c'est le fait de fonctionner en mode
virtualiser sans changer le comportement ou le fonctionnement de OS et ses
applications .
Il existe Au moins 7 techniques de virtualisation à la
base de tous les solutions de virtualisation proposées. On
s'intéresse ici aux techniques de virtualisation orientées
système .L'architecture des solutions de virtualisation au niveau
système se décline pour sa part en trois catégories :
La para-virtualisation : elle est assez prés de la
virtualisation totale ou complète . Elle est fondée sur une
couche hyperviseur, qui gère l'interface avec les ressources
matérielles, et sur laquelle on peut installer plusieurs OS.
L'hyperviseur est la couche logicielle qui s'insère entre le
matériel et les différents OS présente le coeur de la
para-virtualisation et fournissant une interface qui permet à plusieurs
systèmes hôtes d'accéder de manière concurrente aux
ressources ,C'est un composant clé assurant la plupart des technologies
de virtualisation de bas niveau. Plusieurs solutions de virtualisation tels que
Xen, VMware ESX/ESXi, Vsphere de VMware, Hyper-V de microsoft sont des exemples
de technologies appartenant à cette famille .
La virtualisation totale: De même que la
para-virtualisation , un hyperviseur est
3.2. Virtualisation du serveur 67
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux79.png)
responsable de l'exécution de plusieurs machines
virtuelles, il gère l'ensemble des requêtes des machines
virtuelles ce qui permet aux machines virtuelles de fonctionner sans aucune
modification de leur noyau. Autrement dit, les machines virtuelles ne savent
pas qu'elles s'exécutent de manière virtuelle. VMware Workstation
de VM-ware, virtualPC/Virtual Server de Microsoft, VirtualBox d'Oracle sont des
solutions reposent sur cette technique .
Comme on a deja vu des nombreuses solutions de virtualisation
sont proposées cela dû aux besoins très divers :
1.QEMU : un logiciel libre de machine virtuelle
édité par Fabrice Bellard, pouvant émuler un processeur
et, plus généralement, une architecture différente si
besoin. Il permet d'exécuter un ou plusieurs systèmes
d'exploitation via les hyperviseurs KVM et Xen, ou seulement des binaires, dans
l'environnement d'un système d'exploitation déjà
installé sur la machine[7]
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux80.png)
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux81.png)
FIGURE 3.7 - Architecture de la solution de
virtualisation QEMU
QEMU émule et simule divers systèmes tels que
les systèmes x86 (Carte ré-seau,Contrôleur USB ...), les
systèmes PPC, une gamme de microprocesseurs utilisé par
Macintosh, les systèmes ARM comme Symbian S60 avec les Nokia N97,iOS,
android, BlackBerry OS .
2.Xen : une solution de virtualisation multiplate-forme de
type Para-virtualisation sous licence GPL, c'est le résultat d'une
recherche a l'université de Cambridge présenté en 2004.Il
est partiellement intégré au noyau Linux depuis la version
2.6.Puis,
68 Chapitre 3. Optimisation des performances et
virtualisation du serveur
il était racheté par Citrix et
coopéré avec Microsoft.Xen est caractérisé par ses
performances intéressantes.
3.KVM : est un hyperviseur libre de type virtualisation
complète, intégré aux sources de Linux depuis la version
2.6.20, nécessite un support matériel disposant des instructions
de Virtualisation Intel VT ou AMD-V . Il utilise QEMU pour la partie
émulation.KVM assure des nombreux fonctionnalités :
==> Cycle de vie Classique de la machine virtuelle : La
demande de création d'une machine virtuelle par l'utilisateur,
Commissionnement et décommissionne-ment, Validation par la direction
technique et Placement de la machine virtuelle côté
administrateur.
==> Sauvegarde/restauration de l'image mémoire.
==> Migration a froid et a chaud : La migration à
chaud signifie que l'on déplace en temps réel c'est-à-dire
pendant qu'elle est en fonctionnement une machine virtuelle d'un hôte ESX
physique vers un autre.
==> Isolation correcte mais pas absolue.
==> Robuste suite à beaucoup de tests.
4. oVirt : open virtualisation, une plateforme de
virtualisation basée sur des technologies libres KVM/Qemu, libvirt. Le
projet oVirt est mené par la société Red Hat.
5.Virtualbox : un produit de virtualisation AMD64 / Intel64
offert par Oracle, Non seulement VirtualBox extrêmement riche en
fonctionnalités, produit de haute performance pour les clients de
l'entreprise, il est également la seule solution professionnelle qui est
librement disponible en tant que logiciel Open Source sous License (GPL).
6.Les produits Vmware : VMware est une société
américaine fondée en 1998, filiale d'EMC Corporation depuis 2004,
qui propose plusieurs produits propriétaires liés à la
virtualisation d'architectures x86. C'est aussi par extension le nom d'une
gamme de logiciels de virtualisation.Elle offre plusieurs produits, VMware
Workstation, VMware Ace, VMware Fusion, VMware Server, VMware GSX Server,
VMware ESX.
Les solutions de virtualisation se différent d'une
à l'autre .la principale différence des premiers solutions
proposées de ses concurrents les produits Vmware est qu'ils sont
gratuits et libres.Ci dessous est un tableau comparatif de quelques solutions
de virtualisation.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux82.png)
3.2. Virtualisation du serveur 69
70 Chapitre 3. Optimisation des performances et
virtualisation du serveur
FIGURE 3.8 - tableau comparatif de quelques
solutions de virtualisation
3.2.2 Les risques liées à la virtualisation
et les recommandations de sécurité
Un système virtualisé possède les
mêmes failles et les les risques classiques des autres
systèmes,avec des nouveaux risques additionnels.Les
vulnérabilités, les attaques et les incidents des systèmes
virtualisés peuvent être catastrophique. Examinons l'incident
survenu en 2011 au sein de "Shionogi", une société japonaise
où 88 serveurs virtuels était supprimés, les services de
messageries, financière et son système de suivi des commandes
était paralysés.
La virtualisation d'un serveur regroupe plusieurs
systèmes sur le même maté-riel,on doit prendre en compte
les risques liées aux OS , ceux touchant la couche d'abstraction et les
risques de la combinaison des deux OS.De plus, l'assemblage des plusieurs
services sur une même machine augmente les risques portant sur chacun.
Connaître divers risques est important pour en
maîtriser l'impact en termes de confidentialité,
d'intégrité et de disponibilité des données et des
services.
Risque accru de compromission des
systèmes
La compromission est la prise de contrôle par un acteur
malveillant d'un système invité depuis un autre système
invité ou de la couche d'abstraction depuis un système
invité.Le principal impact suite à une compromission est la fuite
d'infor-mations sensibles et parfois des perturbations engendrées par
une modification du système pouvant aller jusqu'à
l'indisponibilité d'un service.. Il est recommandé que chaque
brique matériel, système d'exploitation hôte et
système d'exploitation invité soient à jour .On
néglige ici ce risque car il y'a qu'un seul administrateur qui
gère tous le système .
Accroissement du risque
d'indisponibilité
Comme évoqué précédemment, une
compromission peut engendrer une indisponibilité d'un service.
Cependant, ce risque peut apparaître, même en l'absence de
compromission. Ainsi, si d'une part un atout de la virtualisation est
l'utilisation plus intensive des ressources informatiques, d'autre part, la
panne d'une ressource commune peut engendrer l'indisponibilité
simultanée de plusieurs systèmes. De même, une attaque en
disponibilité sur un des systèmes (ou plus
généralement sur une ressource commune) impactera potentiellement
tous les services hébergés sur la même machine. Là
encore, les préconisations faites au point précédent
s'appliquent. De plus, si des besoins en disponibilité différent
sensiblement d'une application à une autre, il peut être
préférable de placer sur des machines dédiées
celles dont les besoins en disponibilité sont les plus
élevés.
Incapacité à gérer voire à
comprendre les erreurs
Les problèmes de fonctionnement et les erreurs peuvent
être complexes à gérer techniquement dans une architecture
s'appuyant sur une solution de virtualisation. Par exemple, les erreurs qui
pourraient survenir lors de l'arrêt puis la relance d'une instance seront
soit rapportées au système hôte que l'instance quitte, soit
au système hôte qui est en train de l'accueillir. Sans la prise en
compte globale des erreurs d'un système s'appuyant sur la
virtualisation, il se peut que des informations pertinentes permettant
d'identifier leur cause soient perdues, ou a minima, que leur synthèse
ne puisse pas être réalisée. Il convient donc de mettre en
place une centralisation et une corrélation des journaux sur l'ensemble
des systèmes. Cette corrélation pose évidemment des
problèmes identiques à ceux identifiés
précédemment pour la supervision
Compte tenu de ces différents risques, il convient de
tenir compte des recommandations qui suivent.
3.2. Virtualisation du serveur 71
72 Chapitre 3. Optimisation des performances et virtualisation du
serveur
3.2.3 Recommandations de sécurité
La politique de sécurité du système
faisant l'objet d'une démarche de virtuali-sation doit être mise
à jour pour qu'y soient inclus certains items spécifiques
à la technologie de virtualisation employée.
Définition précise des processus
d'administration des systèmes hôtes et invités
Il s'agit de décrire de manière précise
les règles relatives à l'administration des systèmes. Une
règle peut être de ne pas autoriser l'administration distante de
certaines machines compte tenu du degré de sensibilité des
informations qu'elles hébergent, y compris ponctuellement. Il est par
ailleurs recommandé de renforcer certains mécanismes de
sécurité dans le cas d'administration distante (mise en oeuvre de
mécanismes d'authentification forte, de confidentialité et de
contrôle d'intégrité, d'audit).
Description détaillée des configurations
de système(s) attendues
Il s'agit de décrire de manière précise
les configurations de système(s) attendues en identifiant clairement les
mécanismes qui peuvent contribuer directement ou indirectement à
couvrir les risques induits par la virtualisation. Tout paramètre
système visant à améliorer les principes
d'étanchéité et de non propagation des compromissions est
ainsi à considéré.
Procédures de mise à niveau et de suivi
des systèmes invités
La mise à niveau des systèmes invités
consiste à mettre à jour une machine virtuelle (versions du
système et de ses applications, maintien des licences
nécessaires, application régulière des correctifs de
sécurité, etc.) quel que soit l'état dans lequel elle se
trouve (en exécution ou sous sa forme d'image stockée quelque
part dans le système d'information).
Concevoir une architecture respectant le principe de
cloisonnement.
Les exigences de cloisonnement (isolation des flux) doivent
être prises en compte dans la conception de l'architecture du
système. Cela conduit de fait à définir très
précisément l'architecture matérielle nécessaire
pour répondre au besoin fonctionnel en tenant compte des objectifs de
sécurité fixés, et à décrire des
règles précises à appliquer lors des évolutions du
système.tant regroupées par exemple par niveau de
sensibilité des informations manipulées. L'emploi là aussi
de moyens complémentaires pour cloisonner correctement les flux peut
moduler cette règle; - qu'une partie du système soit
gérée en dehors de la solution de virtualisation. Cette situation
pourra se produire si une application particulière a des besoins de
sécurité supérieurs à d'autres.
Réduire la surface d'attaque de la solution de
virtualisation
Certaines solutions de virtualisation comportent des
éléments d'authentification par défaut (mots de passe par
défaut, certificats par défaut ou générés
à la première initialisation de la machine). Il est
impératif de changer les éléments d'authentifica-tion par
défaut avant la mise en service opérationnelle de la solution.
Par ailleurs, toutes les fonctions non strictement nécessaires au bon
fonctionnement de la solu-
tion dans l'environnement opérationnel (exemple :
migration à chaud de machines virtuelles entre deux serveurs
hôtes) doivent systématiquement être
désactivées.
3.2.4 Virtualisation du serveur
KVM est en concurrence avec les solutions propriétaires
majeurs vmware et xen, il a battu tous les records de performance et surpasse
la concurrence dans de nombreux points de repère.Il marque une
évolutivité supérieure au-dessus des solutions
concurrentes , reduise et economise les couts de deployement.KVM ait une
excellente documentation technique, de plus il est Open source, non
propriétaire et intégré dans les nouvelles versions du
noyau Linux . Ce qui encourage le plus à utiliser kvm sa
simplicité d'installation et la bonne qualité de service offerte
.
KVM est supportable par" Open Virtualisation Alliance "
composé des grandes entreprises comme IBM, RedHat, Intel, HP ...
1 .Installation :
KVm a besoin d'un support du processeur Intel VT or AMD-V pour
fonctionner entièrement en tant que logiciel .Sur mon serveur Linux ce
support est activé par défaut ,il dispose d'un Intel VT .Avant de
débuter il faut tester la compatibilité du serveur et si le
processeur supporte l'extension KVM . Avant tout on fait L'installa-tion de
qemu-kvm le module Qemu compatible avec KVM et libvirt la bibliothèque
de gestion de la virtualisation avec la commande yum -y install qemu-kvm
libvirt virt-install . puis on assure que les modules sont chargés , il
faut avoir une résultat similaire à celui ci dessous .
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux83.png)
FIGURE 3.9 - Vérification de
chargement des modules kvm
Dans une seconde étape je Configure le pont
réseau pour la machine virtuelle KVM en ajoutant une interface bro
.[voir Annexe B Bridge page 78]
Maintenant on Crée la première machine virtuelle
centos 7 à l'aide du script ce dessous.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux84.png)
3.2. Virtualisation du serveur 73
FIGURE 3.10 - Script d'installation de machine virtuel centos 7
avec kvm
De même on installe la deuxième machine virtuelle
windows 7 .
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux85.png)
FIGURE 3.11 - Script d'installation de machine virtuel windows
7 avec kvm
2 .Opérations de base de gestion de machines
virtuelles au moyen de virsh de libvirt
1- Démarrage de machine virtuelle : virsh start
<nom> #virsh start windows 7.
74 Chapitre 3. Optimisation des performances et
virtualisation du serveur
2- Connexion au console de la machine virtuelle : virsh start
<nom> -console # virsh start centos7 -console
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux86.png)
FIGURE 3.12 - Démarrage de machine virtuelle
3- Arrêt de machine virtuelle : virsh shutdown centos7
/ virsh destroy centos7 # arrêt forcé de machine virtuelle
4- Lister les machines virtuelles : virsh list -all
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux87.png)
FIGURE 3.13 - Liste des machines virtuelles
5- Éditer un fichier dans une machine virtuelle :
virt-edit -d centos7 /etc/fstab
6- Afficher l'utilisation du disque dans une machine virtuelle :
virt-df -d centos7
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux88.png)
FIGURE 3.14 - Usage de disque de la machine virtuelle
centos7
3 .Visualiser et gérer à distance les
machines virtuelles .
Il est possible de se connecter à des machines
virtuelles à partir de l'ordinateur client distant en utilisant SPICE
(Simple Protocol for Independent Computing Environment). Le serveur SPICE est
par défaut installé avec KVM , il suffit donc de modifier le
fichier xml de machine virtuelle existante à l'aide du commande virsh
edit <nom (centos7)> .
Dans l'ordinateur client on installe le client SPICE,
l'exemple ci dessous utilise Windows pour SPICE.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux89.png)
3.2. Virtualisation du serveur 75
FIGURE 3.15 - Interface de saisie d'url de la machine
virtuelle
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux90.png)
FIGURE 3.16 - Interface d'authentification
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux91.png)
FIGURE 3.17 - Machine virtuelle centos à distance
76 Chapitre 3. Optimisation des performances et
virtualisation du serveur
3.3 Conclusion
Dans ce chapitre, j'ai présenté l'approche
d'optimisation et les outils de mesure de performance , les mécanismes
de virtualisation ainsi que les recommandations de sécurité pour
notre solution de virtualisation.
77
Chapitre4
Conclusion et perspectives
Ce Stage de Fin d'Études vient clôturer ma
formation à la faculté des sciences de Tunis,
préparée en vue de l'obtention du Diplôme
d'ingénieur en Informatique pour l'année universitaire
2015-2016.Il a été réalisé au sein de la
société SOTUTECH et consiste à sécuriser, optimiser
et virtualiser un serveur Linux .Tout au long de l'élaboration du
projet, j'ai rencontré plusieurs difficultés aussi bien sur le
niveau conceptuel que sur le niveau de la réalisation.Mais tout de
même, j'ai réussi à les surmonter pour présenter
à la fin une solution opérationnelle.En plus de cela ce projet
m'a permit de maîtriser plusieurs environnements de travail et plusieurs
techniques innovantes et d'exploiter mes connaissances théoriques et
pratiques, que j'ai acquises tout au long de ma formation..D'autres parts, il
m'a donné l'occasion d'enrichir ma formation.Je souhaite enfin que ce
modeste travail apporte progrès, évolution et satisfaction aux
responsables de la société SOTUTECH, aux membres du jury et aux
étudiants intéressés par le sujet.
Les perspectives de ce travail sont nombreuses et les
possibilités sont multiples comme par exemples :
Assurer la confidentialité et l'intégrité
des données du clients.
Optimiser l'expérience du client avec la navigation.
faciliter les travaux de l'équipe de la
société.
Ce projet pourrait être suivi par le
développement d'une application mobile tel que android , ios afin
d'être informer instantanément par tous les alertes et surveiller
n'importe quand et où l'état des serveurs .
78
Annexe
B
Bridge
Configuration du bridge bro :
1- Ajout du bridge : nmcli c add type bridge autoconnect yes
con-name br0 ifname br0
2- Définir IP pour br0 : nmcli c modify br0
ipv4.addresses 10.0.0.30/24 ipv4.method manual
3- Définir Passerelle pour br0 : nmcli c modify br0
ipv4.gateway 10.0.0.1
4- Définir DNS pour bro : nmcli c modify br0 ipv4.dns
10.0.0.1
5- Supprimer le réglage actuel : nmcli c delete
eno16777736
6- Ajouter une interface à nouveau en tant que membre br0
: nmcli c add type bridge-slave autoconnect yes con-name eno16777736 ifname
eno16777736 master br0 .
7- Redémarrage : reboot
Bacula
Configurer Bacula Server
Notre topologie est comme ci dessous :
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux92.png)
79
FIGURE 4.1 - Topologie de backup avec bacula
1- Installation de Directeur et démon de stockage sur le
serveur de contrôle Bacula : yum -y install bacula-director
bacula-storage bacula-conso
2- Ajout de la base de données pour Bacula à
MariaDB : /usr/libexec/bacula/grant-mysql-privileges -p ,
/usr/libexec/bacula/create-mysql-database -p ,
/usr/libexec/bacula/make-mysql-tables -p .
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux93.png)
FIGURE 4.2 - Liste des tableaux de la base bacula
3- Configurer Bacula Director : il est configurable à
partir des fichiers /etc/bacula/bacula-dir.conf , /etc/bacula/bconsole.conf ,
/usr/libexec/bacula/
make-catalog-backup.pl
, /etc/bacula/bacula-sd.conf .
Configurer Bacula client
Avant tout dans la poste client , il faut installer le client
bacula qui es disponible pour linux et windows : yum -y install bacula-client
bacula-console . Puis on configure le client bacula
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux94.png)
80 Chapitre 4. Conclusion et perspectives
FIGURE 4.3 - Fichier de configuration du
client bacula
E
Etckeeper
Installation et configuration
Etckeeper s'installe directement avec la commande "yum install
etckeeper" , Une installation réussie de etckeeper installera
automatiquement git et d'autres dépendances.on peut personnaliser la
configuration de etckeeper en éditant le fichier de configuration
situé à /etc/etckeeper/etckeeper.conf .
On peut faire traiter /etc/ comme une répertoire git de
travail en exécutant les commandes suivantes : "cd /etc" , "etckeeper
init" , la sous-commande "init" va créer un fichier nommé
.gitignore et un répertoire nommé .git dans /etc/ .Le .gitignore
contient une liste prédéfinie de fichiers et ne nécessite
pas de gestion avec le contrôle de version. Si nécessaire,il
inclus la possibilité d' ajout ou de suppression des noms de fichiers
dans ce que vous voulez
81
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux95.png)
FIGURE 4.4 - Liste des fichiers ignorés
Puis on Effectue le commit initial avec "etckeeper commit
"<nom du comit >""
F
Fail2ban
Installation et configuration:
on installe fail2ban à l'aide du commande "yum install
fail2ban", le fichier de configuration se situe sous /etc/fail2ban/ ,on le
modifie selon nos besoins , par exemple le loglevel , niveau de détail
des logs allant de 1 à 5 ,on le fixe à niveau intermediaire 3.on
modifie aussi logtarget chemin vers le fichier de log.
Pour surveiller les services à assurer leurs
sécurités comme ssh , apache ,mysql ..., il faut modifier la
fichier jail.local de fail2ban selon des nécessites spécifiques
.
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux96.png)
FIGURE 4.5 - Configuration de fichier jail.conf
82 Chapitre 4. Conclusion et perspectives
Après modification de la configuration, n'oubliez pas
de redémarrer fail2ban avec "Service fail2ban restart"
G
Git est un logiciel de gestion de versions
décentralisé.
O
OSSEC
Installation OSSEC
On va le télécharger dans un répertoire
temporaire
boucle - O http : //
www.ossec.net/files/ossec-hids-2.8.1.tar.gz
Maintenant, on va Décompresser en utilisant cette
commande:
tar - zxvf ossec *
On modifie dans le répertoire OSSEC , utilisant cd
ossec * et on exécute
./ Installer . Sh
Configuration :
On doit décider si OSSEC fonctionne comme le serveur
principal d'analyse (ser-
veur), un agent qui est en cours d'analyse par le serveur
(agent) ou si cela est un
système autonome pas attaché à un plus
grand réseau (local). Notez que le serveur
analyse également ses propres journaux, ainsi que les
journaux de l'agent.
Les valeurs par défaut sont celles qu'on souhaite
utiliser . Avoir l'adresse IP du
serveur pratique lorsque vous installez de nouveaux agents.
Une fois cela fait, assurez-vous que le démon OSSEC est
redémarré à l'aide :
Service ossec restart
OSSEC va bloquer les attaques à chaque fois qu'ils se
produisent, mais si un
attaquant persistant essaie quelque chose de un million de
fois il finira par réussir.
OSSEC a une grande fonctionnalité pour éviter
cela : la capacité de se rappeler
l'adresse IP d'un mec mal et le bloquer pour de plus longues
durées. Il a appelé les
délinquants répétés.
Cela vous permet de spécifier la durée d'une IP
est interdite (en minutes) et
d'augmenter l'intervalle que les attaques se déroulent.
Malheureusement, l'option
est activée par défaut.
Pour l'ajouter manuellement, on ouvre
vim /etc/ossec/ossec.conf
et on ajoute les lignes suivantes
<actif-réponse> <repeated-offenders>
30,60,120,3600 </ repeated-offenders>
</ actif-réponse>
puis on redémarre ossec .
83
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux97.png)
Snort
Installation et configuration
Sous Linux (comme sous windows) son installation est simple et
se résume par les
commandes suivantes, une fois l'archive
téléchargée de
snort.org dans le répertoire
"/usr/local/snort" cd /usr/local/snort
tar -xvf SNORT-2.2.*.tar.gz
./configure mysql=/usr/lib/mysql make make install
Afin d'indiquer à snort la base où il doit
envoyer ses alertes, il convient de modifier
la ligne suivante, dans le fichier de configuration
"snort.conf" :
#output database :log,mysql,user=root password=test
dbname=SNORT host=localhost
par
output database :log,mysql,user=***** password=******
dbname=snort host=37.59.*.*
Il faut ensuite créer la base SNORT ainsi que
l'utilisateur user sous MySQL
insert into user values ('localhost', 'usersnort',
password('password') , 'x', 'x',
'x', 'x', 'x', 'x', 'x'); grant ALL PRIVILEGES ON SNORT.* TO
user@localhost
IDENTIFIED BY 'password' WITH GRANT OPTION;
Installation de snorby :
snorby est une application Ruby qui est utilisé pour
afficher / rendre compte des
résultats de détection des logiciels de
détection d'intrusion tels que Snort.
Avant d'installer Snorby nous devons installer cinq package
prérequis :
yaml, ruby 1.9.x, des rails, imagemagick, wkhtmltopdf.
cd / usr/src/local/
wget
pyyaml.org/download/libyaml/yaml-0.1.6.zip
unzip yaml.zip
cd yaml
./configure
make
sudo make install
cd /usr/src/local/
wget
cache.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p547.tar.gz
tar -zxvf ruby-1.9.3-p547.tar.gz
cd ruby- 1.9.3-P547
./configure
make
sudo make install
sudo gem install rails
84 Chapitre 4. Conclusion et perspectives
sudo gem install nokogiri -
-use-system-bibliothèques
sudo gem install bundler
cd /usr/src/local wget
www.imagemagick.org/download/ImageMagick.tar.gz
tar
-zxvf ImageMagick.tar.gz cd ImageMagick * ./configure
sudo make install
cd / usr / local / src
wget xJ wkhtmltoxlinuxmd640.12.0-03c001d.tar.xz
cd wkhtml *
sudo mv bin /wkhtmltopdf/usr/local/bin
Enfin, il est temps d'installer et configurer Snorby.
cd /usr/local/src locale
git clone https ://
github.com/Snorby/snorby.git
cd snorby
sudo bundle installer -deployment
sudo cp /usr/local/src/snorby/config/database.yml.example /usr
/local/src/snorby/config/datab
sudo cp /usr/local/src/snorby/config/snorbyconfig.yml.example
/usr/local/src/snorby/config/sn
Enfin commencer tous les services nécessaires :
/etc/init.d/mysqld restart
/etc/init.d/httpd restart
/etc/init.d/snort start
/etc/init.d/snorby start
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux98.png)
FIGURE 4.6 - Démarrage service snort
T
Tripwire
Installation et configuration
on l'installe à l'aide du commande "yum install
tripiware"
Préparation essential avant la première
utilisation de
tripwire. il faut être root pour
configurer Tripwire
.
Dans le répertoire tripwire : cd /etc/tripwire
Puis on fait une modification du fichier de configuration
avant d'installer Tripwire . Faites une copie
de la première , bien sûr
cp /etc/tripiware/twpol.txt twpol.original.txt
cp twcfg.txt twcftoriginal.txt
maintenant changer :
"LOOSEDIRECTORYCHECKING =false" à
"LOOSEDIRECTORYCHECKING =true"
Ce changement est nécessaire de se préparer pour
la première fois le script est exécuté parce que tout
85
est sur votre ordinateur ne correspond pas au fichier de
l'échantillon par défaut exactement . Après l'
installation est terminée avec succès et le fichier de
stratégie modifié , LOOSEDIRECTORYCHECKING devrait être
restauré à "false"
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux99.png)
FIGURE 4.7 - Initialisation tripwire
Apres avoir terminé la configuration de Tripwire ) , on
peut le régénérer en exécutant la commande suivante
: twadmin -print- polfile > /etc/tripwire/twpol.txt
assurez-vous que la base de données a été
correctement changé , exécutez la première
vérification de l'intégrité manuellement et afficher le
contenu du rapport qui en résulte tripiware -check
![](Optimisation-de-la-securite-de-la-performance-et-virtualisation-d-un-serveur-linux100.png)
FIGURE 4.8 - Vérification d'intégrité de
fichier manuellement avec tripwire
Automatiser Tripwire avec Cron:
crontab -e puis on ajoute la ligne suivante
30 3 * * * /usr/sbin/tripwire -check | mail -s "Tripwire
report for `uname -n`"
sotutechsecurite@gmail.com
86
Bibliographie
[1] Markess International 2009.
[2] Nicolas Ruff SSTIC 2009.
[3] Qu'est-ce qu'un rootkit ? 28 Mar 2013
blog.kaspersky.fr.
[4]
developers.google.com
20/05/2016.
[5] Rafay Balouch Ethical Hacking and Penetration Testing
Guide p 174 2014.
[6]
nmap.org Nmap 7.12 2016.
[7] qemu.org/ 2015.
[8] Verisign/Merril Research 2015 DDOS TRENDS REPORT.
[9] secunia Vulnerability Review 2015.
[10] JF Pillou Tout sur les systèmes d'information
2006.
[11]
www.digitalattackmap.com
Top daily DDoS attacks worldwide 2016.
[12] Sans Institute
www.sans.org 03/06/2016.
|