EXPOSE : Traitements Intermédiaires : NAT, Proxy, Firewall
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
Juliette André Renaud Pelloux EXPOSE : Traitements Intermédiaires : NAT, Proxy, Firewall Octobre 2002 Le document présenté ci-dessous reprend tout le contenu du site Web que nous avons réalisé. Il traite des mécanismes mis en place à l'intermédiaire de deux réseaux et en particulier de la translation d'adresse, des proxys et des firewalls. Le document qui suit, tout comme le site Web réalisé traitent de la philosophie appliquée aux mécanismes dont nous parlons. Volontairement, nous ne parlerons pas de la fa çon de les configurer ou de les installer, d'autres exposés réalisés à l'ENIC traitant de ces sujets plus sp écifiques. Nous avons r éalisé cet exposé dans le cadre de l'option RIO (R éseaux et Interconnexion d'odinateurs) de l'ENIC T élécom Lille 1, option qui termine notre cursus scolaire. Aucune mise en page sp écifique n'a été appliqu ée à ce document, il reprend simplement le contenu de chaque page présentée dans le site Web.
SOMMAIRE I) [Introduction] II) [Une pénurie d'adresses IP] II.1) [Adressage IPv4] II.2) [Pénurie d'adresses] II.3) [Utilisation des adresses privées] III) [NAT] III.1) [Pricipe Général] III.2) [NAT statique et dynamique] III.3) [NAT multiple] III.4) [Comparaison et Problèmes] IV) [Proxy] IV.1) [Principe de fonctionnement] IV.2) [Services ajoutés aux proxys] IV.3) [Comparaison Proxy et NAT] V) [Firewall] V.1) [Principe de fonctionnement] V.2) [Politique de sécurité] V.3) [Filtre de paquets] V.4) [Passerelles] V.5) [Architectures] V.6) [Problèmes Rencontrés] VI) [Glossaire] VII) [Références] Site réalis é par Juliette André (mailto:juliette.andre@orange.fr) Renaud Pelloux (mailto:renaud.pelloux@orange.fr) Octobre 2002
I) [Introduction] Le site Web qui va suivre a été réalisé dans le cadre de l'option RIO (Réseaux et Interconnexion d'Ordinateurs) de l'ENIC Télécom Lille 1. Il est destiné à pr ésenter les aspects techniques et pratiques relatifs aux : Firewalls, NAT et Proxy En effet, deux problèmes majeurs ont ammené les entreprises à utiliser ce type de matériel : la pénurie d'adresses IP publiques ainsi que la multiplication des attaques sur les réseaux. Une entreprise, quelle qu'elle soit, connectée à l'Internet est souvent la cible d'attaques, qui affectent son propre système ou s'installent sur son réseau pour attaquer en toute tranquilité d'autres entreprises. Les concepts de NAT et de proxy sont très liés puisqu'ils sont utilisés pour permettre à des stations ayant des adresses IP privées de communiquer avec des réseaux externes. Avec certaines configurations (NAT dynamique par exemple, filtrage sur les proxys), il est possible d'augmenter un peu le niveau de sécurité du réseau de l'entreprise. Ceci n'est en aucun cas suffisant et c'est pour cel à qu'il est pr éférable d'utiliser des matériels sp éciaux pour garantir la s écurité tels que des Pare- Feu ou Firewalls. Le site que nous vous proposons est illustré afin d'en simplifier la compréhension.
II) [Une pénurie d'adresses IP] II.1) L'adressage sur IPv4 Le modèle dominant sur Internet est le modèle TCP/IP. Dans ce modèle, les machines et les réseaux des entreprises sont identifiés par une adresse IP. Pour les machines, l'adresse est codée sur 4 octets et écrite de la forme a.b.c.d. Dans cette adresse, on trouve un dientfiant de r éseau codé sur 1 à 3 octets selon la classe de l'adresse et un identifiant de machine codé sur 3 à 1 octet. L'ICANN est chargé d'attribuer les adresses réseaux. 5 classes d'adresses, permettant de r épartir les adresses sont disponibles : A l'int érieur de ces classes, il existe des adresses réservées qui ne doivent pas être utilisées : identifiant machine tout à 1 : broadcast sur le réseau, identifiant machine tout à 0 : désigne la machine elle-même. II.2) Une pénurie d'adresses Le problème vient aujourd'hui du fait que le nombre de r éseaux connect és à l'Internet a eu une très forte croissance. De nombreux gaspillages d'adresses ont aussi eu lieu rendant aujourd'hui impossible de trouver une classe A ou une classe B disponible.
Des entreprises souhaitant aujourd'hui plus de 254 adresses et voulant se connecter en réseau à Internet ont donc un problème pour disposer d'adresses IP. Il a donc fallu trouver des solutions pour pallier à ce manque. En voici les principales : l IPv6 : Ce nouveau protocole permet de coder les adresses IP sur 128 bits, soit 16 octets. Le problème de ce protocole est qu'il n'est pas encore standardis é et donc pas encore employé. l CIDR : Il s'agit ici de coupler plusieurs adresses réseaux de classe C choisies pour avoir un masque de sous-réseau commun et pouvoir ainsi communiquer sans passer par un routeur à l'intérieur d'une entreprise disposant de réseaux de classe C en CIDR. Cette solution pourra elle aussi n'être que temporaire puisqu'il viendra un moment où il manquera aussi de réseaux de classe C. De plus, avec ce système, des gaspillages d'adresse réseau sont faits, en effet, une entreprise qui aurait besoin de 3 réseaux de classe C (3*254 adresse machine) se verra attribuer 4 réseaux, une entreprise en ayant besoin de 10 en aura 16... l Utilisation des classes d'adresses privées : C'est cette solution que nous allons développer plus précisément par la suite : II.3) Utilisation des adresses privées ( RFC 1918 ) La RFC 1918 définit des plages d'adresses de r éseaux de classe A, B et C qui ne peuvent pas être utilisées sur Internet. Par contre, ces adresses peuvent être utilisées en même temps par plusieurs entreprises : Voici la liste des adresses privées disponibles : - classe A : de 10.0.0.0 à 10.255.255.255 soit 1 adresse réseau de classe A privée - classe B : de 172.16.0.0 à 172.31.255.255 soit 16 adresses réseau de classe B privées - classe C : de 192.168.0.0 à 192.168.255.255 soit 255 adresses réseau de classe C privées Le problème d'utiliser les adresses privées vient de leur définition, : pas de routage sur Internet. Il a donc fallu trouver des solutions pour permettre à ceux qui les utilisent de pouvoir communiquer vers l'extérieur. Des mécanismes de traitement interm édiaires ont été mis en place, notamment la translation d'adresse (NAT) et la mise en place de proxys . L'objet de la première partie de ce site Web est de vous pr ésenter ces deux m écanismes. Voyons donc d'abord la translation d'adresse.
III) [NAT] III.1) Principe Général La NAT (Network Adress Translation) est un syst ème utilisé quand on souhaite connecter un réseau consitué de machines posédant des adresses priv ées à Internet. Le protocole NAT est implémenté sur des routeurs. Ce protocole repose sur IP. Nous pr ésenterons ici le mécanisme de base de la NAT, il existe aujourd'hui des m écanismes beaucoup plus évolués. En effet, une station de travail du r éseau (possédant une adresse priv ée) qui souhaite communiquer vers l'extérieur enverra les données à transmettre vers son routeur par défaut (routeur définit dans la configuration de la machine ou obtenu par DHCP). Le routeur aura donc pour mission de transmettre la demande à l'extérieur, de récupérer la réponse et de la transmettre à la station qui a fait la requête. Pour ce faire, il met en oeuvre la NAT. Trois types de NAT peuvent être utilisés : la NAT statique, la NAT dynamique et la NAT multiple . Voyons dans un premier temps la NAT statique. Son fonctionnement plus simple nous permettra de comprendre plus facilement les autres mécanismes. III.2) NAT Statique et dynamique Le principe de NAT statique et dynamique est tr ès simple et très proche. Voyons dans un premier temps la NAT statique. NAT Statique Son principe est d'associer une adresse IP interne (privée) à une adresse IPpublique. Son fonctionnement est très simple : Lorsque A fait une requête sur le serveur Web : l La station A envoie à son routeur par défaut le message en pr écisant, comme pour toute communication, son adresse IP : IPa (privée) comme adresse source et l'adresse IP du serveur Web : Ipweb comme adresse destination. l Le routeur NAT qui re çoit ce datagramme regarde dans sa table et voit qu' à l 'adresse privée IPa est associée l'adresse publique (ou virtuelle) IPpub. l Il modifie donc le message pour intégrer comme adresse source l'adresse IPpub et fait suivre le message sur son
interface connect ée à Internet. l Le serveur Web recevra donc un message de requ ête provenant de l'adresse IPpub. Le schéma suivant reprend la vie du message lors de cette phase d'envoi de requête. Une fois que le serveur Web a traité la requête, il doit envoyer la réponse. Voici le cheminement du mesage : l Le serveur Web cr ée sa réponse et l'encapsule dans un datagramme IP avec comme adresse source la sienne : Ipweb et comme adresse destination l'adresse inscrite dans la requête, c'est à dire IPpub. l Ce message est donc envoyé et reçu par notre routeur NAT qui reconna ît IPpub comme une adresse ne correspondant pas à une adresse de son réseau mais devant être translatée pour continuer son chemin. l Il regarde donc de nouveau sa table de correspondance NAT et constate qu' à l'adresse publique IPpub est associée l'adresse privée IPa. l Il modifie le message et le transmet sur le réseau local où la machine A est connectée. Le schéma ci dessous vous résume les étapes d écrites.
Avec ce syst ème, une station interne aura toujours, lorsqu'elle souhaite se connecter à Internet, la même adresse IP publique . La NAT dynamique La NAT dynamique fonctionne sur le même principe que la NAT statique mis à part que l'adresse publique qui sera attribuée à la station A (station en adressage privé) ne sera pas toujours la même. Cette adresse sera choisie dans un "pool d'adresses" à la disposition du routeur et donnée pour un temps d éfini. L'adresse obtenue par A sera potentiellement à chaque fois différente. Mais une fois toutes les adresses du pool utilisées, les stations qui feront la demande d'une adresse publique ne pourront pas être satisfaites, il faut donc trouver encore une autre solution permettant de satisfaire tous les utilisateurs. Cette solution peut âr exemple êter la NAT multiple ou PAT. Voyons ceci. III.3) NAT multiple La NAT multiple Ce que l'on appelle communément NAT dynamique est en fait la mise en place d'une autre translation : la translation de port ou PAT (Port Adresse Translation). Ce protocole s'appuyant sur UDP est lui aussi impl émenté sur les routeurs en complément de la translation d'adresse. Principe : La translation de port permet d'associer une même adresse IP
publique à plusieurs adresses IP privées en jouant sur les ports de connexion. Ainsi, plusieurs machines pourront se connecter en même temps à Internet alors que le routeur ne dispose que d'une adresse publique. Prenons comme exemple une situation o ù deux machines du réseau local souhaitent aller visiter un site Internet en m ême temps. La première : A, qui possède l'adresse IP IPa, initialise la connexion en choisissant au hasard le port source Porta. Au même instant, la machine B fait la même démarche, elle initialise la connexion en prenant comme port source (choisi de fa çon al éatoire) le port Portb. Nous allons nous placer dans le cas le plus défavorable, par manque de chance les deux machines A et B ont choisi le même numéro de port (Porta=Portb)... Voyons ce qui se passe au niveau du routeur NAT/PAT : Le routeur reçoit les deux demandes de connexion en même temps. Il va donc regarder dans sa table l'adresse IP source, le port source et l'adresse publique allouée (la seule à sa disposition). Il continue donc à faire suivre le paquet de la machine A sur Internet avec les caractéristiques suivantes : @src = IPpub, port src = Porta... Le paquet provenant de B arrive lui aussi au routeur, le routeur fait de même qu'avec A, il note dans sa table qu'à l'adresse source IPb et num éro de port Portb est associ é l'adresse Ip publique IPpub avec le port Portb... Mais, lors de l'arrivée des réponses en provenance du Web, le routeur qui reçoit un paquet pour @IP : IPpub et port dest Porta (=Portb) ne saura pas à qui l'envoyer... Avec ce mécanisme, il serait possible que le routeur lance des connexions vers l'extérieur avec le même numéro de port, connexions qu'il n'arriverait plus à distinguer par la suite... C'est pour celà que lorsqu'une demande de connexion arrive, le routeur, en plus de changer l'adresse IP source contenue dans le paquet, va aussi modifier le port source en en choisissant un lui même. De cette manière, il ne choisira jamais deux fois le même numéro en m ême temps, il pourra donc bien suivre toutes les connexions en même temps. Voici donc un sch éma synthétisant le fonctionnement de la translation de port: Lors de l'envoi de requêtes :
Lors de la réponse à la requête : Les mécanismes de NAT et PAT sont très liés, ils ont le même but, voyons en maintenant une comparaison :
III.4) Comparaison et problèmes Comparaison NAT statique et NAT dynamique NAT statique NAT dynamique NAT multiple (PAT) 1 adresse IP 1 pool d'adresses 1 seule adresse publique par publiques pour un publique pour un machine du r éseau réseau complet réseau complet local Initialisation des Initialisation des Machines connexions TCP connexions TCP accessibles par uniquement par uniquement par l'extérieur l'intérieur l'intérieur Gestion plus Une fois que toutes facile, on sait qui les adresses du pool a quelle adresse IP sont utilisées, plus publique de connexion possible Problèmes pour ARP, FTP L'idéal serait donc de pouvoir coupler ces sytèmes pour n'en garder que les avantages, ce qui est bien évidemment possible, voici comment faire : Couplage NAT et PAT Sur un réseau, toutes les machines n'ont pas les mêmes besoins en terme de connexion à Internet, d' établissement de connexion par l'extérieur etc... Ainsi, il est possible d'impl émenter les deux systèmes sur le routeur NAT. Les machines devant être jointes de l'extérieur ou utilisant fr équemment des services comme FTP peuvent utiliser une NAT statique. Il peut s'agir par exemple de serveurs Web, fr équemment appelés. Pour les postes de simples utilisateurs, il est en général suffisant de faire de la PAT et donc ainsi économiser le nombre d'adresses publiques disponibles dans l'entreprise. Problèmes liés à la NAT Certains problèmes persistent quand m ême : Requêtes ARP : Lorqu'une requête ARP est à destination d'une machine "NAT ée", la requête se fait par l'adresse virutelle utilisée en dehors du réseau local. Or aucune machine du réseau ne poss ède cette adresse, c'est le routeur qui doit répondre à la place de la machine, on dit alors que le routeur fait "proxy ARP". Le proxy ARP est souvent implémenté automatiquement sur les routeurs,sinon il existe plusieurs solutions pour pallier à ce problème : mettre en place un mécanisme de proxy ARP sur la machine qui fait de la NAT statique, ajouter une entrée statique dans la table ARP du routeur Internet (pas le routeur NAT mais le suivant vers Internet) avec l'adresse MAC du routeur commande : arp -s @IPvirutelle @MACRouteur
ICMP : La NAT multiple demande l'utilisation des ports TCP/UDP mais certains protocoles ne les utilisent pas, c'est par exemple le cas d'ICMP, PPP ou Netbios. Par exemple ICMP, il se limite à la couche 3, il n'a donc pas de ports TCP/UDP. La plupart du temps, il faudra mettre en place une méthode sp écifique pour permettre la NAT du trafic ICMP, il suffira de baser la translation sur l'identifiant de l'entête IP plutôt que sur les numéros de port. On peut donc se demander pourquoi ce mécanisme, plus universel ne serait pas mis en place pour toutes les translations... Mais il existe maintenant une solution à ce problème, il s'agit du tracking de paquets ICMP. Ce mécanisme permet entre autres d'utiliser le procole ICMP avec la translation d'adresses. le tracking de paquets ICMP est un module compris dans un mécanisme de NAT évolué tel que "Masquerading". FTP : FTP est un protocole qui utilise deux connexions en parallèle, la première pour le contrôle de la connexion et la seconde pour le transfert des données. FTP fonctionne selon deux modes : passif (connexions initialisées de l'extérieur) ou mode actif (la demande de données vient de l'extérieur).Cette seconde possibilité empêche de faire de la NAT dynamique. De plus, le protocole FTP contient des informations concernant les machines et donc celà pose problème si les adresses de ces machines sont translat ées. Il faut alors utiliser un module capable de lire les informations contenues dans les données FTP ou utiliser un proxy FTP qui sera capable de suivre la connexion et de modifier les données FTP rendant ainsi la connexion possible. Ce type de module est également disponible dans le mécanisme de "masquerading" et il peut ête activé ou non selon l'utilisation. VPN : Les réseaux privés virtuels ( VPN) utilisent une communiaction via un tunnel. Le contenu des messages qui transitent dans ce tunnel est crypté, y compris l'entête IP du message (protocole IPsec). Ainsi, il n'est plus possible, une fois le message crypté, de trouver en clair l'adresse IP de l' émetteur ainsi que le port source, il n'est donc pas non plus possible de les modifier. Il est donc difficile de faire de la translation d'adresse dans un VPN. La solution est très simple, elle consiste à translater l'adresse avant de crypter le message IP. Là aussi, des mécanismes évolués tels que le "masquerading" permettent de résoudre le problème. Certains problèmes renconctrés avec la translation d'adresses ne le sont pas avec l'utilisation des proxys, voyons donc comment les proxys fonctionnent.
IV) Proxy IV.1) Principe de fonctionnement du proxy Le proxy fonctionne au niveau applicatif. Il est utilisé comme mandataire par des machines présentes sur un réseau, n'ayant pas d'accès direct à l'extérieur et souhaitant s'y connecter pour une application donnée . Comme pour les routeurs, le nom du serveur proxy doit être configuré, pour chaque type d'application, sur les machines clientes. Il peut alors s'agir de proxy HTTP, FTP, ARP etc... Afin de bien comprendre comment tout celà fonctionne, prenons comme exemple l'architecture réseau suivante avec un proxy HTTP. Exemple 1 : La station A veut consulter le site Web Interne Voici, vus de la machine A les mécanismes mis en place : l Résolution DNS pour le serveur WebInterne l Connexion TCP de A vers le serveur WebInterne l A vers WebInterne : requête http GET URL index.htm l WebInterne vers A : envoi du contenu de index.htm Ici, le serveur WebInterne communique donc directement avec la station A.
Exemple 2 : La station A veut consulter le site Web Externe La machine A ne peut pas se connecter directement à Internet, elle regarde donc dans sa configuration et voit qu'elle doit passer par le proxy Voici, tout d'abord vus de la machine A les mécanismes mis en place : l Résolution DNS pour le serveur ProxyHttp l Connexion TCP de A vers le ProxyHttp l A vers ProxyHttp : requête http GET URL WebExterne/index.htm l ProxyHttp vers A : envoi du contenu de WebExterne/index.htm Voici ensuite, vus du proxy les mécanismes mis en place : l Connexion TCP de A l A vers ProxyHttp : requête http GET URL WebExterne/index.htm l Connexion TCP de ProxyHttp vers WebExterne l ProxyHttp vers WebExterne GET URL index.htm l WebExterne vers ProxyHttp envoi du contenu de index.htm l Proxy vers A envoi du contenu de WebExterne/index.htm Nous voyons donc ici que la station A ne communique jamais directment avec le WebExterne (pas de connexion TCP entre A et le serveur WebExterne. En règle génrérale, on profite du proxy pour lui adjoindre des fonctionnalités spéciales. Nous allons donc voir quels services peuvent lui être ajoutés. IV.2) Services ajoutés au proxy Comme nous venons de la voir, le proxy est simplement un intermédiaire de connexion entre une station du réseau local et des stations plac ées sur d'autres r éseaux. Néanmoins, des options lui sont souvent associées, en voici quelques-unes : Proxy-Cache Tr ès souvent, un cache est installé sur les proxys. Le cache est une mémoire installée sur les proxys lui permettant de conserver dans sa propre mémoire le contenu des requêtes qui ont déjà été effectu ées. Le serveur de cache, avant de se connecter au r éseau externe pour relayer la demande de son client interne, détermine s’il peut satisfaire la demande du client avec son cache. Un serveur Proxy utilisant le cache place une copie des objets téléchargés dans le cache et associe à ces objets une dur ée de vie. Pendant toute sa dur ée de vie, toutes les demandes pour cet objet seront satisfaites par le cache. Quand la durée de vie de cet objet est passée, le prochain client qui demandera cet objet en recevra un tout nouveau reçu du réseau externe. Si le cache du Proxy est plein, le serveur Proxy élimine les objets de son cache suivant
certains critères tels que l'âge, l’utilisation et la taille. Il est possible de paramètrer le cache afin de donner un temps de validité limité aux pages stockées. Ceci donne donc l' avantage d'économiser la bande passante disponible pour toute l'entreprise et aussi les coûts de connexion à Internet si l'entreprise ne dispose pas d'une connexion permanente à Internet. L'utilisation d'un proxy-cache a quand même des inconvénients . Le premier est que le serveur qui héberge le cache doit avoir de bonnes performances afin de ne pas trop ralentir les requ êtes, de plus, le passage dans ce serveur peut provoquer un goulet d' étranglement au niveau du réseau (le temps de traitement des requêtes adressées au proxy n'est pas négligeable). Il est néanmoins possible de placer plusieurs proxys en parallèle afin de leur répartir la charge. Proxy-Authentification Le fait de relier un serveur proxy à un mécanisme d'authentification permet de ne donner l'accès à Internet qu' à certaines personnes autoris ées à qui on distribue un login et un mot de passe. On évite ainsi que toute l'entreprise ait accès à Internet si les personnes qui en ont besoin sont très rares. On peut aussi profiter de ce mode de fonctionnement pour répartir les frais de la connexion à Internet en donnant un mot de passe par service et ainsi on calcule le trafic inhérent à chaque service pour redistribuer les co ûts. Proxy Anonyme Le proxy anonyme est utilis é pour permettre une conservation de la vie privée. En effet,lorsqu'une connexion Internet a lieu, des informations sur le système sont fournies au site Web. Des informations peuvent alors être utilisées pour suivre les mouvements de l'internaute. Afin d'éviter de divulguer des informations sur sa vie privée, il est possible de mettre en place des proxys anonymes. Ceux-ci détruisent les informations issues des entêtes des requ êtes provenant d'un ordinateur sp écifique. Afin de bénéficier d'un niveau de sécurité optimal, il est possible de chainer des proxys. Au lieu de saisir une demande de connexion à un site Internet de la façon suivante : http://www.enic.fr on tape : http://proxyA:portA/proxyB:portB/www.enic.fr ou http://proxyA:portA/proxyB:portB/http://www.enic.fr Failles de sécurité Comme tout équipement, le proxy souffre de failles de sécurité. Même si les pirates les détectent plus vite que les administrateurs r éseaux, il est préférable d'en connaître les principaux d éfauts.
La principale faille concerne la liste des utilisateurs autoris és à se connecter. En effet, si la liste est inexistante ou mal configurée, n'importe qui pourra venir s'y connecter pour aller de façon anonyme sur Internet. Il est relativement simple pour un hacker de se procurer sur Internet une liste de serveurs proxys et de leur configuration car certaines entreprises publient sans s'en rendre compte leur adresse de proxy et leur configuration. IV.3) Comparaison Proxy et NAT Les proxys et la translation d'adresse ont le m ême but, connecter des machines à Internet, mais quel système est-il pr éférable d'utiliser ? Vaut-il mieux mettre en place la translation d'adresse ou utiliser des serveurs proxys ? Selon les besoins de l'entreprise, chaque matériel peut avoir ses avantages et ses inconv énients, voici ce qui peut faire pencher la balance... Penchant sur les proxys : Le Proxy est dédi é à une seule application, l'avantage est qu'il peut interpr éter le contenu de ce qu'il voit passer et donc il évite des problèmes tels que l'utilisation du protocole FTP avec la NAT. Il est possible de mettre un cache sur un proxy, permettant ainsi de réduire significativement le trafic de l'entreprise vers l'extérieur si de nombreuses personnes se connectent souvent au m ême site. La bande passante est alors mieux utilisée. Avec les proxys, il est possible d'autoriser ou non l'acc ès à certaines ressources et il est possible d'avoir un bon contrôle de ce qui passe sur le réseau. Les proxys ne sont pas seulement utilisés quand l'entreprise possède un r éseau en adresses privées, les services à valeur ajoutée proposés le rendent flexible.Il peut donc être utilisé pour accroître quelque peu la sécurité sur un réseau. Penchant pour la NAT : La NAT est transparente pour les utilisateurs, c'est à dire que rien ne doit être configur é sur leurs postes pour que le système fonctionne. Elle est ind épendante des applications utilis ées, si une nouvelle application apparait, elle peut tout de suite communiquer vers l'ext érieur, il n'est pas nécessaire d'installer un nouveau proxy. Maintenant que la connexion à Internet est assurée , il faut voir comment se protéger des malveillances qui peuvent provenir de l'extérieur. Pour celà, étudions les firewalls.
V) Firewall V.1) Principe général Selon la définition de Cheswick et Bellovin, un firewall (ou pare-feu en français) est un ensemble de composants placé entre deux réseaux ayant les propriétés suivantes : l Tout le trafic transitant entre les deux r éseaux passe nécessairement par le firewall l Seul le trafic explicitement autorisé par la politique de sécurité appliqu ée localement est autorisé à passer au travers du firewall l Le firewall est immunisé contre toute intrusion. Il s'agit donc ici de contr ôler tout ce qui se passe à l'interconnection des deux réseaux et de garantir que l' équipement réalisant ce contrôle ne peut pas lui-même être attaqué afin de modifier ses r ègles de filtrage. Les notions de NAT et de proxy vues précédemment aideront largement à la compréhension du fonctionnement des firewalls puisque ces mécanismes y sont utilis és. Deux principaux types de firewalls existent, les filtres de paquets et les passerelles applicatives, ceci fera l'objet de la suite de ce site. Il faut néanmoins noter qu'il ne suffit pas de mettre en place un firewall pour se pr émunir de toutes les attaques sur un réseau, une politique de gestion de la sécurité doit être définie, surveillée et mise à jour régulièrement, n'oublions pas que la machine ne fera que ce que l'homme (la femme) lui aura demandé de faire ! Voyons donc comment se définit une politique de sécurité. V.2) Politique de sécurité Stratégies de configuration d'un firewall Deux grandes stratégies sont utilis ées pour configurer les firewalls : l Tout ce qui n'est pas explicitement interdit est autorisé l Tout ce qui n'est psa explicitement permis est interdit. La seconde règle est la plus utilisée, elle permet en effet de limiter les failles de sécurité dues à des oublis ou à de nouvelles sortes d'attaques. Elle est néanmoins longue à mettre
en place et à appliquer. c'est celle qui est la plus souvent choisie. Un langage de définition des politiques de sécurité a été cr éé afin de définir les règles de filtrage. Il a été étudié à l' IETF et peut se r ésumer comme suit : SI ALORS La condition reprend un critère de s élection (par exemple l'adresse IP source) en relation avec un opérateur et une catégorie d'utilisateurs . Les op érateurs sont les suivants : IN, NOT IN, EQUALS, GREATER THAN, GREATER THAN OR EQUAL TO, LESS THAN, LESS THAN OR EQUAL TO. Les actions sont PERMIT (trafic autorisé) et DENY (trafic interdit). Il existe également une action REJECT qui, en plus de refuser le passage du paquet, avertit l'émetteur que son paquet a été détruit. Cette action est très peu utilis ée car elle peut donner des informations à l'éventuel intru, on préfèrera donc utiliser DENY. Différents types de firewalls dans la suite de ce document, vous connaitrez les deux principaux types de firewall, leurs fonctionnalités, leur mise en place et leurs protections. Le filtre de paquets La passerelle applicative V.3) Filtres de paquets Il filtre le trafic des données au niveau des couches réseau et transport (niveaux 3 et 4 du modèle OSI). Le filtrage est principalement r éalisé en fonction des critères suivants : l Numéros de protocole l Adresses IP source et destination l Numéros de ports sources et destinations l Drapeaux de connexion TCP Gr âce aux numéros de port, il est possible d'effectuer un filtrage en fonction des services proposés car il existe une correspondance entre les numéros de ports et les services associés. Néanmoins, ceci n'est pas tout à fait satisfaisant car des num éros de port non r éservés existent et peuvent être utilisés sans être filtrés. Il faut donc bien faire l'inventaire
des ports utilisés par les applications de l'entreprise et veiller à n'ouvrir que ces ports. Dans le cas du filtrage par paquets, le firewall ne prête aucune attention aux données véhiculées sur le réseau. De ce fait, il ne peut s'agir que d'une maille dans le système de s écurité et il ne constitue en lui même pas un rempart suffisant. 2 types de filtres de paquets : Filtre sans Etat : Il ne garde en m émoire aucun contexte, il traite de fa çon identique tous les paquets IP qu'il voit passer, c'est à dire qu'il analyse l'ent ête IP selon ses r ègles de filtrage. C'est le type de filtre de paquet le plus couramment utilisé. Filtre avec Etat : Le premier paquet d'une communication IP est analysé selon les règles de filtrage. L'action réalisée (DENY ou PERMIT) est gardée en mémoire. Les paquets suivants faisant partie de la même communication seront traités avec la même action. En règle générale, les filtres de niveau paquet offrent de tr ès bonnes performances en terme de temps de traitement, par contre, ils ne savent pas comprendre ce qui circule dans la partie "donnée" des messages ce qui peut être également dangereux. Pour ce faire, les passerelles applicatives ont été créé es. V.4) Les Passerelles La passerelle agit de la couche transport à la couche application du modèle OSI. Ici, le firewall effectue un filtrage plus ou moins fin sur les données échangées entre deux réseaux, pour un service TCP/IP particulier. La passerelle sera donc placée sur le même réseau que le client qui devra obligatoirement passer par elle pour se connecter à l'extérieur. Ainsi, deux connexions TCP doivent être prises en compte : une connexion du client vers la passerelle applicative et une autre de la passerelle applicative vers l'ext érieur. Dans ce cas, le firewall effectue un contr ôle pour voir s'il autorise ou non le transit des paquets sur ces connexions. Le firewall va alors chercher dans ses règles de fonctionnement pour savoir s'il doit relayer le trafic ou le bloquer.
Il existe deux principaux types de passerelles, les passerelles de niveau circuit et les passerelles applicatives. Elles sont en général regroupées sous le terme générique de "passerelles applicatives" mais ne fonctionnent en fait pas de la même manière : Passerelles de niveau circuit : Dans ce cas, le client effectue une connexion TCP vers la passerelle pour demander sa connexion au serveur. La passerelle peut effectuer des contrôles relatifs permettant : l de contrôler l'adresse IP d'un client, l d'autoriser pour une durée maximale fixée les communications sur un port donné l de permettre la r éutilisation d'un même port seulement après un délai fix é l d'authentifier un terminal Ici, une seule passerelle peut être mise en oeuvre pour toutes les applications basées sur TCP/IP. Dans ce type de configuration, il est nécessaire de modifier la configuration de la pile TCP/IP du client afin de forcer le client à se connecter via la passerelle. Passerelles Applicatives : Il s'agit en fait ici de mettre en oeuvre le mécanisme de proxy
(d écrit plus tôt dans cet exposé). Il faudra par contre installer une passerelle applicative par service utilisé dans l'entrprise devant se connecter à Internet. Ceci permet d'avoir un filtrage très fin au niveau de l'analyse du contenu de ce qui transite mais cel à peut s'avérer lourd à gérer car, dès qu'une nouvelle application qui doit communiquer vers l'ext érieur apparait, il faut installer un nouveau proxy. Il est possible d'héberger sur un même serveur plusieurs proxys, limitant ainsi les coûts au niveau matériel. Plusieurs types d'architectures permettent d'obtenir le niveau de sécurité souhaité et de résoudre certains problèmes, par exemple le fait de devoir installer un proxy par application. C'est ce que nous allons voir dans le chapitre Architectures. V.5) Architectures Il existe plusieurs solutions permettant de connecter le firewall au réseau Internet, selon le niveau de paranoïa du responsable sécurité de l'entreprise. Nous allons donc voir ici quelques possibilités d'architecture et leur intérêt : Il existe deux éléments indispensables à toutes ces architectures : Le routeur filtrant : il s'agit ici d'un routeur où sont implémentées certaines règles lui permettant de savoir, en fonction des adresses IP, des protocoles utilis és ou des num éros de ports à quelle machine envoyer le message. Le bastion : On appelle bastion un serveur regroupant plusieurs proxys.
Un routeur filtrant et un bastion ayant deux interfaces r éseau : Avec ce type d'architecture, le routeur filtrant va vérifier que tous les paquets issus d'Internet sont adressés au bastion. Le bastion utilise ses règles de filtrage pour savoir s'il doit relayer ou non les paquets. Ce type d'architecture est très fiable car seuls les services pour lesquels un proxy a été install é peuvent communiquer. Le problème est donc toujours persistant pour les services qui ne disposent pas de proxys (certains protocoles propriétaires, par exemple Lotus Notes ou le service DNS). De plus, toute la fiabilité de cette architecture repose sur le bastion, une simple faille au niveau de celui -ci rend toute la structure ouverte aux attaques.
Un routeur filtrant et un bastion ayant une seule interface réseau : Ici, le routeur v érifie la conformit é des paquets issus d'Internet, il vérifie qu'ils sont bien adressés au bastion. Un avantage et un inconvénient proviennent du fait que le routeur peut être contourné. Ceci peut se révéler utile lorsqu'on souhaite utiliser des services qui ne disposent pas de proxys, DNS par exemple. On ordonne alors au routeur d'envoyer ce type de paquets directement sur le réseau, ceci donne une certaine flexibilité. La sécurité est ici basée sur les tables de filtrage du routeur autorisant ou non la connexion directe au réseau interne.
Deux routeurs filtrants et un bastion : Ici, une zone dite démilitarizée est créé e entre les deux routeurs, elle est appelée DMZ. L'intérêt vient du fait qu'il est nettement plus difficle de r éussir à contourner deux routeurs filrants. Le routeur R1 envoi les données qui doivent être filtrées au bastion et les autres vers le second routeur filtrant. Le second Routeur (R2) vérifie que toutes les informations qui doivent être filrées viennent du proxy et il laisse passer les messages qui ne doivent pas être filtrés. Comme dans l'exemple précédent les services ne disposant pas de firewall peuvent passer. Autres utilisation des DMZ : De nombreux firewall permettent sur au moins une de leurs branches une DMZ. On place alors sur la DMZ tous les serveurs qui peuvent être accessibles de l'Internet (ne contenant pas de données critiques). Ainsi, tout le reste du réseau reste inaccessible de l'extérieur. Voici un exemple d'architecture qui intègre une DMZ pour une entreprise qui souhaite héberger elle- même son serveur Web et avoir un serveur de mail accessible à partir d'Internet. Le firewall dans ce cas peut aussi bien être un filtre de paquets ou une passerelle applicative.
Nous voyons donc ici qu'il n'est pas simple d'installer un firewall, il faut savoir quelle politique appliquer, quel type de filtrage on souhaite réaliser, quelles applications auront le droit de communiquer vers l'extérieur mais aussi quel type d'architecture mettre en place. Tout dépend du degr é de sécurité souhait é, des moyens à disposition mais aussi des données à protéger... car malgré la présence d'un firewall, toutes les attaques ne peuvent pas être arr êtées, nous verrons dans la prochaine partie comment attaquent les pirates et s'il existe des solutions pour déjouer ces attaques. V.6) Problèmes Aussi performant que pourra être un firewall, il existera toujours des failles qu'il ne pourra pas g érer et pour faire face à des attaques spécifique il devra être configurée de manière optimale. Failles Il existe trois catégories de failles contre lesquelles les firewalls restent impuissants : La première catégorie met en cause les protocoles des couches basses du modèle OSI (de 2 à 4) comme par exemple TCP, IP, UDP, Ethernet, Token Ring qui ne sont pas nativement sécurisés. En effet ces protocoles ne nécessitent en aucun cas une authentification et la confidentialit é des données qu'ils supportent n'est pas assurée car toutes les informations circulent en clair.
La deuxième catégorie est liée aux protocoles des couches hautes et notamment à certains, utilisés fréquemment sur intenet et pouvant facilement être utilisée à des fins malveillantes par exemple Telnet ou FTP. En effet il est délicat de noter dans les régles du firewall que l'utilisation de ces services est interdit car ils sont pratiques et fr équement utilisés. Bien sur le firewall ne peux les accepter que s'ils proviennent de certaines adresses, mais si un pirate usurpe les adresses autoris ées il pourra faire transiter le contenu qu'il souhaite sans avoir à s'authentifier, et/ou il pourra lire les informations qui transitent puisqu'elles ne sont pas codées. Le troisième risque provient des faiblesses des sytèmes d'exploitation utilis és sur les réseaux locaux. Il est tr és facile pour les pirates d'obtenir des renseignements sur les faiblesses de sécurité des différents système et de concevoir des attaques appropriées qui ne pourront être détectées par le firewall qui pensera que ce sont des messages normaux ou et sans risques. De plus il faut bien r éaliser que le firewall est incapable d'empêcher les attaques ne passant pas par lui. Par exemple il n'est pas rare de constater que certains utilisateurs possèdent des liaisons modem directe vers l'internet, ce qui constitue une porte d'entr ée idéale pour un pirate. Il faut également être conscient que la sécurité absolue n'est pas encore possible et que la meilleure façon de protéger des documents sensible est de les stocker sur des supports non accessibles depuis le réseaux : réseau ou machine en "standalone" c'est à dire sans liaisons avec le reste de l'entreprise, support de stockage physique : cd -rom, bandes magnétiques... Les firewalls ne sont également pas bien adapter à la protection contre les virus car ce ne sont rien d'autre que des programme ou documents à l'apparence des plus normale, et il existe tellement de mani ère de coder les informations qu'il est difficile de détecter les virus sur le firewall. Il est donc nécessaire de bien sensibiliser les utilisateurs aux problème de sécurité et leur donner les directives de bases, la première étant de ne rien ouvrir provenant d'un mail dont on n'est pas sur de la provenance. L'investissement dans un firewall est assez lourd et une bonne administration prend énormément de temps. Quelques types d'attaques : Voici quelques types d'attaques qu'il est possible de contrer grace à une bonne configuration du firewall. Le "SYN flooding" . Cette attaque s'adresse aux équpement fonctionnant avec le protocole TCP. Le principe étant d'inonder la machine avec des messages comporantant le drapeaux SYN à 1 et de ne pas répondre, la machine visée reste donc dans l'attente d'un message avec le drapeau ACK à 1. Cela n'affecte pas l'intégriter du système mais le mais dans l'incapacit é de répondre à d'autre requète, cela le rend indisponible. La
solution est de configurer le firewall pour qu'il examine les requettes TCP et qu'il contrôle le nombre de messages SYN émis par une même source. L´IP spoofing. La mascarade autrement appelée IP spoofing consiste à falsifier l´adresse source d´un datagramme IP pour se connecter à une machine qui connaît ses hosts amis. La machine estime donc qu´elle a affaire à un utilisateur reconnu et laissera ouvertes ses protections. Cette attaque qui est causée par les faiblesse de certain protocole ne faisant pas d'authentification, peut être éviter si le firewall fais lui même de l'authentification (notament en dialoguant avec un serveur d'authentification) en controlant de manière performante l'identité du correspondant (mécanisme de signature digitales ou à base de clef secrète). Le Pinging. L´exploitation de ces failles se traduit par un certain nombre de techniques. La première se nomme "pinging" ou "ping of death". Son principe est très simple : la machine cible est bombardée par des milliers de messages (de type ICMP envoyés par la commande ping). Cet équipement se trouve alors saturé et passe en mode administration. Le pirate peut alors reconfigurer le syst ème à sa guise. La parade est la même que pour toutes les attaques de type "flood" c'est à dire de controler le nombre de message de type signalisation à destination d'une même machine. Les attaques sur les autres matériels réseaux. En effet si un routeur est attaquer et que le pirate parvient à modifier les table de routage afin de rediriger du traffic sur sa propre machine, le firewall sera impuissant. Il faut donc le positionner corectement et notament avant les routeur internes à l'entreprise. Les journaux de s écurité . Afin de ne laisser aucune trace de son passage le pirate peux saturer les journaux de sécurité avec des tentatives de connexions "leure" puis réaliser en toute discrétion une véritable attaque, puisque les actions ne seront plus enregistrée. Afin de paré à ce problème il faut que l'administation du firewall soit irréprochable et surtout que cette machine soit la moins visible possible par un pirate. Par exemple il ne faut en aucun cas héberger d'autre service sur cette m ême machine car elle risquerais d' être vue de l'extérieur. En conclusion, on pourra dire que si les capacités du firewall et sa puissance entrent en jeu dans le niveau de sécurité qu'il procurera, l'élément essentiel réside dans une administration et une configuration des plus soign ées et des plus rigoureuses.
VI) Glossaire Vous trouverez dans ce glossaire les termes que nous avons utilisés ainsi qu'une définition rapide de ceux-ci. Certains termes ont été plus expliqu és dans le site lui-même, n'h ésitez pas à aller consulter les parties correspondantes. AFNIC : Association Française pour le Nommage Internet en Coopération ARP : (Adresse Resolution Protocole) : Protocole permettant sur un réseau local, d'associer les adresses physique des machines (adresses MAC) au adresses IP en envoyant une requette en diffusion à toute les machine pour demander laquelle posséde l'adresse ip recherché. Broadcast : Ou diffusion, mécanisme permettant à toutes les stations d'un réseau de recevoir le message envoyé. Pour le protocole IP les adresses de broadcast se terminent par 255, par exemple un message envoyé à l'adresse 192.168.1.255 sera pris en compte par toutes les machines du réseau 192.168.1.10. Cache : Le cache est une notion trés présente dans les réseaux, il s'agit de conserver en m émoire une information que l'on vient d'aller chercher sur le réseau afin de ne plus avoir à emprunter le réseau pour la retrouver. Naturellement, il faut mettre en place des mécanismes de durée de vie limitée ou de mise à jour pour s'assurer de la validité de l'information. CIDR : (Classless Inter Domain Routing) Système permettant de réaliser un seul réseau logique à partir de plusieurs adresses de classe C contigues. On s'arrange pour que les adersses de classe C choisies aient le même masque de "Sur -Réseau". Datagramme : Suite de bit Standardisée. Pour IP, l'entête comporte 20 octets précisant notamment l'adresse source et l'adresse destination du message. Les donn ées de la couche supérieure suivent cet ent ête. DHCP : Système permettant d'attribuer dynamiquement aux machines d'un réseau donné une configuration réseau, contenant notamment l'adresse IP, le masque de sous réseau et le routeur par défaut. DNS : (Domain Naming Service) Le DNS est un service qui fournit une base de donnée permettant de faire la relation entre une adresse IP et le nom de la machine correspondant à cette adresse IP. Firewall : Machine placée au point de communication d'un réseau vers l'extérieur assurant la non-intrusion dans ce réseau. FTP : (File Transfert Protocole) Protocole applicatif utilisé
dans le transfert de fichier. HTTP : (HyperText Transfert Protocole). Protocole applicatif de transmission de donnée s'appuyant sur le protocole TCP. C'est le protocole le plus employé sur l'Internet notamment pour le transfert des pages Web. ICANN : Entitée charg ée de gérer les noms de domaines au niveau mondial de l'Internet (www.icaan.org) ICMP : (Internet Control Message Protocole) Protocole permettant la communication entre routeur pour échanger des informations. Les messages ICMP sont encapsuler dans les datagramme IP. PPP (Point to Point protocol) Protocole utilis ée le plus souvent pour les connexion modem entre le modem et un routeur. IETF : Internet Engineering Task Force. Il s'agit d'une communauté internationale regroupant des architectes réseau, des op érateurs, des vendeurs concernés par l' évolution d'Internet et de son architecture. l'IETF publie des RFC (Request for Comment) donnant des instrutions sur l'utilisation d'Internet. voir site IETF. voir RFC 1918 Intrusion : En réseau, la notion d'intrusion signifie qu'une personne malveillante a réussi à pouvoir lancer des commandes sur la machine dans laquelle elle s'est "introduite" sans y être autoris ée. IP : (Internet Protocol) Protocole - : Protocole de réseau (de niveau 3) non fiable, c'est à dire qu'on ne sait pas si les messages envoy és sont réceptionnés. IP fait communiquer des machines grâce aux adresses IP. Datagramme IP : Voir datagramme IPSec : Protocole IP sécurisé. Ce protocole encrypte les datagrammes IP afin de garantir leur intégrité. IL s'occupe de chiffrer non seulement les données présentes amis aussi l'entête. Mandataire : Persone à qui on délègue un service, par exemple on délègue à un mandataire automobile l'achat d'une voiture. NAT : (Network Adress Translation) Ce mécanisme de translation d'adresses permet de routeur sur Internet les adresses privées d'un réseau. Voir exposé . NAT est souvent associé à PAT (translation de Port). Voir PAT NetBios : L'interface NetBios permet d'établir des communications poste à poste. C'est un progicile d'interface entre le système d'exploitation d'un ordinateur et les applications. Ce standard permet de g érer les échanges entre ordinateurs dans un réseau. OSI (modèle) : C'est un plan de base mis au point par l'ISO (International Standard Organization), qui définit comment seront envoy és les paquets d'informations sur les réseaux
Vous pouvez aussi lire