PFA
1
Projet dingnieur en Tlcommunications
AAUUDDIITT EETT SSEECCUURRIITTEE DDEESS RREESSEEAAUUXX AA BBAASSEE
DDEE PPLLAATTEEFFOORRMMEE LLIINNUUXX
Prsent par :
ELLOUZE ANIS
Encadr par :
Mr BOULEIMEN KAMEL
2004/2005
PFA
2
Sommaire
INTRODUCTION GENERALE ................................................................................... 4
LE SYSTEME DEXPLOITATION LINUX .................................................................. 6
CHAPITRE 1 : LA SCURIT DES RSEAUX INFORMATIQUES.......................... 7
Introduction........................................................................................................................................................... 7
I- Politique de scurit au niveau du rseau ....................................................................................................... 7 1- Diffrents aspects de la scurit .................................................................................................................. 7 2- Objectifs ........................................................................................................................................................ 8
II- les diffrent type dattaque ............................................................................................................................. 8 1- Abus de droits lgitimes............................................................................................................................... 9
1.1 Le dni de service................................................................................................................................... 9 1.1.1 La technique du Denial Of Service............................................................................................... 9 1.1.2 Une technique de dni de service : le "smurf" .......................................................................... 10
1.2 Le TCP/SYN Flooding......................................................................................................................... 10 1.3 Le Mail Bombing ................................................................................................................................. 11
2- Usurpation d'identit ................................................................................................................................. 11 2.1 Spoofing IP ........................................................................................................................................... 11
3- Injection de code ........................................................................................................................................ 13 3.1 Le Ver ................................................................................................................................................... 13 3.2 Les Chevaux de Troie.......................................................................................................................... 13 3.3 La Bombe Logique .............................................................................................................................. 14
4- Ecoute.......................................................................................................................................................... 14 4.1 Les Scanners......................................................................................................................................... 14 4.2 Les Sniffers........................................................................................................................................... 14
III- Les principaux types de vulnrabilits ....................................................................................................... 14 1. Les failles lies aux systmes et aux applications :................................................................................... 14
1.1 Les installations par dfaut................................................................................................................. 15 1.2 Les mauvaises configurations ............................................................................................................. 15
2. Les failles lies aux protocoles :................................................................................................................. 15 2.1 Le protocole DHCP ............................................................................................................................. 15 2.2 Le protocole DNS................................................................................................................................. 16 2.3 Le protocole FTP ................................................................................................................................. 16
Conclusion ........................................................................................................................................................... 16
CHAPITRE 2 : AUDIT ET CONFIGURATION DES SERVEURS ........................... 17
Introduction......................................................................................................................................................... 17
I- prsentation gnrale de laudit de scurit.................................................................................................. 17
II- Laudit ............................................................................................................................................................ 18 1. Nmap ........................................................................................................................................................... 19 2. Nessus .......................................................................................................................................................... 20
2.1. Installation .......................................................................................................................................... 21
PFA
3
2.2. Utilisation et configuration ................................................................................................................ 22 2.2.1 Configuration et lancement du serveur ..................................................................................... 22
2.2.2 Configuration et lancement du client................................................................................................... 23 2.3 Audit du rseau.................................................................................................................................... 26
2.3.1 Exemple de test : .......................................................................................................................... 26
III- Solutions proposes ..................................................................................................................................... 28 1. Fermeture des ports .................................................................................................................................. 28 2 Configuration des serveurs......................................................................................................................... 32 2.1 SSH ............................................................................................................................................................ 32
2.2 Samba / NetBIOS................................................................................................................................. 34 2.3 Xinetd ................................................................................................................................................... 35 2.4 Serveur FTP ......................................................................................................................................... 35 2.5 Serveur Telnet...................................................................................................................................... 36
Conclusion ........................................................................................................................................................... 37
CHAPITRE 3 : CONFIGURATION DU FIREWALL ET MISE EN PLACE DUN SYSTEME DE DETECTION DINTRUSION (IDS) : ................................................. 38
Introduction......................................................................................................................................................... 39
I- architecture du rseau .................................................................................................................................... 39
II- Configuration du firewall.............................................................................................................................. 40 1. Netfilter ...................................................................................................................................................... 40
1.1. Les tables :........................................................................................................................................... 41 1.1.1 La table FILTER ......................................................................................................................... 42 2.1.2 La table NAT :............................................................................................................................. 42 1.1.3 La table MANGLE ..................................................................................................................... 42
1.2 La commande iptables......................................................................................................................... 43 1.2.1 Les rgles : ................................................................................................................................... 43 1.2.2 Configuration ............................................................................................................................... 44
III- Le systme de dtection dintrusion .......................................................................................................... 48 1. Les diffrents types dIDS ......................................................................................................................... 48
1.1 La dtection d'intrusion base sur l'hte (HIDS)............................................................................. 49 1.2 La Dtection d'Intrusion Rseau (NIDS)........................................................................................... 49
1.2.1 Les capteurs (sonde) ................................................................................................................... 49 1.2.2 Placement des capteurs ............................................................................................................... 49
2. Le produit disponible : Snort : .................................................................................................................. 50 2.1. Installation de Snort en mode RPM.................................................................................................. 50 2.2. Installation de Snort en mode source................................................................................................ 50 2.3 Utilisation de snort : ........................................................................................................................... 51
2.3.1. Utilisation de snort en mode Sniffer .......................................................................................... 51 2.3.2. Utilisation de Snort en mode packet logger :............................................................................ 53 2.3.3. Utilisation de Snort en nids :...................................................................................................... 53
2.4. Les rgles de snort .............................................................................................................................. 54
Conclusion : ......................................................................................................................................................... 56
CONCLUSION GENERALE..................................................................................... 57
PFA
4
Figure 1 : la technique du smurf (ping,pong).. 8 Figure 2: Spoofing IP (1) .. 9 Figure 3: Spoofing IP (2) .. 10
Figure 4: Spoofing IP (3) .. 11 Figure 5: La stratgie de scurit . 16 Figure 6 : Nessus adduser . 21 Figure 7 : Nessus setup .. 22 Figure 8 : Droulement du scan 23 Figure 9 : Le rapport de Nessus 23 Figure 10 : rapport de Nessus (Windows 2000 Server) .. 25 Figure 11 : rapport de Nessus (Windows XP SP2) .. 26 Figure 12 : rapport de Nessus (Linux Fedora core 3) . 27 Figure 13 : Rsultat de scan du port 22 ... 31 Figure 14 : La position du passerelle linux dans le rseau . 38 Figure 15 ; les cinq chanes de Netfilter .. 39 Figure 16 Rsultat danalyse du trafic par snort 50 Figure 17 : Snort en mode snifer ... 51
Liste des figures
PFA
5
Introduction gnrale
Linformatique et les rseaux de tlcommunication sont devenus des outils de travail
indispensables pour les tches critiques de la vie professionnelle. En plus une vritable
rvolution, dans le fonctionnement des changes de donnes, sest effectue pour faciliter les
transactions et assurer une change rapide de linformation.
Cependant, louverture du systme dinformation et de tlcommunication vers
lextrieur induit pour les entreprises une vulnrabilit de plus en plus lev, tant des
attaques malveillantes quaux risques dus lerreur humaine. Ces attaques informatiques sont
devenues une vritable menace pour les rseaux des entreprises. En gnral, elles sont
ralises par des spcialistes qui sont appels des pirates ou des hackers qui visent pirater ou
dtruire des donnes. Pour cela la matrise de la scurit des systmes dinformation et des
tlcommunications est devenue primordiale pour les transactions et les activits
quotidiennes.
Cest dans ce cadre que notre projet se situe.
Pour rsoudre les problmes de scurit des rseaux informatique, nous avons choisi
dabord Linux comme plateforme de travail, puis nous avons opt notre stratgie de scurit.
Pour ce faire, nous commencerons le premier chapitre par prsenter les diffrentes
attaques quun rseau peut subir et les failles existantes dans certains protocoles
Ensuit dans le deuxime chapitre, nous prsenterons ltape prliminaire du notre
politique de scurit qui consiste faire laudit du notre rseau, nous prsenterons galement
les outils utiliss. Aprs quoi nous prsenterons la premire tape de notre stratgie qui
consiste fermer les ports des serveurs inutiles et configurer les serveurs utiles.
En fin, dans le dernier chapitre, nous prsenterons en premier lieu le firewall Netfilter,
qui sert filtrer le trafic, en proposant un script pour la configuration. Puis en deuxime lieu
nous mettrons en place un systme de dtection dintrusion qui est capable de dtecter toute
tentative dintrusion. .
PFA
6
Le systme dexploitation Linux
Linux est un logiciel libre. Il disponible sur Internet sous forme de code source et de
binaires (excutable). Il sagit dun open source, ce qui fait sa plus grande force, chacun peut
examiner le code en langage C du systme, le modifier selon ses besoins, proposer des ajouts
ou des amliorations.
Linux est proprit de Linus Torvalds ainsi que d'autres contributeurs ce projet. Il
n'est plus considr comme un systme en bta-test, depuis que la version 1.0 . En fait ce
systme a plusieurs versions, une convention de numrotation spciale a t mise au point
sous forme x.y.z . On peut connatre si cette version est stable ou non par valeur de y ,
si y est pair donc cette version est sable. Et Lorsque il y a des corrections des bogues dans ce
cas z est incrment.
Ce qui est trs intressant sur Linux, c'est que son code source est distribu, et librement
modifiable. Les utilisateurs de ce systme peuvent participer l'laboration de Linux. Quand
il y a un bug, le premier utilisateur qui en est victime prvient les dveloppeurs, et dans les
jours qui suivent, un patch tlchargeable sera mis la disposition.
Actuellement, il existe plusieurs distributions Linux : RedHat, Mandrake, Debian
La distribution RedHat 9.0 a t la dernire distribution libre de RedHat qui a alors dcid
d'en faire une distribution commerciale payante ddie aux entreprises. RedHat a lanc en
parallle le projet Fedora, une distribution libre GPL. La version du noyau est 2.4.20.
Les raisons de choix de linux :
Tout d'abord, Linux est un systme d'exploitation stable et l'un des systmes les plus
fiables et robustes existants l'heure actuelle. Sur le plan scurit, Linux offre des outils de
scurit open source tels que les IDS (Snort, Portsentry), les pare feux (IPTABLES Netfilter,
Astaro) Les outils de logs (Swatch), les services dauthentification (SSH, Kerberos), les outils
danalyse de vulnrabilit (Nessus, Nmap). En plus, Linux peut tre configurable de la
manire quil soit capable de scuriser de faon optimale les rseaux.
PFA
7
Chapitre 1 : la scurit des rseaux informatiques
Introduction
Depuis quelques dcennies, les attaques informatiques deviennent de plus en plus
complexes avec lvolution rapide des outils et les rseaux informatiques. La plupart de
systmes dinformations des organisations (entreprises, gouvernements, particuliers..) sont
relis par un rseau avec connexion lInternet. Et comme nous savons, une connexion
lInternet est devenue de plus en plus dangereuse. Chaque point dentre constitue un point
dattaque potentiel. Donc il est vident quune entreprise ou une gouvernement adopte une
politique de scurit. En effet, les donnes caractre personnelles ont une grande valeur
marchande. Les ordinateurs de ces organisations sont en gnrale des mines dinformations.
On peut tout savoir juste en pntrant sur ces ordinateurs.
Aujourdhui, mettre en place une infrastructure informatique scurise est une ncessit.
La scurit 100% certes ne peut pas exister mais il faut sen rapprocher le plus.
Dans ce chapitre, nous allons parler de la politique scurit au niveau du rseau
informatique et les diffrentes attaques quun rseau peut subir.
I- Politique de scurit au niveau du rseau
La mise en uvre dune politique de scurit globale est assez difficile, car if faut tenir
compte de la diversit des aspects considrer. Une politique de scurit peut se dfinir par
un certain nombre de caractristiques : les niveaux o elle intervient, les objectifs de cette
politique et enfin les outils utiliss pour assurer cette scurit. Chaque aspect doit tre pris en
compte de faon atteindre les objectifs de scurit dsirs en utilisant de faon coordonne
les diffrents outils disposition..
1- Diffrents aspects de la scurit
Une politique de scurit slabore plusieurs niveaux :
Tout dabord laccs aux donnes (authentification, contrle dintgrit) doit tre
scuris. Ensuite, il est essentiel pour un responsable de scurit de sinformer
continuellement, des nouvelles attaques existantes, des outils disponibles de faon pouvoir
PFA
8
maintenir jour son systme de scurit et combler les failles de scurit qui pourraient
exister
2- Objectifs
Les objectifs dune politique de scurit sont de garantir la scurit des informations et
du rseau de lentreprise. Ces impratifs peuvent tre dfinis plusieurs niveaux :
Disponibilit : les donnes doivent rester accessibles aux utilisateurs (une attaque de type DoS, par exemple, vise empcher les utilisateurs normaux dun
service dy accder)
Confidentialit : les donnes ne doivent tre visibles que pour des personnes autorises.
Intgrit : il faut pouvoir garantir que les donnes protges nont pas t modifies par une personne non autorise.
Non rpudiation : on doit pouvoir certifier, quand un fichier a subi des modifications, la personne qui la modifi.
3- Outils
Pour assurer une bonne protection des donnes, diffrents outils sont disponibles. Ils
sont en gnral utiliss ensemble, de faon combler les diffrentes failles existantes dans le
systme. Voici quelques uns :
Le firewall : Utilis pour filtrer le trafic entrant sur le rseau.
Les antivirus : Sont aussi utiliss sur les diffrentes machines branches sur le rseau afin de vrifier si des virus ont pu se propager.
les VPN (Virtual Private Network) : Permettent un cryptage des donnes qui transitent sur un rseau public.
Les systmes de dtection dintrusion (IDS) : Limiter les attaques sur les rseaux.
II- les diffrent type dattaque
PFA
9
Il existe un grand nombre dattaques permettant une personne mal intentionne de
sapproprier des ressources, de les bloquer ou de les modifier. Certaines requirent plus de
comptences que dautres. Ces attaques ont plusieurs types savoir :
Abus de droits lgitimes
Usurpation d'identit
Injection de code
Ecoute
1- Abus de droits lgitimes
1.1 Le dni de service
Les attaques par Denial Of Service souvent abrg DOS, consistent paralyser
temporairement (rendre inactif pendant un temps donn) des serveurs afin qu'ils ne puissent
tre utiliss et consults. Elles sont un flau touchant tous serveurs mais aussi tous particuliers
relis lInternet. Le but d'une telle attaque n'est pas de rcuprer ou d'altrer des donnes,
mais de nuire des socits dont l'activit repose sur un systme d'information en l'empchant
de fonctionner.
D'un point de vue technique, ces attaques ne sont pas trs compliques. En effet, les
attaques par dni de service n'exploitent non pas les failles d'un systme d'exploitation
particulier, mais celle de l'architecture TCP/IP. Les attaques par dni de service consistent en
un envoi de paquets IP de taille excessivement importante, ce qui a pour cause la saturation de
la machine victime, qui ne peut plus assurer les services rseaux qu'elle propose (d'o le terme
dni de service).
1.1.1 La technique du Denial Of Service
Il n'y a pas de technique proprement dite dans ce type d'attaques. Mais en gnral, le
DOS se fait par le biais de l'envoi d'un datagramme IP de 65536 octets fabriqu grce la
PFA
10
fragmentation. Une fois le datagramme refragment sur l'hte distant, on obtiendra un
dbordement de mmoire provoquant un plantage de la machine cible.
1.1.2 Une technique de dni de service : le "smurf"
La technique du smurf est base sur l'utilisation des serveurs broadcast pour
paralyser un rseau. Un serveur broadcast est un serveur capable de dupliquer un message et
de l'envoyer toutes les machines prsentes sur le mme rseau. Le scnario d'une attaque est
le suivant :
La machine attaquante A envoie un ping un serveur broadcast en falsifiant sa propre
adresse IP par ladresse IP de B . Lorsque le serveur broadcast va dispatcher le ping sur
tout le rseau, toutes les machines du rseau vont rpondre par un pong , que le serveur
broadcast va rediriger vers la machine B . Ainsi lorsque la machine attaquante adresse le
ping plusieurs serveurs broadcast situs sur des rseaux diffrents, l'ensemble des
rponses de tous les ordinateurs des diffrents rseaux vont tre reroutes sur la machine
B , ce qui provoque pour ce dernire un dbordement de mmoire .
Figure 1 : la technique du smurf (ping,pong)
De cette faon, l'essentiel du travail de l'attaquant consiste trouver une liste de tous les
serveurs broadcast et d'arriver falsifier l'adresse de rponse afin de les diriger vers la
machine cible.
1.2 Le TCP/SYN Flooding
Lors d'une connexion TCP, le client et le serveur changent des donnes et des accuss
de rception pour tablir la connexion. On appelle ce mcanisme la poigne de main en trois
temps. Lorsquun client essaye de se connecter via TCP, avant dtablir la connexion avec le
PFA
11
serveur, il y a entre les deux un change de messages. Le client commence par envoyer un
message SYN (synchronisation) au serveur. Le serveur renvoie au client un accus de
rception SYN-ACK. Le client envoie enfin un message ACK pour indiquer que la connexion
est tablie. Ils peuvent alors schanger des donnes travers cette connexion TCP.
La faille de scurit se situe entre le SYN-ACK du serveur et le ACK du client. A ce
moment, il y a une demi connexion ouverte et le serveur alloue de la mmoire systme pour
prparer la connexion en attendant la connexion complte. En prparant de nombreuses demi-
connexion on peut trs vite saturer la mmoire du serveur (buffer overflow).
1.3 Le Mail Bombing
Le mail bombing consiste envoyer plusieurs milliers de messages identiques une
bote aux lettres pour la faire saturer.
2- Usurpation d'identit
2.1 Spoofing IP
Le spoofing IP est une technique permettant un hacker d'envoyer une machine des
paquets semblant provenir d'une adresse IP autre que celle de la machine du hacker. Certains
tendent assimiler l'utilisation d'un proxy (permettant de masquer d'une certaine faon
l'adresse IP) avec du spoofing IP.
Figure 2 : Spoofing IP (1)
Comme l'indique le schma ci-dessus, la technique du spoofing peut permettre un
pirate de faire passer des paquets sur un rseau sans que ceux-ci ne soient intercepts par le
systme de filtrage de paquets. En effet, un FireWall fonctionne grce des rgles de
filtrage indiquant les adresses IP autorises communiquer avec les machines internes. Ainsi,
un paquet spoof avec l'adresse IP d'une machine interne semblera provenir du rseau interne
PFA
12
et sera transmis la machine cible, tandis qu'un paquet contenant une adresse IP externe sera
automatiquement rejete par le FireWall .
Cependant, l'attaquant n'a aucune information sur le droulement du lattaque car les
rponses de la machine cible vont vers la machine spoofe du rseau,comme le montre la
figure ci-dessous, on parle alors d'attaque l'aveugle.
Figure 3 : Spoofing IP (2)
Lorsque la machine cible va recevoir le paquet spoof, cette dernire va envoyer un
accus de rception l'adresse IP de la machine spoofe, et la machine spoofe va rpondre
avec un paquet TCP dont le drapeau RST (reset) est non nul, ce qui mettra fin la connexion.
De plus, la machine spoofe prive le hacker de toute tentative de connexion, car elle envoie
systmatiquement un drapeau RST la machine cible. Ainsi, le travail du hacker consiste
alors invalider la machine spoofe en la rendant injoignable pendant toute la dure de
l'attaque.
Lorsque la machine spoofe est invalide, la machine cible attend un paquet contenant
l'accus de rception et le bon numro de squence. Tout le travail du pirate consiste alors
deviner le numro de squence renvoyer au serveur afin que la relation de confiance soit
tablie. Pour cela, les pirates utilisent gnralement la source routing, c'est--dire qu'ils
utilisent le champ option de l'en-tte IP(c= 1, classe =0, numro doption =7) afin d'indiquer
une route de retour spcifique pour le paquet. Ainsi, grce au sniffer, le pirate peut lire le
contenu des trames de retour.
La figure ci-dessous montre bien lacheminement des paquets changs entre la
machine attaquante et la machine cible.
PFA
13
Figure 4 : Spoofing IP (3)
3- Injection de code
On distingue diffrents types de virus :
Les vers
Les troyens (chevaux de Troie)
Les bombes logiques
3.1 Le Ver
Un ver est un agent autonome capable de se propager l'intrieur de la mmoire d'un
ordinateur passant d'un systme l'autre grce au rseau informatique. Son mode de
propagation est cependant redoutable car le vers effectue une commande interne qui recherche
d'autres serveurs relis Internet pour ensuite les infecter.
Depuis, le terme vers a volu, et on l'accorde maintenant certains programmes dont le
but est de dtruire certaine informations , tout en gardant un type de propagation bas sur
l'utilisation d'un rseau informatique. Les nouveaux vers se connectent au systme
d'exploitation en utilisant des trous de scurit. Les vers sont dsormais utiliss par des
hackers malicieux pour attaquer un maximum de sites en peu de temps, sans suivi rel de
l'attaque.
3.2 Les Chevaux de Troie
PFA
14
On appelle "Cheval de Troie" un programme informatique effectuant des oprations
malicieuses l'insu de l'utilisateur. Un cheval de Troie est donc un programme cach dans un
autre qui excute des commandes sournoises. Le cheval de Troie est un programme nuisible
plac dans un programme sain.
Pire, un tel programme peut crer, de l'intrieur dun rseau, une brche volontaire dans
la scurit pour autoriser des accs des parties protges du rseau des personnes se
connectant de l'extrieur. Les principaux chevaux de Troie sont des programmes ouvrant des
ports de la machine, c'est--dire permettant son concepteur de s'introduire sur une machine
cible par le rseau en ouvrant une porte. C'est la raison pour laquelle on parle gnralement de
backdoor (porte de derrire).
3.3 La Bombe Logique
Ce sont des programmes dont le dclenchement s'effectue un moment dtermin en
exploitant la date du systme.
4- Ecoute
4.1 Les Scanners
Un scanner est un programme qui permet de savoir quels sont les ports ouverts sur une
machine donne. Les scanners servent pour les hackers savoir comment ils vont procder
pour attaquer une machine.
4.2 Les Sniffers
Un sniffer est un logiciel qui permet de "voir" les informations qui transitent sur un
rseau o il se trouve. Le sniffer peut ainsi servir dceler les failles de scurit, mais il peut
aussi tre utilis de faon malveillante (pour intercepter les mots de passe du rseau par
exemple.
III- Les principaux types de vulnrabilits
1. Les failles lies aux systmes et aux applications :
PFA
15
Ces failles peuvent tre de natures diverses : problmes de configuration, problmes au
niveau du code du logiciel, problmes lis des mauvaises interprtations de commandes ou
des mauvaises excutions de scripts.
1.1 Les installations par dfaut
Lors d'une installation, beaucoup de services peuvent tre installs par dfaut (un
serveur Web, FTP ...). Ces services peuvent contenir les diffrents types de failles introduites
auparavant. L'important est de bien contrler lors de l'installation, les services qui seront
installs sur le systme. Pour tre sr de soi, il est aussi recommand de scanner la machine
pour voir ce qui y tourne. Mme si certains logiciels ne comportent pas de failles connues, ils
peuvent quand mme donner des informations aux pirates.
1.2 Les mauvaises configurations
Lorsqu'une application est mal paramtre, elle peut laisser l'accs libre certains
fichiers sensibles (fichiers de mots de passe). Donc il est important de bien lire le manuel de
configuration avant d'activer un service.
2. Les failles lies aux protocoles :
Au niveau des protocoles eux mme rside des failles prsentant des menaces pour la
scurit voici quelques exemples :
2.1 Le protocole DHCP
Le protocole DHCP est utilis pour dlivrer dynamiquement une adresse IP unique pour
chaque machine le demandant sur le rseau interne. Si un client interne veut obtenir une
adresse IP pour bnficier des services rseau, il envoie un message DHCP tout le rseau
(broadcast) pour trouver le serveur DHCP. Le serveur DHCP lui rpondra en envoyant tous
les paramtres de configuration rseau.
Un serveur DHCP possde un stock d'adresses IP qu'il les distribue aux diffrents
clients. Ce stock est bien sr limit. Si le service est mal administr, un pirate gnre un grand
nombre de requtes DHCP semblant venir d'un grand nombre de clients diffrents, le serveur
puisera vite son stock d'adresses. Les vrais clients ne pourront donc plus obtenir d'adresse
IP et par consquence le trafic rseau sera paralys.
PFA
16
2.2 Le protocole DNS
Le protocole DNS assure la correspondance entre le nom d'une machine et son adresse
IP. Un serveur DNS est en coute par dfaut sur le UDP port 53. Si un client A veuille
tablir une connexion avec une machine B alors que la machine A connat le nom de
la machine B mais pas son adresse IP. Cette dernire va donc envoyer une requte au
serveur DNS du rseau de B pour connatre son adresse IP, cette requte sera identifie
par un numro d'identification (ID). Le serveur rpond cette requte en fournissant l'adresse
IP de B et en utilisant le mme numro d'ID. Si un pirate puisse envoyer une fausse
rponse une requte DNS avant le serveur DNS, il peut rediriger vers lui le trafic
destination d'une machine qu'il l'intresse
2.3 Le protocole FTP
Le protocole FTP (File Transfert Protocol), en coute par dfaut sur les ports 21, est le
service utilis pour assurer le transfert de fichiers. Il y a deux types de serveurs FTP : les
serveurs FTP avec authentification par mots de passe et les serveurs anonymes. Pour les
premiers, le client dsirant se connecter devra fournir un login accompagn d'un mot de passe
pour authentification. Dans le cas du serveur FTP anonyme, tout le monde peut s'y connecter
librement. Le premier dfaut du protocole FTP est de ne pas encrypter les mots de passe lors
de leur transit sur le rseau. Les mots de passe associs aux logins circulent en clair sur le
rseau qui peuvent tre rcupr avec un sniffer.
Conclusion
Dans ce chapitre on a numr certains types dattaques informatiques et quelques failles
lies aux systmes dexploitations et aux protocoles. En fait ces attaques visent dtruire ou
espionner les donns confidentielles, ce qui a pouss les entreprise dtablir une politique de
scurit pour prserver leurs systme dinformation.
Dans le chapitre suivant, nous allons entamer ltape prliminaire de la scurit : laudit
PFA
17
Chapitre 2 : Audit et configuration des serveurs Introduction
Aprs avoir prsent, dans le premier chapitre, les services quune politique de scurit
doit garantir pour faire face aux diffrentes menaces externes et internes, dans ce chapitre,
nous procderons laudit de la machine Linux, pour voir quels sont les services qu y tourne.
Par la suite on va laborer notre politique de scurit.
I- prsentation gnrale de laudit de scurit
Laudit de scurit permet de vrifier scrupuleusement, ladquation de tous les points
sensibles de la ralisation de la stratgie de scurit. Les systmes dexploitations, notamment
Linux disposent gnralement de systme daudit intgres, les diffrents vnements sont
enregistrs dans un journal daudit qui devra tre analys frquemment, voire en permanence.
Laudit doit galement permettre dobtenir : les informations relatives chaque
application (le lancement ou larrt des diffrents modules, les variables dentre ou de sortie
et les diffrentes commandes excutes), les informations sur laccs au systme (qui accde,
quand et comment), Les informations sur les violations ventuelles de la scurit (tentative de
commande non autorise). Ce ci permet dlaborer par la suit la stratgie de scurit.
Dans notre projet, nous avons utilis daudit pour voir les ports ouverts sur les systmes
dexploitations Windows et Linux. Aprs quoi nous laborons notre politique de scurit.
La stratgie adopte pour scuriser un rseau avec une machine linux est comme suit :
PFA
18
Figure 5 : La stratgie de scurit
Explication : nous allons dabord scanner la machine linux en utilisant Nmap et
Nessus , voir les ports ouverts et les diffrents serveurs associs. Aprs quoi, nous posons
la question est ce que nous avons besoin de ce serveur qui tourne si la rponse est
ngative, nous allons fermer se port si non nous allons configurer ce serveur. Ensuite nous
passons la configuration du firewall pour filtrer le trafic. Et en dernire tape nous installons
un IDS pour dtecter les intrusions.
II- Laudit
Scanner la machine Linux
Voir les ports ouverts
Configuration des serveurs
Configuration du firewall
Installation de lIDS
Fermeture des ports
NonOui
Rseau scuris
PFA
19
1. Nmap
Cette commande et trs utilis par les pirate pour scanner les ports d'une machine cible,
mais en fait, quel que soit le rle que lon joue, attaquant ou dfenseur, on utilise des outils
similaires. Car toute personne qui voudra protger son rseau aura le tester lui-mme.
Nmap est un puissant outil qui permet de scanner les ports, il a pour but de dterminer
lesquels sont ouverts ou ferms. On retrouve Nmap prsent dans la plupart des distributions
actuelles. On trouvera Nmap aussi sur le site www.insecure.org/nmap.
Linstallation peut se faire de deux manires cest dire soit en utilisant les rpm avec
la commande :
Soit
Nmap est un outil trs puissant qui possde une grande quantit doptions qui sont :
sT : scanning des ports TCP ouverts.
sS : scanning des ports TCP, on envoit un message SYN pour dire quon va ouvrir une connexion TCP puis on attend la rponse, aprs rponse on sait que le port est
ouvert, lavantage de cette option est que laction nest pas logu par la cible.
sP : quivalent ping, pour voir si la cible est "alive".
sU : scanning des ports UDP ouverts.
O : permet de connatre sur quel OS tourne la cible.
p syntaxe pour avoir un ensemble de ports scanner: par dfaut Nmap scan uniquement de 1 1024 plus les ports se trouvant
dans/etc/services.
e : spcifie une interface particulire pour envoyer les paquets (eth0, ppp0, etc.).
tar xvfz nmapxxx.tar.gz ./configure make make install
rpm -ivh nmapxxx.rpm
PFA
20
Nmap a une fonctionnalit intressante, elle peut dterminer quel est le systme
dexploitation qui tourne sur la machine cible. Cette fonctionnalit est trs importante pour les
pirates car chaque systme dexploitation possde ces vulnrabilits connues ou inconnues.
Ainsi, en sachant quel systme tourne sur une machine, lintrus pourra lancer des attaques
spcifiques, afin de prendre rapidement la main dessus. Donc, moins on donne dinformation
lintrus, mieux on se protge.
Voyons par exemple ce que donne la commande Nmap lance sur la machine linux :
Nmap nous a indiqu quel est probablement le type de serveur (exemple : ssh) qui se trouve
derrire chaque port (exemple: 22/tcp).
Aprs Nmap, nous allons utiliser Nessus pour aussi scanner les ports.
2. Nessus Le tableau ci-dessous prsente les diffrents outils de test :
[root@anis ~]# nmap -O -sT -sU 192.168.0.1 Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2005-05-14 23:31 CET Interesting ports on anis (192.168.0.1): (The 3127 ports scanned but not shown below are in state: closed) PORT STATE SERVICE 22/tcp open ssh 111/tcp open rpcbind 111/udp open|filtered rpcbind 137/udp open|filtered netbios-ns 138/udp open|filtered netbios-dgm 139/tcp open netbios-ssn 445/tcp open microsoft-ds 32768/udp open|filtered omad 32771/tcp open sometimes-rpc5 Device type: general purpose Running: Linux 2.4.X|2.5.X|2.6.X OS details: Linux 2.5.25 - 2.6.3 or Gentoo 1.2 Linux 2.4.19 rc1-rc7) Uptime 0.047 days (since Sat May 14 22:24:25 2005)
PFA
21
Nessus Sara Saint IS
Cible Une machine dans un rseau
Rseau en totalit Rseau en totalit une machine dans le
rseau
Nombre de vulnrabilits testes
850 150 150 50%de
vulnrabilits
Plateforme Linux Linux Linux NT
Le port des attaques
Libre Libre Libre Verrouill
Mise jour de vulnrabilits
Simple ajout de
module
Changement de
version
Changement de
version
Simple ajout de
module
Slection des vulnrabilits
Simple clic Difficilement
exploitable
Difficilement
exploitable
Simple clic
Nous estimons daprs ce tableau que Nessus est loutil appropri pour notre
application. En effet, Nessus est un outil de scurit permettant de scanner une ou plusieurs
machines. Il permet aussi de tester diffrentes attaques pour savoir si une ou plusieurs
machines sont vulnrables.
Nessus permet de tester jusqu 850 vulnrabilits. Il fonctionne grce un systme
client/serveur : le serveur fonctionne sur une plateforme Unix, Linux alors que le client peut
fonctionner mme sur Windows. Nessus peut supporter plusieurs utilisateurs dont on spcifie
leurs comptes et les restrictions y associes.
2.1. Installation
Nous pouvons procder linstallation de Nessus suivant diffrentes mthodes ; nous
prsenterons dans ce qui suit les deux mthodes les plus utilises, certes, les plus scurises.
1re mthode : Nous devons commencer par tlcharger les fichiers sources suivants :
PFA
22
nessus-libraries-2.0.4.tar.gz
libnasl-2.0.4.tar.gz
nessus-core-2.0.4.tar.gz
nessus-plugins-2.0.4.tar.gz
Ces fichiers sont tlchargeables partir du cite officiel : www.nessus.org . Nous devons
ensuite dcompresser ces fichiers et les installer une une.
Exemple :
2me mthode :
Cette mthode est certes plus simple mais elle ncessite que les fichiers cits
prcdemment soient sous formes de paquetages rpm . Il suffit alors de taper une seule
commande pour chaque paquetage:
Suite l'installation du client et du serveur, on doit crer le certificat pour Nessus. La
commande est la suivante :
2.2. Utilisation et configuration
Nessus fonctionne en client/serveur. Le serveur s'appelle nessusd, et le client nessus.
2.2.1 Configuration et lancement du serveur
# tar -xzvf nessus-libraries-2.0.4.tar.gz # cd nessus-libraries-2.0.4.tar.gz #. /configure # make # make install
# rpm ivh mon-du-paquetage.rpm
# nessus-mkcert
PFA
23
Avant de lancer le dmon nessusd, il faut rajouter, au moins, un utilisateur et son mot de
passe
# nessus-adduser
Figure 6 : Nessus adduser
Par dfaut, le fichier de configuration de ce serveur est nessusd.conf. Il contient des options dfinit par dfaut lors de linstallation.
2.2.2 Configuration et lancement du client
Nessus propose un client graphique qu'on peut le lancer par la commande :
# nessus
PFA
24
Figure 7 : Nessus setup
Daprs cette figure nous distinguons 8 onglets (on va sintresser seulement les cinq
premiers onglets) :
Le premier est nessusd host . Cette fentre permet de se connecter sur l'hte nessusd en cliquant sur le bouton Log in .Une fois la connexion est tablie,
le serveur envoie au client la liste des plugins
Le deuxime onglet concerne les plugins. On y slectionne les plugins utiliser pendant le scan. En cliquant sur un plugin , la description du contenu apparat.
Le troisime onglet dfinit les prfrences des plugins. Lutilisateur peut choisir de scanner les ports UDP ou TCP ainsi la technique de scan des ports : connect ou
syn scan .
Le quatrime permet de dfinir les options de scan, les ports scanner et les ports scanner.
Le cinquime onglet indique Nessus la cible scanner. Dans le champ target , on peut crire le nom d'un ou plusieurs htes spars par des virgules ou une ou
plusieurs adresses IP,
PFA
25
Quand tout est au point, on clique sur start the scan pour lancer le scan. Il apparat alors la
fentre suivante :
Figure 8 : Droulement du scan.
Quand le scan finit, une fentre rcapitulative s'affiche. En cliquant sur un hte, nous
obtenons les rsultats de scan. Nous pouvons galement enregistrer se rapport sous un format
choisi (HTML, ASCII), en cliquant simplement sur Save report et le format souhait.
Figure 9 : Le rapport de Nessus Dans ce rapport tabli par Nessus, nous distinguons trois types dalertes qui apparaissent la fin du scan.
Alerte de scurit : Cette alerte traduit une menace ventuelle qui peut survenir un port prcis. Le risque est dcrit brivement pour nous informer sur les possibilits
de son origine et sur limpact quil peut avoir sur notre machine. Son degr est
PFA
26
affich et peut prendre lune des alternatives suivantes : High(haut) ,medium
(moyen) ou low (bas) .
Note de scurit : Cette note sert informer sur les ports auxquels Nessus est lcoute. Elle concerne diffrents ports connus et non connus de notre machine
que ce soit pour un protocole UDP ou TCP.
Faille de scurit : Ou encore security hole , elle prvient de la prsence dune faille au sein du systme de scurit de notre hote .il est indiqu cependant , les
failles face auxquelles la machine concern peut tre vulnrable. Comme pour
lalerte de scurit, le degr dinscurit et la solution propose pour surmonter le
risque sont affichs.
2.3 Audit du rseau
Nessus permet aussi L'audit d'un rseau entier afin de dterminer les failles et les
anomalies existantes.
2.3.1 Exemple de test :
Vu que les machines connecter au rseau de l' IsetCom sont des machines Windows Xp ou Windows 2000 Server, le teste sera effectu sur deux machines de la salle X25.
Au laboratoire X25, trois machines et un hub ont t mis notre disposition : deux
machines Windows (XP, 2000 Server), processeur Pentium III, 128 Mo de RAM et une
machine linux.
Pour effectuer le test, nous avons procd ainsi :
Sur l'une des trois machines, on a installer Linux Fedora core 3. Ensuite nous avons
install Nessus client et serveur (version Linux). Puis suite la configuration du client et du
serveur Nessus, l'activation des cartes rseau et la dfinition des adresses IP, nous avons
lanc le scan.
Voici le rsultat de scan de la machine Windows 2000 Server qui a une adresse IP
192.168.1.2
PFA
27
Figure 10 : rapport de Nessus (Windows 2000 Server)
Nous avons aussi lanc le scan sur une machine Windows XP SP2 pour voir quelles
sont les failles existantes sur ce systme dexploitation.
Figure 11 : rapport de Nessus (Windows XP SP2) Voici le rsultat de scan de la machine Linux
PFA
28
Figure 12 : rapport de Nessus (Linux Fedora core 3) Dans ces rapports on distingue trois tableaux :
Les dtails de scan : qui sont sous forme de statistique, c'est--dire le nombre de hosts quon a scann, le nombre de failles de scurit et le nombre dalertes de
scurit
La liste des adresses IP des hosts scanns La liste des ports qui sont ouverts et les services associs
En plus de ces informations, Nessus propose des solutions pour corriger les diffrentes
failles existantes, en gnral les solutions sont : filtrage du trafic mise jour du service fermeture des ports
III- Solutions proposes Aprs avoir connatre en dtail quels sont les ports ouverts et quels sont les serveurs qui y
tournent derrire on va maintenant laborer notre politique de scurit qui consiste dabord
fermer les ports des serveurs quon a pas besoin et configurer les serveurs utiles.
1. Fermeture des ports
PFA
29
Aprs avoir lanc un audit sur notre machine Linux en utilisant " Nmap" et " Nessus".
Nous avons pu dterminer quels sont les serveurs qui tournent sur notre machine. Il faut
maintenant poser la question Est-ce que nous avons besoin dun tel serveur ou non ? .
Parfois, la rponse peut tre ngative, et auquel cas laction doit tre immdiate : donc nous
devons fermer au plus tt ce serveur car il ny a rien de plus dangereux que de laisser un
serveur tourner sans lutiliser. On fini peut tre par loublier, et nous ne ferons pas attention
le mettre jour pour corriger ses dfauts. Auquel cas, un intrus peut tomber sur ce serveur et
bnficier dun trou de scurit pour pntrer sur notre machine.
Exemple:
Nous allons traiter un exemple de fermeture de port :
Nous allons chercher supprimer le serveur Samba / NetBIOS qui utilise les deux
protocole de transport TCP et UDP, dont les ports sont : 139, 138,137 et 445 de notre machine
linux. Samba est un systme le partage de fichiers en rseau avec les machines Windows.
Donc nous allons lancer nmap avec loption p (port) pour voir ltat de ces ports
Daprs
La commande Nmap a montr que les ports 137/udp, 138/udp , 139/tcp et 445/tcp sont
ouvertes.
[root@anis init.d]# nmap -sT -sU anis -p138,139,137,445 Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2005-05-14 23:42 CET Interesting ports on anis (192.168.0.1): PORT STATE SERVICE 137/tcp closed netbios-ns 137/udp open|filtered netbios-ns 138/tcp closed netbios-dgm 138/udp open|filtered netbios-dgm 139/tcp open netbios-ssn 139/udp closed netbios-ssn 445/tcp open microsoft-ds 445/udp closed microsoft-ds
PFA
30
Afin de supprimer ce serveur, il nous faut dabord savoir quels sont les programmes qui
tournent derrire ces ports. Pour cela nous allons utiliser la commande Netstat qui nous
indique l'tat de connexion en cours
Seuls les lignes contenant "netbbios" sont affiches. Nous voyons que les programmes
qui tournent sont "smbd" et "nmbd".
Maintenant, nous allons chercher le dmon qui a lanc ces serveurs. Sous Linux, tous les
programmes qui lancent des programmes sont situs dans /etc/init.d/ Nous remarquons donc quon a un fichier appel /etc/init.d/smb qui pourrait bien
correspondre ce que nous voulions.
Ensuite nous allons voire le status du dmon Samba
Nous remarquons que les deux programmes smbd et nmbd sont en cours dexcution,
il faut les arrter :
[root@anis ~]# netstat -taupe Connexions Internet actives (serveurs et tablies) Proto Local Address State PID/Program name tcp *:microsoft-ds LISTEN 3685/smbd tcp *:netbios-ssn LISTEN 3685/smbd udp anis:netbios-dgm 3689/nmbd udp anis:netbios-ns 3689/nmbd udp *:netbios-dgm 3689/nmbd udp *:netbios-ns 3689/nmbd
[root@anis ]# ls -la /etc/init.d/ -rwxr-xr-x 1 root root 2020 oct 19 2004 smb
[root@anis ~]# /etc/init.d/smb status smbd (pid 3692 3685) en cours d'excution... nmbd (pid 3689) en cours d'excution...
[root@anis ~]# /etc/init.d/smb stop Fermeture des services SMB : [ OK ] Fermeture des services NMB : [ OK ]
PFA
31
Et pour vrifier :
Samba est arrt, comme le confirme la commande. Mais ce serveur nest arrt que
tant que notre machine fonctionne. Maintenant, nous voulons que ce serveur ne soit plus du
tout lanc aux prochains dmarrages.
En fait, sous Linux, pour dmarrer automatiquement un serveur il suffit de crer un lien
symbolique. Suivant que la machine dmarre en mode texte ou en mode graphique, il faut
crer un lien symbolique dans respectivement les rpertoires /etc/rc.d/rc3.d/" ou "/etc/rc.d/rc5.d/" vers le script du serveur qui se trouve dans le /etc/init.d .
Concrtement, voila comment cela se passe :
Note : -> .. : indique le symbole du lien symbolique
Dans ces deux rpertoires, nous voyons donc deux liens K35smb ->../init.d/smb qui lancent le serveur Samba lors du dmarrage de la machine. Nous allons donc les
supprimer, et ainsi Samba ne sera plus jamais lanc :
[root@anis ~]# /etc/init.d/smb status smbd est arrt nmbd est arrt
[root@anis ~]# ls -la /etc/rc.d/rc3.d/ /etc/rc.d/rc5.d/ /etc/rc.d/rc3.d/: lrwxrwxrwx 13 mai 14 16:30 K35smb -> ../init.d/smb /etc/rc.d/rc5.d/: lrwxrwxrwx 13 mai 14 16:30 K35smb -> ../init.d/smb
[root@anis ~]# rm /etc/rc.d/rc3.d/K35smb rm: dtruire lien symbolique `/etc/rc.d/rc3.d/K35smb'? rm: dtruire lien symbolique `/etc/rc.d/rc5.d/K35smb'?
PFA
32
Le programme de partage de fichiers avec les autres machines Windows de notre rseau
est arrt. Mais le problme qui se pose, lorsque nous voulons que les autres machines du
rseau puissent rcuprer de notre machine des documentations par exemple. Dans ce cas on a
recours la configuration de ce serveur.
En rsum : autant arrter des serveurs qui ne servent pas est primordial, autant arrter des
serveurs qui sont utiliss est problmatique. Lidal serait de dire au serveur "ne rponds qua
tel machines, et ne rpond pas aux autres"
2 Configuration des serveurs 2.1 SSH SSH (client SSH) est un programme qui permet de se connecter sur une machine distante, ou
dexcuter des commandes sur une machine distante. Il est suppos remplacer rlogin et
rsh , et fournit des transmissions scurises et cryptes entre deux machines qui ne sont pas
sres, et ce travers un rseau non scuris.
Lors du scan de la machine Linux, nous avons trouv que le port 22/tcp correspond au
serveur SSH est ouvert. Nous allons pas fermer se port car nous avons besoin que une
machine distante puisse se connecter sur notre machine pour par exemple configurer le
firewall ou excuter des commande sur notre machine Linux.
La figure ci-dessous prsente le rsultat de scan du port 22/tcp.
PFA
33
Figure 13 : Rsultat de scan du port 22
A partir du rsultat de scan on voit que le port 22/tcp qui correspond au service SSH est
ouvert et la solution propose par Nessus est la suivante :
Si vous utilisez OpenSSH, modifiez loption 'Protocol' '2' Si vous utilisez SSH.coms, modifiez loption 'Ssh1Compatibility' 'no'
En plus de a Nessus nous a facilit la tche en nous donnant la version de SSH, donc on va
juste modifier les options.
Voici le fichier sshd-config aprs configuration
Et si on veut interdire la connexion la session root on doit crire le script suivant
Port 22 Protocol 2 ListenAddress 192.168.1.0/24 ListenAddress ::
PermitRootLogin no
PFA
34
2.2 Samba / NetBIOS
En fait le serveur samba a son fichier de Configuration /etc/samba/smb.conf Dans ce cas nous allons configurer ce serveur pour quil rpond seulement au utilisateur du
rseau 192.168.1.0 ou quelque utilisateurs de ce rseau via linterface 192.168.1.1et avec mot
de passe pour chaque utilisateur.
Les points principaux configurer sont :
Smbpasswd : fichier qui contient les noms et mots de passe des personnes autorises utiliser
samba.
Pour ajouter un nouvel utilisateur on lance la commande smbpasswd a user
Paramtres globaux : (extrait du fichier smb.conf ):
Les volumes partager
[root@anis ~]# smbpasswd -a invite New SMB password: Retype new SMB password: startsmbfilepwent_internal: file /etc/samba/smbpasswd did not exist. File successfully created. Added user invite.
# Global parameters [global] workgroup = nom du groupe encrypt passwords = Yes smb passwd file = /etc/samba/smbpasswd log file = /var/log/samba-log.%m lock share modes = yes hosts allow = 192.168.1.0/255.255.255.0 # interfaces = 192.168.1.1 hosts deny =all
[myshare] comment = invite's stuff path = /usr/somewhere/shared valid users = invite share modes = yes
PFA
35
2.3 Xinetd
Sous linux, il existe un serveur assez particulier appel le super-serveur qui est
xinted . Ce serveur dmarre les programmes fournissant des services Internet (ftp, telnet,
rlogin ). Au lieu de dmarrer ces services au moment de l'initialisation du systme, et de les
laisser inactifs jusqu' ce qu'il y ait une demande de connexion, on ne dmarre que xinetd
et celui ci coute sur tous les ports ncessaires aux services lists dans ses fichiers de
configuration. Lorsqu'une requte arrive, xinetd dmarre le service correspondant et
continue couter pour prendre en charge de nouvelles demandes de connexions, et de lancer
de nouveaux processus. Lobjectif de ce super-serveur tait de prserver les ressources
systme en vitant de crer de nombreux processus dont la plupart ne seront actifs que trs
peu de temps et de les protger. Nous pouvons galement ne laisser laccs un serveur que
depuis une certaine adresse IP, ou une certaine interface rseau.
Voici le fichier de configuration de xinetd aprs modifications :
2.4 Serveur FTP
Voici le fichier de con figuration du serveur FTP aprs modification
defaults { log_type = SYSLOG authpriv log_on_success = HOST PID # loger @ du HOST et son PID log_on_failure = HOST # cps = 25 30 no_access = # tous les accs sont interdit.}
# Service FTP (rseau local) service ftp {socket_type = stream server = /usr/sbin/proftpd flags = REUSE
PFA
36
2.5 Serveur Telnet
Voici le fichier de con figuration du serveur FTP aprs modification
Voyons ici la dmarche adopte :
La premire protection rside dans le script no_access c'est--dire personne na accs aux serveurs protgs par xinetd .
La seconde protection rside dans le script bind = eth0 c'est--dire seul les requtes arrivant sur eth0 sont autorises.
service telnet { flags = REUSE NAMEINARGS socket_type = stream protocol = tcp wait = no user = root server = /usr/sbin/tcpd server_args = in.telnetd only_from = 192.168.1.0 disable = no
PFA
37
La troisime protection rside dans le script only_from = 192.168.1.0/24 le client doit avoir un adresse apparition au rseau 192.168.1.0
Et pour vrifier la configuration du serveur telnet , nous avons fait le test suivant :
Nous avons autoris ladresse 192.168.1.1 de faire telnet sur la machine linux le rsultat
affich aprs test est la suivante
Puis nous avons interdit laccs pour cette mme adresse et rsultat du test est la
suivante :
A la fin de paramtrage de chaque serveur, nous devons redmarrer le rseau pour que le
systme puisse tient en compte de ces changements, donc nous allons taper tout simplement
/etc/rc.d/init.d/network restart .
Cette mthode de scurit (diter les fichiers de configurations) est trs intressante au
niveau de la scurit de la machine contre les intrusions mais il faut la renforcer par dautres
outils comme le firewall et le systme de dtection dintrusion.
Conclusion
[root@anis ~]# telnet 192.168.1.1 Trying 192.168.1.1... Connected to anis (192.168.1.1). Escape character is '^]'. Fedora Core release 3 (Heidelberg) Kernel 2.6.9-1.667 on an i686 login:
[root@anis ~]# telnet 192.168.1.1 Trying 192.168.1.1... Connected to anis (192.168.1.1). Escape character is '^]'. Connection closed by foreign host.
PFA
38
Il est noter, que laudit du rseau est une tape indispensable pour bien prvoir une
solution de scurit. Ceci ntait pas possible sans lutilisation des scanners (Nessus, Nmap),
qui ont permit de dgager les diffrentes vulnrabilits et de proposer mme des solutions.
Dans le chapitre suivant nous allons laborer une solution qui consiste mettre en place
une passerelle linux o un firewall bien configur va filtrer le trafic et un IDS va dtecter les
intrusions.
PFA
39
Chapitre 3 : Configuration du firewall et mise en place dun systme de dtection dintrusion (IDS) :
Introduction
Un pare-feu est un systme physique (matriel) ou logique (logiciel) servant d'interface
entre un ou plusieurs rseaux afin de contrler et ventuellement bloquer la circulation des
paquets de donnes. Il s'agit donc d'une machine qui va soccuper de filtrer le trafic
comportant au minimum deux interfaces rseau :
une interface pour le rseau protger (rseau interne).
une interface pour le rseau externe.
En plus le pare-feu nous allons installer un IDS Intrusion Detection System .Ce dtecteur
d'intrusions permet de surveiller un rseau ou un hte particulier, afin de dtecter toute
tentative dintrusion
Dans ce chapitre nous allons prsenter larchitecture du rseau scuriser. Puis nous allons
configurer le firewall Netfilter . Enfin nous installons un IDS Snort capable d'effectuer
l'analyse du trafic en temps rel ou diffr en provenance des diffrents systmes.
I- architecture du rseau
Larchitecture du rseau scuriser est constitue essentiellement dune passerelle Linux.
Cette passerelle va filtrer le trafic entrant et sortant grce au firewall Netfilter. En se qui
concerne les caractristiques de cette passerelle, Linux nexige pas une mmoire importante
grce au swap. Mais il faut avoir seulement deux cartes rseaux, une pour le rseau interne et
lautre pur le rseau externe. Sur cette passerelle nous allons installer les outils de scurit
savoir :
Le firewall Netfilter Les scanners Nessus et Nmap LIDS Snort
192.168.1.3 192.168.1.4 .
PFA
40
Figure 14 : La position du passerelle linux dans le rseau Aprs avoir eu une ide sur larchitecture passant maintenant la configuration
II- Configuration du firewall Avant de passer la configuration nous allons prsenter larchitecture et le fonctionnement du firewall Netfilter sous Linux.
1. Netfilter
Le firewall sous Linux appel Netfilter permet :
D'effectuer des filtrages de paquets, principalement pour assurer des fonctions de Firewall. On pourra par exemple interdire tous les paquets venant de
l'Internet et s'adressant au port 80 (HTTP) de passer.
Hub Passerelle linux Eth0 192.168.1.1 Eth1 192.168.1.2
Eth0 Eth1
PFA
41
D'effectuer des oprations de NAT (Network Address Translation) Ces fonctions sont particulirement utiles lorsque l'on veut faire communiquer tout
ou partie d'un rseau priv, mont avec des adresses IP prives (192.168.x.x
par exemple) avec l'Internet.
D'effectuer des oprations de marquage des paquets, pour leur appliquer un traitement spcial.
1.1. Les tables :
Une table permet de dfinir un comportement prcis de Netfilter. Une table est un
ensemble de chanes appel aussi hook qui sont : PREROUTING, FORWARD,
POSTROUTING, INPUT et OUTPUT. Elles mmes composes des rgles. Il existe trois
types de tables prdfinies : FILTER, NAT et MANGLE. D'autres peuvent tre rajoutes.
Dans le firewall Netfilter, lacheminement des paquets se fait comme suit :
Les paquets qui entrent par nimporte quelle interface vont tre rout vers les processus
locaux ou bien forwarder vers dautre interface rseau. Lorsque un paquet va passer par
une chane toutes les rgles de cette chane vont tre appliqu sur ce paquet. Si ce dernier va
satisfaire une contrainte dune rgle une dcision va tre pris par le firewall. Si non le paquet
passe normalement sur le rseau
(Entr) (Sortie)
Figure 15 ; les cinq chanes de Netfilter
PREROUTING
INPUT OUTPUT
POSTROUTING FORWARD
PFA
42
1.1.1 La table FILTER
Comme son nom l'indique, cette table sert filtrer les paquets rseaux. Elle permet de
trier les paquets qui passent travers le rseau, supprimer ceux qui ne nous intressent pas, ou
ceux qui sont dangereux. Cette table utilise 3 chanes savoir :
INPUT : cette chane contrle les paquets destination des applications. OUTPUT : cette chane analyse les paquets qui sortent des applications. FORWARD : cette chane filtre les paquets qui passent d'une interface rseau
l'autre. Il est noter que les paquets de ce type ne passent jamais par les
chanes INPUT et OUTPUT.
Cette table utilise quatre cibles : ACCEPT, REJECT, DENY, DROP.
2.1.2 La table NAT :
La table NAT est utilise pour la translation dadresse et de port. Elle a deux types de
chanes : PREROUTING et POSTROUTING et trois cibles possibles MASQUERADE,
DNAT et SNAT.
PREROUTING : Les paquets vont tre modifis l'entre de la pile rseaux, et ce, qu'ils soient destination des processus locaux ou d'une autre interface.
OUTPUT : Les paquets sortant des processus locaux sont modifis. POSTROUTING : les paquets qui sont prs tre envoys aux interfaces rseaux
sont modifis.
1.1.3 La table MANGLE
La table MANGLE est utilise pour la modification des paquets. Dans les premiers
kernels de la srie 2.4, la table Mangle n'utilisait que 2 chanes (PREROUTING et OUTPUT).
Mais depuis le kernel 2.4.18 elle utilise toutes les chanes de Netfilter :
PREROUTING: Les paquets vont tre marqus en entre de la couche rseau, en fonction de certains critres, de type de service (grce aux numros de ports source
PFA
43
et/ou de destination), d'adresses IP de source et/ou de destination, de taille des
paquets, etc.
INPUT : Les paquets sont marqus juste avant d'tre envoys aux processus locaux.
FORWARD : Les paquets passant d'une interface rseau l'autre sont marqus. OUTPUT : dans cette chane les paquets gnrs par les applications locales vont
tre marqus.
POSTROUTING : Les paquets prts tre envoys sur le rseau sont marqus.
1.2 La commande iptables
Iptables est une solution complte de firewall (noyau 2.4) remplaant ipchains
(noyau 2.2) tournant sous le systme GNU/Linux. Il est fiable et dispose de trs nombreuses
options qui permettent de faire du filtrage trs fin.
1.2.1 Les rgles : Les rgles sont une srie de critres auquel doivent ou non rpondre les paquets. Si le
paquet rseau ressemble l'un ou l'autre des critres, alors la rgle est applique. Les
diffrentes rgles d'une chane sont appliques les unes la suite des autres. Il existe de
nombreux paramtres dont l'association permet de spcifier des types de paquets sur lesquels
une dcision de filtrage doit tre prise.
Adresses IP source et destination : -s et d : Ces paramtres prennent en arguments l'adresse IP ou le nom d'un hte ou l'adresse IP d'un rseau.
Inversion ! : La plupart des arguments de spcification de filtrage peuvent tre inverss l'aide du signe !
Protocole : -p : Les protocoles tcp, udp et icmp sont reconnus. Interface : -i et o : Il est possible de spcifier l'interface d'entre dans une rgle de
la chane INPUT, l'interface de sortie dans une rgle de la chane OUTPUT, et les
deux avec la chane FORWARD.
Fragments: -f : Certains paquets sont dcomposs en fragments avant d'tre transmis. Le premier fragment contient toutes les enttes obligatoires, mais pas les
suivants.
Extensions :
PFA
44
Outre les paramtres de base, il est possible d'utiliser des extensions offrant des
fonctionnalits de spcification supplmentaires.
Les protocoles :
Les extensions pour les protocoles peuvent tre utilises aprs la spcification du
protocole (-p) :
Pour les protocoles TCP et UDP nous pouvons utilis les options suivantes
--tcp-flags : Ce paramtre permet d'examiner les drapeaux de l'entte tcp.
Il prend deux arguments:
--sport, ou --source-port : Ce paramtre permet de spcifier le port source du paquet. ou un bloc de ports.
--dport ou --destination-port : port de destination. Etat de la connexion :
Ce module est la vraie nouveaut de iptables . Il est appel avec -m state . Il
permet de suivre les connexions.
Les arguments du paramtre d'tat sont les suivants :
NEW : indique une nouvelle connexion. ESTABLISHED: une connexion tablie. RELATED : une connexion relative une autre. INVALID : correspond aux paquets ne pouvant tre identifis.
1.2.2 Configuration
La premire tape faire est de vrifier que le noyau support a t compil avec
l'option Netfilter, il faut vrifier que ip_conntrack & ip_tables apparaissent bien avec la
commande dmesg .
PFA
45
Dmesg | grep ip_ conntrack
dmesg | grep ip_tables Sinon: il faut charger ces diffrents modules
# modprobe ip_tables
# modprobe ip_nat_ftp
# modprobe ip_nat_irc
# modprobe iptable_filter
# modprobe iptable_mangle
# modprobe iptable_nat
Vrification de lexistence de ip_conntrack et ip_tables
La rponse est positive daprs le rsultat de cette commande.
Aprs avoir vrifier que Netfilter est bien install sur notre machine nous allons
maintenant adopter une stratgie de configuration qui permette le filtrage du trafic.
Stratgies adoptes :
Premirement, vider toutes les chanes de toutes les tables de Netfilter, afin de
supprimer les anciennes rgles existantes dans le firewall. Mais il ne faudra pas
[root@localhost init.d]# dmesg | grep ip_tables
ip_tables: (C) 2000-2002 Netfilter core team
ip_tables: (C) 2000-2002 Netfilter core team
[root@localhost init.d]# dmesg | grep ip_conntrack
ip_conntrack version 2.1 (2047 buckets, 16376 max) - 356 bytes per conntrack
ip_conntrack version 2.1 (2047 buckets, 16376 max) - 356 bytes per conntrack
PFA
46
rester trop longtemps dans cette situation, car la machine sera sans aucune
protection.
Deuximement, interdire par dfaut tous les paquets. Pour cela, nous allons utiliser l'option "-P" ("Politique par dfaut) des chanes INPUT, FORWARD et OUTPUT de la table FILTER.
Dans un dernier temps, nous allons autoriser (interdire) que certains flux bien particuliers.
Configuration du Passerelle linux
# Ne pas rpondre aux pings broadcasts echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts # Autorisation du forwarding echo 1 >/proc/sys/net/ipv4/ip_forward # Suppression de toutes les chanes prdfinies de la table FILTER iptables -F #Suppression de toutes les chanes utilisateur de la table FILTER iptables -X #Par dfaut, tous les paquets de la table FILTER sont dtruits iptables -t filter -P INPUT DROP iptables -t filter -P OUTPUT DROP iptables -t filter -P FORWARD DROP #faisons de mme avec toutes les autres tables, savoir "nat" et "mangle", mais en les faisant pointer par dfaut sur ACCEPT. iptables -t nat -F iptables -t nat -X
iptables -t nat -P OUTPUT ACCEPT iptables -t mangle -F iptables -t mangle -X iptables -t mangle -P PREROUTING ACCEPT iptables -t mangle -P INPUT ACCEPT iptables -t mangle -P OUTPUT ACCEPT iptables -t mangle -P FORWARD ACCEPT iptables -t mangle -P POSTROUTING ACCEPT #Autoriser l'interface loopback de dialoguer avec elle mme iptables -t filter -A OUTPUT -o lo -j ACCEPT iptables -t filter -A INPUT -i lo -j ACCEPT
PFA
47
# Seules les connexions dj tablies ou en relation avec des connexions tablies sont acceptes iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT #Afin d'empcher les ping des autres machines: iptables -t filter -A INPUT -i eth0 -s ! 192.168.1.0/24 -p icmp --icmp-type echo-request -j DROP #autorise la machine distante (192.168.1.3) de se connecte sur notre machine par ssh iptables -A INPUT -p tcp -s 192.168.1.3 --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j REJECT # Refuse de rediriger les paquets samba iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 137 -j REJECT iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 138 -j REJECT
PFA
48
Aprs avoir configur le firewall nous allons passer ltape suivante qui consiste installer
le systme de dtection dintrusion Snort
III- Le systme de dtection dintrusion 1. Les diffrents types dIDS
Les systmes de dtection d'intrusion ou IDS peuvent se classer selon leur domaine de
surveillance. Celui-ci peut se situer au niveau dun rseau dentreprise, dune machine hte,
dune application
PFA
49
Mais nous allons tudier seulement la dtection dintrusion base sur lhte (HIDS) et
les IDS rseaux (NIDS) puisquils sont les plus utiliss.
1.1 La dtection d'intrusion base sur l'hte (HIDS)
Les systmes de dtection d'intrusion bass sur l'hte ou HIDS (Host IDS) analysent
seulement l'information concernant cet hte. Ils sont en gnral placs sur des machines
sensibles, susceptibles de subir des attaques et possdant des donnes sensibles pour
lentreprise. Les serveurs, web et applicatifs, peuvent notamment tre protgs par un HIDS.
1.2 La Dtection d'Intrusion Rseau (NIDS)
Le rle essentiel d'un IDS rseau est l'analyse et l'interprtation des paquets circulants
sur ce rseau. Son implantation sur un rseau se fait de la faon suivante : des capteurs sont
placs aux endroits stratgiques du rseau et gnrent des alertes sils dtectent une attaque.
Ces alertes sont envoyes une console scurise, qui les analyses et les traites. Cette console
est gnralement situe sur un rseau isol, qui relie uniquement les capteurs et la console.
1.2.1 Les capteurs (sonde)
Les capteurs aussi appels sondes existantes sur le rseau sont placs dans des endroits
spcifiques. Il faut que la carte rseau de ce capteur soit configur en mode "promiscuous",
cest dire le mode dans lequel la carte rseau intercepte tout le trafic.
En gnral un capteur possde deux cartes rseaux, une connecte sur le rseau, et lautre
avec console de scurit.
1.2.2 Placement des capteurs
Il est possible de placer les sondes ou capteurs dans des endroits diffrents. Ils peuvent
tre placs avant ou aprs le pare-feu, ou dans une zone sensible que lon veut protger
spcialement.
Si les capteurs se trouvent aprs un pare-feu, il leur est plus facile de dire si le pare-feu
a t mal configur ou de savoir si une attaque est venue par ce pare-feu. Ces capteurs ont
pour mission de dtecter les intrusions qui nont pas t arrtes par ce dernier. Il sagit dune
utilisation courante dun NIDS.
PFA
50
Il est possible de placer un capteur lextrieur du pare-feu c'est--dire avant le
firewall. Limportance de cette position est que le capteur peut ainsi recevoir et analyser
l'ensemble du trafic d'Internet. Si on place le capteur ici, il n'est pas certain que toutes les
attaques soient filtres et dtectes. Cet emplacement a pour but de dterminer toute tentative
dattaques, car tout le trafic va passer par lIDS avant dtre filtr. Ce qui permet
l'administrateur danalyser tout le trafic puis voir ce qu'il doit modifier dans la configuration
du pare-feu.
Les capteurs IDS sont parfois situs lentre de zones du rseau particulirement
sensibles, de faon surveiller tout trafic en direction vers cette zone.
2. Le produit disponible : Snort :
Dfinition :
Snort est un systme de dtection d'intrusion rseau. Son rle principal est d'effectuer
l'analyse du trafic en temps rel et la journalisation de paquets. Snort utilise un langage de
rgles flexibles pour dcrire le trafic qu'il devrait collecter ou laisser passer.
Snort a trois utilisations principales. Il peut tre utilis comme sniffeur de paquets, un
enregistreur de paquets, ou comme un systme complet de dtection d'intrusion rseau.
On va sintresser dans ce chapitre lanalyse des rgles de snort
2.1. Installation de Snort en mode RPM
Pour installer Snort en mode RPM on doit respect les tapes suivantes :
Tlchargement de la version la plus rcente de Snort (snort-2.1.3) de son site web (http://www.snort.org) savoir snort-2.1.3-1snort.1386.rpm.
Pour installer snort-2.1.3, il faut aller la ligne de commande et excuter la commande:
2.2. Installation de Snort en mode source
Pour pouvoir installer Snort en mode source, il est ncessaire davoir libpcap install
sur la machine. Donc pour cela il faut dabord le tlcharger depuis le site web
#rpm -ivh snort-2.1.3-1snort.i386.rpm
PFA
51
(http://www.sourceforge.net/projects/libpcap). Ensuite Il faut excuter les commandes
usuelles dinstallation en mode source suivantes :
Linstallation de Snort est trs classique, il suffi de le tlcharger depuis son site
(http://www.snort.org) et de taper ces commandes dans le terminal :
2.3 Utilisation de snort Snort remplit globalement 3 tches, qui sont ses modes de fonctionnement : Sniffer, Packet Logger et NIDS.
2.3.1. Utilisation de snort en mode Sniffer
Il s'agit d'couter le rseau. Plusieurs formats sont alors possibles :
la commande verbose affiche les en-ttes TCP/IP, l'interface connecte Internet est automatiquement dtecte et scanne :
Voici le rsultat de cette commande
# tar -zxvf libpcap0.8.1a.tar.gz # cd libpcap-0.4 #./configure # make # make install
# tar -zxvf snort-2.1.3.tar.gz #./configure # make # make install
# snort v
PFA
52
Figure 16 Rsultat danalyse du trafic par snort
La commande verbose dump second layer info, affiche les en-ttes IP et les en-ttes TCP/UDP/ICMP:
Voici le rsultat de cette commande
# snort -vde
PFA
53
Figure 17 : Snort en mode snifer
Dans le cas o on a plusieurs interfaces rseau une doit tre indique :
2.3.2. Utilisation de Snort en mode packet logger
Ce mode est similaire au prcdent, mais les logs ne s'affiche plus l'cran; elles
s'inscrivent directement dans un fichier de log. Le rpertoire de log de snort tant
/var/log/snort/.
Pour executer ce mode la commande suivante doit tre tappe puis valide
Dans ce mode existe dautres options telles que :
On peut spcifier de loger seulement pour une classe d'adresses :
On peut spcifier le format denregistrement, dans ce cas binaire :
2.3.3. Utilisation de Snort en nids :
Le mode le plus intressant est celui-ci. Snort utilise pour cela des rgles pour dtecter
les intrusions. Il existe aujourd'hui environ 1500 rgles diffrentes, dont chacune spcifie un
type dattaque particulier. Nous pouvons galement ajouter des rgles qui empchent un
certain type dattaque puis nous lajoute au fichier o existent les rgles.
Certainement comme pour nimporte quel serveur Snort doit subir certaines
modifications dans son fichier de configuration(/etc/snort/snort.conf ) parmi les quelles nous
citons :
Mettre jour la classe d'adresse du rseau, comme suite car par dfaut c'est any
# snort -dvi eth0
# snort -de -l /var/log/snort
# snort -de -l /var/log/snort -h 172.24.0.0/24
#snort -l /var/log/snort -b
PFA
54
Indiquer le rpertoire o sont disposs les rgles, dans notre cas
Rediriger les logs dans la base de