Vous êtes sur la page 1sur 31

La scurit informatique

Projet de :

LABHAIRI MEHDI &YOUNESBOUIRANE

Introduction
La scurit informatique, un domaine prometteur encore en plein essor dans le monde informatique. Notre projet porte sur les firewall. Il nous a t attribu dans le cadre de la politique damlioration des connaissances des tudiants en fin de cycle. En effet chaque anne les tudiants en fin de cycle (deuxime anne) doivent en troite collaboration avec le corps professoral choisir un projet quil dvelopperont. Ainsi nous avons eu comme projet la scurit et les firewall. Par ce projet nous avions pour but dacqurir un maximum de connaissance thorique et pratique sur la scurit informatique en gnral et les firewalls en particulier .lcole suprieure de technologie disposant dun architecture rseaux avec un certains nombre de matriel, nous avons trouv plus intressant de nous baser sur cette architecture rseaux. Pour le bon droulement de notre projet nous avons dcid depuis le dbut du temps que nous utiliserons pour laborer ce travail qui nai point chose facile si et qui demande que nous mnagions nos efforts.

A.
1.

Aspects gnraux de la scurit


Les attaques rseaux Avec lavnement dInternet et des moyens de communication modernes, une nouvelle forme dinscurit est apparue, qui sappuie sur lutilisation de code informatique pour perturber ou pntrer les systmes informatiques. Les attaques touchent gnralement les trois composantes suivantes dun systme : la couche rseau, en charge de connecter le systme au rseau, le systme dexploitation. En charge doffrir un noyau de fonction au systme, et la couche application, en charge doffrir des services spcifiques. Toutes ces composantes dun systme constituent autant de vecteurs de pntration pour des attaques de toute nature (les attaques visant les systmes dexploitation et les applications ne sont pas dtailles). Aujourdhui, ces attaques sont si nombreuses quil serait illusoire de prtendre es dcrire toutes. Il est cependant important de dresser une typologie des attaques rseaux base des faiblesses de scurit afin de mieux les cerner en majorit. Comme tout effet a une cause, les attaques rseau sappuient sur divers types de faiblesses, que lon peut classifier par catgorie : o Faiblesses des protocoles. o Faiblesses dauthentification. o Faiblesses dimplmentation ou bogues. o Mauvaises configurations. En sappuient sur ces faiblesses, le pirate peut lancer un ensemble dattaques afin de rcolter des informations importantes mais aussi de pntrer un systme rseau.

2.

Conduire une politique de scurit rseau Aprs avoir prsent, la partie prcdente, les menaces qui psent sur le rseau dentreprise, nous dcrivons dans cette partie les tapes ncessaires pour dfinir une politique de scurit rseau et laborer des stratgies de scurit autour de cette politique. 2.1. Dfinir une politique de scurit rseau Objectifs dune politique de scurit rseau La dfinition dune politique de scurit nest pas un exercice de style mais une dmarche de toute entreprise visant protger son personnel et ses biens dventuels incidents de scurit dommageables pour son activit. La dfinition dune politique de scurit rseau fait intgralement partie de la dmarche scuritaire de lentreprise, elle stend de nombreux domaines, dont les suivants : o Audit des lments physiques, techniques et logiques constituant le systme dinformation de lentreprise. o Sensibilisation des responsables de lentreprise et du personnel aux incidents de scurit et aux risques associs. o Formation du personnel utilisant les moyens informatiques du systme dinformation. o Structuration et protection des locaux abritant les systmes informatiques et les quipements de tlcommunications, incluant le rseau et les matriels. o Gestion du systme dinformation de lentreprise lui permettant de suivre et dappliquer les recommandations scurit des procdures oprationnelles. o Dfinition du cadre juridique et rglementaire de lentreprise face la politique de scurit et actes de malveillance. o Classification des informations de lentreprise selon diffrents niveaux de confidentialit et de criticit. o Les objectifs dune politique de scurit rseau, qui, rappelons-le, viennent en complment de la politique gnrale de scurit de lentreprise, sont identiques et utilisent les mmes concepts, notamment les suivants : Dfinir une politique de scurit rseau Une politique de scurit rseau doit respecter un ensemble de principes gnriques : Identification : Information permettant dindiquer qui vous prtendez tre. Une identification lmentaire est le nom dutilisateur que lon saisit dans un systme informatique. Une identification plus volue peut tre le relev dempreinte digitale, lanalyse fiscale, rtinienne, etc.

Authentification : Information permettant de valider lidentit pour vrifier que vous tes celui que vous prtendez tre. Une authentification lmentaire est le mot de passe que vous entrez dans le systme informatique. Une authentification forte combine une chose que vous possdez et une chose que vous connaissez, (numro de cane bancaire et code personnel, par exemple). Autorisation : Information permettant de dterminer quelles seront les ressources de lentreprise auxquelles lutilisateur identifi et autoris aura accs ainsi que les actions autoriss sur ces ressources. Cela couvre toutes les ressources de lentreprise. Confidentialit : Ensemble des mcanismes permettant quune communication de donnes reste prive entre un metteur et un destinataire. La cryptographie ou le chiffrement des donnes est la seule solution fiable pour assurer la confidentialit des donnes. Intgrit : Ensemble des mcanismes garantissant quune information na pas t modifie. Disponibilit : Ensemble des mcanismes garantissant que les ressources de lentreprise sont accessibles, que ces derniers concernent larchitecture rseau, la bande passante, le plan de sauvegarde, etc. Nom rpudiation : Mcanisme permettant de garantir quun message a bien t envoy par un metteur et reu par un destinataire. Tracabilit : Ensemble des mcanismes permettant de retrouver les oprations ralises sur les ressources de lentreprise. Cela suppose que tout vnement applicatif soit archiv pour investigation ultrieure.

2.1.3. Les diffrents types de politique de scurit Une politique de scurit peut tre trop permissive ou au contraire trop restrictive. Dans le premier cas, elle risque de prsenter une faiblesse de scurit par son cot laxiste. Dans le second cas, elle peut devenir inapplicable du de rgles trop strictes. Comme dans de nombreux domaines, seule lexprience guide lcriture dune politique de scurit ainsi que ces rgles. Dans tous les cas, plus les ressources sont critiques, plus les rgles doivent tre strictes. Quelle que soit la politique de scurit dfini, il faut savoir grer les exceptions aux rgles de scurit. Ces exceptions sont connues, limites, documentes et sous contrle. 2.2 Stratgie de scurit rseau

Aprs avoir dfini les objectifs et le contenu dune politique de scurit rseau la section prcdente, nous dtaillons dans cette partie les stratgie de scurit mettre en ouvre autour dune telle politique afin de rpondre de la manire la plus adapte aux objectifs de scurit. Ltablissement de stratgies de scurit exige de prendre en compte lhistorique de lentreprise. Ltendue de son rseau, le nombre demploys, la sous-traitance avec des tierces parties, le nombre de serveurs, lorganisation du rseau, etc. Dune manire gnrale une bonne stratgie de scurit vise dfinir et mettre en uvre des mcanismes de scurit, des procdures de rponse aux incidents de scurit et des contrles et audits de scurit.

-Mthodologie pour laborer une stratgie de scurit rseau Diverses mthodes permettent dlaborer des stratgies de scurit. Stratgie de scurit Prdiction des agressions potentielles et analyse de risque Pour chaque type de menace (agresseur intentionnel, erreur, etc.) Pour chaque mthode dattaque (virus, etc.) Stratgie proactive Prdiction des dommages possibles Dtermination du degr de vulnrabilit Minimisation de ce degr de vulnrabilit Mise en uvre et dveloppement des Stratgies et contrle de scurit Elaboration des plans de contingence Stratgie ractive Analyse des dommages

Dtermination de leur origine Rparation des dommages Mise en uvre et dveloppement des Stratgies et contrle de scurit Mise en uvre du plan de contingence Analyse des rsultats et excution des simulations Analyse de lefficacit des stratgies Modification des stratgies pour amlioration

-Stratgie des goulets dtranglement

Rseau Internet

Rseau Intranet
Rseau bureautiq ue Rseau bureautiq ue Rseau de producti on

Les goulets dtranglement Principe Des contrles dauthentification sont mis en place afin dauthentifier les accs aux primtres de scurit.

Stratgies de sparation des pouvoirs Principe Des entits spares sont cres, chacune responsable de zones de scurit spcifiques du rseau dentreprise. B. Les FIREWALL : une technique de parade

1) Qu'est-ce qu'un pare-feu (Firewall)? Un pare-feu (firewall en anglais), 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, en analysant les informations contenues dans les couches 3, 4 et 7 du modle OSI. Il s'agit donc d'une machine (machine spcifique dans le cas d'un firewall matriel ou d'un ordinateur scuris hbergeant une application particulire de pare-feu) comportant au minimum deux interfaces rseau :

une interface pour le rseau protger (rseau interne) une interface pour le rseau externe

Le pare-feu reprsente ainsi gnralement dans les entreprises un dispositif l'entre du rseau qui permet de protger le rseau interne d'ventuelles intrusions en provenance des rseaux externes (souvent Internet). Les terminologies suivantes sont parfois galement utilises :

garde-barrire (gate-keeper) porte coupe-feu antserveur cluse Lorsque certaines machines du rseau interne ont besoin d'tre accessible de l'extrieur

(comme c'est le cas par exemple pour un serveur web, un serveur de messagerie, un serveur FTP public, ...) il est souvent ncessaire de crer une nouvelle interface vers un rseau part, accessible aussi bien du rseau interne que de l'extrieur, sans pour autant risquer de compromettre la scurit de l'entreprise. On parle ainsi de zone dmilitaris (souvent note

DMZ pour DeMilitarized Zone) pour dsigner cette zone isole hbergeant des applications mises disposition du public.

Dans le cas o la zone protge se limite l'ordinateur sur lequel le firewall est install on parle de firewall personnel.

2) - Le fonctionnement d'un systme Firewall


Un systme Firewall contient un ensemble de rgles prdfinies permettant :

Soit d'autoriser uniquement les communications ayant t explicitement autorises : "Tout ce qui n'est pas explicitement autoris est interdit".

Soit d'empcher les changes qui ont t explicitement interdits

Le choix de l'une ou l'autre de ces mthodes dpend de la politique de scurit adopte par l'entit dsirant mettre en oeuvre un filtrage des communications. La premire mthode est sans

nul doute la plus sre, mais elle impose toutefois une dfinition prcise et contraignante des besoins en terme de communication.

3) Le filtrage de paquets
Le fonctionnement des systmes pare-feu, historiquement assur par les routeurs, est bas sur le principe du filtrage de paquets IP, c'est--dire sur l'analyse des en-ttes des paquets IP (aussi appels datagrammes) changs entre deux machines. En effet les machines d'un rseau reli Internet sont repres par une adresse appele adresse IP. Ainsi, lorsqu'une machine de l'extrieur se connecte une machine du rseau local, et viceversa, les paquets de donnes passant par le firewall contiennent les en-ttes suivants, qui sont analyss par le firewall:

L'adresse IP de la machine mettrice L'adresse IP de la machine rceptrice Le type de paquet (TCP, UDP, ...) Le numro de port (rappel: un port est un numro associ un service ou une application rseau)

Les adresses IP contenues dans les paquets permettent d'identifier la machine mettrice et la machine cible, tandis que le type de paquet et le numro de port donnent une indication sur le type de service utilis. Lorsque le filtrage est bas sur les adresses IP on parle de filtrage par adresse (adress filtering), tandis que le terme de filtrage par protocole (protocol filtering) est utilis lorsque le type de paquets et le port sont analyss. Certains ports sont associs des service courants (les ports 25 et 110 sont gnralement associs au courrier lectronique, et le port 80 au Web) et ne sont gnralement pas bloqus. Toutefois, il est recommand de bloquer tous les ports qui ne sont pas indispensables (selon la politique de scurit retenue). Le port 23 par exemple est critique car il correspond au service Telnet qui permet d'muler un accs par terminal une machine du rseau de manire pouvoir excuter des commandes saisies au clavier distance...

4) Le filtrage dynamique
Le fonctionnement dcrit ci-dessus ne s'attache qu' examiner les paquets IP, ce qui correspond au niveau 3 du modle OSI. Or, de nombreux services (le FTP par exemple) initient une connexion sur un port statique, mais ouvrent dynamiquement (c'est--dire de manire alatoire) un port afin d'tablir une session entre la machine faisant office de serveur et la machine cliente. Ainsi, il est impossible de prvoir les ports laisser passer ou interdire. Pour y remdier, l'entreprise Check point a brevet un systme de filtrage dynamique de paquets (le terme anglo-saxon exact tant stateful inspection) bas sur l'inspection des couches 3 et 4 du modle OSI, permettant d'effectuer un suivi des transactions entre le client et le serveur et donc d'assurer la bonne circulation des donnes de la session en cours. Si le filtrage dynamique est plus performant que le filtrage de paquets basique, il ne protge pas pour autant de failles applicatives, c'est--dire les failles lies aux logiciels, reprsentant la part la plus importante des risques en terme de scurit.

5) - Le filtrage applicatif
Le filtrage applicatif permet, comme son nom l'indique, de filtrer les communications application par application, ce qui signifie qu'il travaille au niveau de la couche 7 du modle OSI. Le filtrage applicatif suppose donc une connaissance de l'application, et notamment de la manire de laquelle elle structure les donnes changes. Un firewall effectuant un filtrage applicatif est appel passerelle applicative car il permet de relayer des informations entre deux rseaux en effectuant un filtrage fin au niveau du contenu des paquets changs. Il s'agit donc d'un dispositif performant assurant une bonne protection du rseau, pour peu qu'il soit correctement administr. En contrepartie une analyse fine des donnes applicatives requiert une grande puissance de calcul et se traduit donc souvent par un ralentissement des communications.

C) Outil du travail : IPTables


1) Quest-ce que cest ?
Cest linterface de configuration de Netfilter. Netfilter c'est l'ensemble des fonctions internes au noyau (version 2.4 et suprieur) qui ralisent les oprations de firewalling

2) Que pouvons-nous faire avec iptables?


* monter un firewall filtrant bas sur les paquets mais aussi sur le statut des connexions engendrs par les paquets(le suivi de connexion) * utiliser NAT(Network Address Translation) et le masquerading afin de partager un accs Internet plusieurs machines * utiliser NAT pour faire du proxy transparent (vite d'avoir paramtrer le proxy sur les Clients/navigateurs web) * mettre en place (notamment en permettant le marquage des paquets via la table mangle) la possibilit d'utiliser iproute2 dans le but d'obtenir un routeur sophistiqu permettant le QoS (Quality of Service, privilgi certains services, mettre en place des limites d'utilisation de bande passante sur un utilisateur, sur un groupe) * manipuler des paquets pour par exemple altr le champ TOS(2) d'un datagramme IP

3) Cest quoi une chane ?


Nous allons donc nous positionner comme tant sur la machine qui fera office de firewall/routeur pour tenter de la scuriser. Lorsqu'un paquet arrive, il va tre orient (selon un certain nombre de paramtres) dans l'une des diffrentes chanes disponibles.

Ainsi que nous le montres le schma un paquet rentrera toujours dans la machine via la chane PREROUTING et sortira toujours de la machine via la chane POSTROUTING(chanes servant notamment certaines oprations de routage entre les 2 rseaux) raccords par notre routeur. Les chanes INPUT et OUTPUT quand elle serviront respectivement placer des rgles pour les paquets destins la machine et ceux mis par la machine, pour faire simple : si un paquet est destin ma machine, il arrivera dans la chane INPUT . Par exemple si je demande la visualisation d'une page sur le web depuis la machine, j'mets une requte qui sortira par la chane OUTPUT et la rponse arrivera sur ma machine par la chane INPUT . La nuance est dans le "destin", savoir que l'on peut considrer qu'un paquet destination du LAN sera, au moins certain(s) moment(s) et certain(s) niveau(x) du modle OSI, destin la machine faisant office de routeur mais sera lui orient dans la chane FORWARD et non pas dans la chane INPUT. Au moment o le paquet rentre dans la chane, les rgles correspondant cette chane sont appliques dans l'ordre dans lequel elles sont stockes.

4) La table de filtrage : Filter


C'est la table qui va permettre de filtrer tous les paquets qui entrent et sortent de notre machine. Il n'y a ici aucune modification de ces paquets, ils seront compars des critres dfinis dans la table Filter. Dans notre cas, il peut se passer deux choses diffrentes: Un paquet qui entre est destin un processus de l'hte (serveur HTTP, FTP...). Un paquet qui entre est destin un autre rseau, c'est alors une fonction de routage.

Un paquet entre dans notre machine. Peu importe par quelle interface il entre, il peut venir aussi bien du rseau local que de l'Internet. Il passe d'abord par la fonction de dcision de routage. C'est elle qui va dterminer si le paquet est destin un processus local de l'hte ou un hte sur un autre rseau.

Si le paquet est destin l'hte local:


o o

Il traverse la chane INPUT S'il n'est pas rejet, il est transmis au processus impliqu. Ce processus va donc le traiter et ventuellement mettre un nouveau paquet en rponse.

o o

Ce nouveau paquet traverse la chane OUTPUT S'il n'est pas rejet, il va vers la sortie. Il traverse la chane FORWARD. S'il n'est pas rejet, il poursuit alors sa route.

Si le paquet est destin un hte d'un autre rseau:


o o

NB : SEULS les paquets destins un processus local traversent la chane INPUT. SEULS les paquets issus d'un processus local traversent la chane OUTPUT. SEULS les paquets destins au routage traversent la chane FORWARD. Pour faire cela on doit ajouter des rgles de filtrage dans la table filter, on doit dabord spcifi la table filter par t FILTER puis , la chane sur laquelle on va filtrer par A nom chane et enfin dautre option pour la slection des paquets et dautres pour les oprations appliquer.

Quelques Exemples

Voici une suite de quelques exemples pouvant tre utiles. Ils seront accompagns d'une explication sur leurs rles.
> iptables -t filter -A INPUT --source 207.46.134.190 --jump DROP

Cet exemple permet de jeter tout ce qui vient de l'adresse 207.46.134.190. La spcification de la table filter est facultative car par dfaut c'est celle qui est utilise. On pourrait abrger cette commande en la suivante :
> iptables -A INPUT -s 207.46.134.190 -j DROP

Qui produit exactement le mme rsultat. L'utilisation de -A ajoute cette rgle la fin de la chane. Donc si une prcdente rgle laissait passer des paquets, ils n'arriveront pas jusqu' celle-ci. Pour construire un ensemble de rgles de filtrage, on commencera gnralement par supprimer toutes celles cres prcdemment.

> iptables -t filter -F

Cette commande vide intgralement la table filter de toutes les rgles qui auraient prcdemment t dfinies. Ensuite on indiquera plutt en premier tout ce que l'on accepte, pour ensuite refuser tout le reste. On commencera donc par des rgles ressemblant la suivante :
> iptables -t filter -A INPUT --protocol tcp --destination-port 80 --jump ACCEPT

Cette rgle permet de laisser passer tout le trafic TCP entrant sur le port 80. Ce sera utile par exemple si un serveur web (par dfaut sur le port 80) est prsent sur la machine. Mais il faut ensuite que les rponses envoyes puissent l'tre. Dans ce cas, la rgle prcdente autorise des personnes extrieures demander une page. Pour que le serveur puisse la transmettre, il faudra une rgle comme suit :
> iptables -t filter -A OUTPUT --protocol tcp --source-port 80 --jump ACCEPT

Pour laisser les utilisateurs internes accder aux sites Internet, on peut dfinir cette rgle :
> iptables -t filter -A OUTPUT --protocol tcp --destination-port 80 --jump ACCEPT

Celle-ci permet donc de laisser passer les paquets destination du port 80 d'une machine extrieure. Et pour que les utilisateurs puissent recevoir les pages envoyes par ces machines, il faudra ajouter :
> iptables -t filter -A INPUT --protocol tcp --source-port 80 --jump ACCEPT

Pour ne pas confondre ce que font les quatre rgles prcdentes, voici un rsum de ce qu'elles font :

La premire laisse entrer ce qui est pour le port 80 de la machine.

La deuxime laisse sortir les paquets par le port 80 de la machine. La troisime laisse sortir ce qui est pour le port 80 d'une autre machine. La quatrime laisse entre ce qui vient du port 80 d'une autre machine.

Dans le cas o ce sont les seules choses permises sur cette machine, on terminera par indiquer que tout le reste doit tre ignor. Arriveront ce point seulement les paquets qui n'auront pas rpondu aux critres prcdents. On peut donc alors les jeter (avec la cible DROP). Une rgle toute simple pourrait tre la suivante :
> iptables -t filter -A INPUT --jump DROP > iptables -t filter -A OUTPUT --jump DROP

On a aussi REJECT qui peut tre utilis la place de DROP lorsquon veut envoyer un message lmetteur pour le prvenir du refus de ces paquets.

5) La Table de translation dadresse : NAT


La table NAT (Network Address Translation) est la table qui va nous permettre de faire la translation des adresses IP des paquets, aussi de faire la translation des ports ou un mlange des deux.

Le principe :
Dans un datagramme, en plus des donnes, on trouve galement quelques informations concernant le protocole utilis et des identificateurs de l'metteur et du destinataire du datagramme. Ce sont ces identificateurs qui nous intressent: L'adresse IP du destinataire. Le port du service utilis sur le destinataire. Ces informations constituent une "socket"(port), elles sont indispensables pour arriver joindre le bon service sur le bon serveur, par exemple le service HTTP du serveur www.lr-ensa.ma. L'adresse IP de l'metteur. Le port de rponse. Ces informations constituent une autre "socket", elles sont indispensables pour que l'metteur d'un paquet puisse esprer recevoir une rponse.

Avec les fonctions NATage, lorsqu'un paquet transite par notre passerelle, nous allons pouvoir manipuler ces sockets comme on veut. Par exemple, nous pourrons changer l'adresse de l'metteur ou le port de l'metteur ou les deux. Nous pouvons aussi changer l'adresse du destinataire, ou le port du destinataire, ou les deux.

A quoi sert la NAT ?


La NAT nous permet de faire une multitude de choses dont les plus intressantes: Le masquage d'adresse C'est une fonction fondamentale lorsque l'on souhaite connecter un rseau priv l'Internet lorsque l'on ne dispose que d'une seule IP valide sur le Net, mme si celle-ci est dynamique, ce qui est le cas qui nous intresse le plus (Les clients sont sur le rseau priv et les serveurs sont sur le Net). C'est une forme particulire de SNAT (Source NAT) C'est ce que sont capables de faire tous les routeurs SOHO (Small Office, Home Office) qui permettent de relier un petit rseau local l'Internet, lorsque l'on ne dispose que d'un accs RTC, NUMERIS, Cble, ADSL... Un simple PC quip d'un Linux 2.4.x permet de le faire aussi bien sinon mieux. Le NAT de destination Ici, c'est pour rsoudre les problmes qui apparaissent dans l'autre sens. Les clients sont sur le Net et les serveurs sont sur le rseau priv. Imaginons que nous n'ayons qu'une seule IP valide sur le Net et que nous voulions tout de mme offrir des services tels que HTTP, FTP, SMTP, POP et peut-tre d'autres encore. Comment faire ? La plus simple des solutions consiste placer tous ces serveurs sur la mme machine, celle qui a la seule adresse IP valide sur le Net laquelle j'ai droit." Mais comment assurer un minimum de scurit sur une machine ouverte de tous les cts ? Comment faire pour assurer une disponibilit suffisante chaque service dans les montes en charge ? Cette solution ne parait finalement pas trs acceptable, mais comment faire autrement? Tout simplement avec NAT. La machine frontale sera un simple routeur NAT. Ct Internet, elle possde la seule IP valide disponible, elle va faire croire que tous les services sont dessus, mais en ralit, lorsqu'elle va recevoir un paquet dont le socket de destination est

62.161.96.47:80, elle va remplacer ce socket par 192.168.0.1:80 et router le paquet vers le serveur HTTP. Lorsque la rponse du serveur va lui parvenir, elle remplacera le socket de l'metteur (192.168.0.1:80) par 62.161.96.47:80 et enverra a sur le Net.

Bien entendu, le routeur NAT est capable de faire a pour chacun des autres serveurs: Ce qui lui arrivera sur les ports 20 et 21 sera redirig sur le serveur FTP (en ralit, le cas du FTP est bien plus difficile rsoudre que a. Ce qui lui arrivera sur le port 25 sera redirig sur le serveur SMTP/POP3 service SMTP Ce qui lui arrivera sur le port 110 sera redirig sur le serveur SMTP/POP3 service POP3.

Le fonctionnement de NAT Et comment a marche ?

La table NAT est organise comme lindique le schma ci-dessus: La chane PREROUTING va excuter un traitement sur les "sockets" avant les dcisions de routage. Nous nous en servirons pour faire du DNAT (Destination NAT), autrement dit, pour modifier la "socket" du destinataire. La chane POSTROUTING intervient la sortie du routeur. Elle servira faire du SNAT (Source NAT) dont par exemple, le masquage d'adresse. La chane OUTPUT, quant elle, permet de modifier le socket de destination d'un paquet issu d'un processus local. L'utilit de cette chane n'est pas vidente, dans la mesure

o, normalement, les paquets sortant d'un processus local devraient aussi passer par POSTROUTING . La seule possibilit supplmentaire est de pouvoir rediriger les paquets qui sortent d'un processus local destination d'une cible extrieure, vers un autre processus local (127.0.0.1). Les possibilits offertes par le NAT sont quasiment infinies. Nous avons vu les plus frquentes : Masquage d'adresse, pour permettre tout un rseau priv d'accder au Net lorsque l'on ne dispose que d'une seule adresse IP valide sur le Net, redirection d'un service serveur adress sur la passerelle vers un serveur situ dans le rseau priv, a peut tre utile pour les joueurs en rseau, mais aussi pour des applications plus professionnelles. Pour que tout a fonctionne correctement, le systme s'appuie sur le suivi de connexion. Nous pouvons donc nous attendre trouver des modules spcialiss pour certains protocoles, dont le FTP. Ainsi, le module ip_nat_ftp sera ncessaire si vous voulez travailler proprement en FTP.

Quelques Exemples

Le DNAT ou NAT Destination On substitue l'adresse de destination des paquets provenant du rseau public, une adresse du rseau local priv. Dans l'exemple, les paquets destination de la machine 195.x sont redirigs vers la machine 172.y. On ne tient pas compte du port. Dans cet exemple nous allons dabord effacer toutes les regles (-F) de la table part defaut (Filter) ensuite on accepte tous les paquets . Puis on efface(-F) aussi toutes les regle de la table NAT (-t nat) pour les paquets qui ne sont pas encore routs . Enfin on dfini une nouvelle regle dans laquelle les paquets destination de la machine 195.115.19.35 sont redirigs vers la machine 172.16.0.1. iptables -F INPUT ; iptables -P INPUT ACCEPT iptables -F OUTPUT ; iptables -P OUTPUT ACCEPT

iptables -F FORWARD ; iptables -P FORWARD ACCEPT iptables -t nat -F PREROUTING iptables -t nat -A PREROUTING -d
-j DNAT --to-destination 195.115.19.35/32 \ 172.16.0.1/32

Le SNAT ou NAT Source Le SNAT consiste substituer une adresse source dans un paquet sortant son adresse source d'origine. On substitue ici, aux requtes provenant du rseau 192.168.0.0/24, une des 10 adresses publiques. Dans cet exemples iptables -t nat -F POSTROUTING iptables -t nat -A POSTROUTING -s 192.168.0.0/24 \
-j SNAT --to-source 195.115.90.1-195.115.90.10

L'IP Masquerade Dans ce cas, les adresses prives, utilisent toutes la mme adresse publique. C'est le procd qui est utilis avec ipchains. Il s'agit en fait de translation de port avec ipchains ou de SNAT (Nat Source) avec iptables. iptables -t nat -F POSTROUTING iptables -t nat -A POSTROUTING -s 10.10.10.0/8 \
-j SNAT --to-source 139.63.83.120

Une autre option consiste utiliser l'option "MASQUERADE" iptables -t nat -F POSTROUTING iptables -t nat -A POSTROUTING -s 10.10.10.0/8 -j MASQUERADE

D)

Analyse de larchitecture rseaux de lESTO 1) Etude de lexistant

Lcole suprieure de technologie dispose dj dune architecture rseaux avec un dispositif de scurit bas sur le firewall. Larchitecture prcdente tait compose de quatre sous rseaux dont trois pour les salles de TP de chaque dpartement et un pour ladministration et les enseignants. En plus de tout cela on avait une DMZ (zone dmilitarise) avec des adresses relles. Larchitecture actuelle , version volue de la prcdente, fait jumeler toute les salles de TP des tudiants donnant ainsi un seul sous rseaux tudiant au lieu de trois .Puis nous avons toujours le sous rseaux de ladministration et des enseignants . Et enfin la DMZ. Ce qui nous donne le schma suivant :

2)Critique de lexistant Nous avons ici deux sous rseaux, celui des tudiants et celui des enseignants et ladministration, qui sont connects sur Internet indpendamment lun de lautre par deux passerelles diffrentes. Ces sous rseaux ne communiquent pas entre elles. On ne peut pinguer une machine du rseaux des tudiants partir du rseaux des enseignant et inversement. Do nous constatons dj un problme. Deux sous rseaux dun mme rseau qui ne communique pas. Encore pour accder au serveur dans la DMZ on est oblig de passer par le net. Aussi le fait dutiliser deux passerelles diffrentes nest pas thoriquement un problme mais pourrait bien tre mieux autrement, aussi on constate quil y a plusieurs adresses relle utiliser dans cette architecture.

E)Travail effectu 1) Buts escompts En vu de trouver une rsolution adquate aux diffrents problmes trouvs dans larchitecture actuelle nous avons labor une nouvelle architecture dans le but de : - permettre la possibilit de communication entre les diffrents sous-rsaux - une bonne gestion du matriel et des adresses relles - grer les priorits entre les diffrents sous rseaux en dterminant les droits daccs de chaque sous rseaux. - Eviter les pntrations de lextrieur( Internet) notre rseau tout en gardant laccs Internet. 2) Schma de la nouvelle architecture

3)descriptions du schma
on a quatre sous rseaux - DMZ : contient les serveurs : WEB,FTP,MAIL (172.20.0.0/16) - DIR : regroupe les machines de la direction(172.16.0.0/16) - CHR : regroupe les machines des enseignants(172.17.0.0/16) - ENS : regroupes les machines des salles de TP(172.18.0.0/16) et une seule passerelle (192.204.231.183)

4)Dfinition des droits daccs : -toutes les machines ont le droit daccder lINTERNET - Les machines des sous-rseaux DIR,CHR,ENS ont le droit daccder DMZ - Les machines de DIR ont le droit daccder aux CHR et ENS, mais laccs dans le sens inverse est interdit. - Les machines de CHR ont le droit daccder ENS, mais laccs dans le sens inverse est interdit. - Laccs au rseau interne de lEST depuis lextrieur est interdit sauf DMZ.

5) Script de ralisation IPTABLES=/sbin/iptables # les variables qui rendra notre fichier de configuration paramtrable EXTIF="eth0" INTIF1="eth1" INTIF2="eth2" INTIF3="eth3" INTIF4="eth4" DIR="172.16.0.0/16" RCH="172.17.0.0/16" ENS="172.18.0.0/16" DMZ="172.20.0.0/16" SER_MAIL="172.20.0.3" SER_FTP="172.20.0.2" SER_WEB="172.20.0.1" NAT="194.204.231.185" echo " External Interface: $EXTIF" echo " Internal Interface1 DIR: $INTIF1" echo " Internal Interface2 RCH : $INTIF2" echo " Internal Interface3 ENS: $INTIF3" echo " Internal Interface4 DMZ: $INTIF4"

#activation du forwarding qui joue le rle du routage echo "1" > /proc/sys/net/ipv4/ip_forward #bloquer tout le trafic dans notre rseau $IPTABLES -P INPUT DROP $IPTABLES -F INPUT $IPTABLES -P OUTPUT DROP $IPTABLES -F OUTPUT $IPTABLES -P FORWARD DROP $IPTABLES -F FORWARD $IPTABLES -t nat -F # l'accs l'Internet $IPTABLES -A FORWARD -s $DIR -i$INTIF1 -o $EXTIF ACCEPT $IPTABLES -A FORWARD -s $RCH -i$INTIF2 -o $EXTIF ACCEPT $IPTABLES -A FORWARD -s $ENS -i$INTIF3 -o $EXTIF ACCEPT

$IPTABLES -A FORWARD -s $DMZ -i$INTIF4 -o $EXTIF ACCEPT # Enseignants ont l'accs aux poste des tudiants $IPTABLES -A FORWARD -s $RCH -i$INTIF2 -o $INTIF3 ACCEPT $IPTABLES -A FORWARD -s $ENS -i$INTIF3 -o $INTIF2 -j ACCEPT -m state --state ESTABLISHED,RELATED # Direction a le droit d'accs aux postes des tudiants et aux postes des enseignants $IPTABLES -A FORWARD -s $DIR -i$INTIF1-o $INTIF2 ACCEPT $IPTABLES -A FORWARD -s $DIR -i$INTIF1-o $INTIF3 ACCEPT $IPTABLES -A FORWARD -s $ENS -i$INTIF3 -o $INTIF1 -j ACCEPT -m state --state ESTABLISHED,RELATED $IPTABLES -A FORWARD -s $RCH-i$INTIF2 -o $INTIF1 -j ACCEPT -m state --state ESTABLISHED,RELATED

# Accs DMZ localement $IPTABLES -A FORWARD -s $DIR -i$INTIF1 -o $INTIF4 -j ACCEPT $IPTABLES -A FORWARD -s $RCH -i$INTIF2 -o $INTIF4 -j ACCEPT $IPTABLES -A FORWARD -s $ENS -i$INTIF3 -o $INTIF4 -j ACCEPT $IPTABLES -A FORWARD -s $DMZ -i$INTIF4 -o $INTIF1 -j ACCEPT -m state --state ESTABLISHED,RELATED $IPTABLES -A FORWARD -s $DMZ -i$INTIF4 -o $INTIF2 -j ACCEPT -m state --state ESTABLISHED,RELATED $IPTABLES -A FORWARD -s $DMZ -i$INTIF4 -o $INTIF3 -j ACCEPT -m state --state ESTABLISHED,RELATED # translation des adresses Snat $IPTABLES -A POSTROUTING -t nat -o EXTIF -j SNAT --to $NAT # accs au serveur web ftp mail depuis un poste local

$IPTABLES -t nat -A PREROUTING -d $NAT -p tcp --dport 80 -j DNAT --to / $SER_WEB:80 $IPTABLES -t nat -A PREROUTING -d $NAT -p tcp --dport 21 -j DNAT --to / $SER_FTP:21 $IPTABLES -t nat -A PREROUTING -d $NAT -p tcp --dport 20 -j DNAT --to / $SER_FTP:20 $IPTABLES -t nat -A PREROUTING -d $NAT -p tcp --dport 25 -j DNAT --to / $SER_FTP:25 $IPTABLES -t nat -A PREROUTING -d $NAT -p tcp --dport 110 -j DNAT --to /$SER_FTP:110

# redirection des connections HTTP ,FTP,SMPT,POP... # on charge le module ip_contrack qui suit les connections ftp modprobe ip_conntrack_ftp $IPTABLES -t nat -A PREROUTING -d $NAT -p tcp --dport 80 -j DNAT --/to-destination $SER_WEB:80 $IPTABLES -t nat -A PREROUTING -d $NAT -p tcp --dport 20 -j DNAT --/to-destination $SER_FTP:20 $IPTABLES -t nat -A PREROUTING -d $NAT -p tcp --dport 21 -j DNAT --/to-destination $SER_FTP:21 $IPTABLES -t nat -A PREROUTING -d $NAT -p tcp --dport 25 -j DNAT --/to-destination $SER_MAIL:25 $IPTABLES -t nat -A PREROUTING -d $NAT -p tcp --dport 110 -j DNAT -/-to-destination $SER_MAIL:110 # accepter les connections aux serveurs depuis l'Internet

$IPTABLES -A FORWARD -i $EXTIF -o $INTIF4 -m multiport --dport / 80,21,20,25,110 -j ACCEPT -m state --state ESTABLISHED,RELATED,NEW $IPTABLES -A FORWARD -o $EXTIF -i $INTIF4 -j ACCEPT -m state --state /ESTABLISHED,RELATED,NEW