Professional Documents
Culture Documents
mots clés:
proxy, performance, sécurité, IDPS, cache, serveur
1. Introduction ...................................................................................................... 4
1.1. Définition............................................................................................................... 4
1.2. Bénéfices des proxys............................................................................................. 4
5. Conclusion........................................................................................................ 19
6. Références........................................................................................................ 20
6.1. Documents normatifs.......................................................................................... 20
6.2. Article Web........................................................................................................ 20
6.3. produits............................................................................................................... 21
1. Introduction
1.1.Définition
Le proxy ou serveur mandataire est un serveur informatique qui a pour fonction de relayer des
requêtes entre un poste client et un serveur, afin d'assurer une passerelle vers une application
de haut niveau. L'utilité des serveurs mandataires est importante, notamment dans le cadre de
la sécurisation des systèmes d'information.
Le logiciel de serveur proxy les plus célèbre sont les serveurs proxy web, comme par exemple
Squid.
A cette définition issue de Wikipédia, on comprend que le proxy à un rôle spécial par rapport
au modèle client serveur: il est intercalé entre le client et le serveur, avec la particularité de
s'intercaler au niveau applicatif. Il ne reste qu'à dérouler les conséquences de ce décalage et de
tous les avantages que l'architecte réseau peut en tirer.
3. Les proxys sont des relais intelligent du réseau qui peuvent être utilisé
1. pour équilibrer la charge des serveurs,
2. associé avec d'autres éléments pour sécuriser un segment de réseau,
3. de façon invisible ou non.
Puisque le bénéfices qu'on verra sont réels, on indiquera aussi les limites qui leurs sont
intrinsèques: on observe par exemple qu'il y a une condition sinequa none pour utiliser un
serveur proxy en tant que passerelle applicative. Il faut que le protocole transporté supporte les
altérations sur les requêtes ou les données qui pourraient être introduite par le « proxy ». Ceci
réduit le champs d'action des proxy sur les connexions sécurisées.
L'idée de base est de dire que si on télécharge une fois la page d'accueil de Google et qu'on la
distribue localement à chaque nouvelle demande on économise de la bande passante. Cette
idée n'est pas dénuée de fondements mail quelques éléments permettent de la discuter.
La mise en cache, c'est à dire l'action de stocker un document dans le serveur proxy afin de
l'avoir à disposition en prévision d'une prochaine requête est extrêmement problématique.
Dans le contexte WEB, Cisco a développé un protocole propriétaire afin de permettre un soit
disant meilleur dialogue entre les caches et les routeurs. Il s'agit du Web Cache
Communication Protocol disponible en version 2 à partir de l'IOS 12.0.
L'autre point important c'est que le serveur proxy-cache n'est pas en mesure d'intervenir sur les
flux chiffrés car il ne peut simplement pas les interpréter. Les flux chiffrés sont les flux de
données utilisant IPSec ou SSL ( HTTPS, FTPS dans l'exemple du Web).
C'est là ou on comprend que le proxy doit nécessairement avoir une bonne compréhension du
protocole transporté. HTTP est un protocole idéal à observer pour comprendre le
fonctionnement du proxy. En effet, comme tout stockage intermédiaire, on a des difficultés à
savoir quoi mettre en cache et pour combien de temps.
En effet, ce protocole, lorsqu'il transmets un document ajoute des méta-données qui sont en fait
les commandes du protocole. HTTP permet d'expliciter le statut du document vis-à vis de la
mise en cache. La RFC 2616 décrit plusieurs header pouvant être interprété par les caches
( 14.9, 14.19, 14.20, 14.21, 14.24 à 14.29). Le but est de contrôler si le fichier à été modifié
depuis le dernier transfert, de vérifier si le fichier n'a pas été modifié, de vérifier s'il n'a pas
expiré.
Cette approche est une approche collaborative des proxy web. En effet l'application doit
prendre en compte les headers spéciaux pour tirer partie de ces fonctionnalités. Cette approche
est réaliste dans le cadre d'un intranet car toutes les pièces de celui-ci seront contrôlé par une
volonté centralisée (DSI...).
Dans le cadre « internet », rien n'est moins évident: on a aucune garantie que le mécanisme
sera largement utilisé. C'est donc au cache de prendre une décision en ce basant sur la
connaissance du fichier qu'il aura. Selon sa configuration le cache peut se résoudre à stocker
les documents correspondant à certains types mimes, comme les images.
Les objets difficilement cachables sont les pages dynamiques parce que puisqu'elles sont
générées à la volée, elles peuvent devoir être unique. Dans ce cas, il faudra que l'application qui
génère les pages gère le cache explicitement, ce qui est assez rarement déployé.
2.1.5.Cache de niveau 2
Tous les navigateurs modernes utilisent des caches locaux pour effectuer plus rapidement le
rendu des pages. Ceci a pour conséquence que le proxy cache devient de fait un cache de
niveau 2, mais toujours sans l'intelligence lui permettant d'anticiper les demande qu'on lui fera.
Le premier avantage de cette méthode est la performance puisque on va séparer les fonctions
de génération de données et leurs distribution. Ce n'est pas exactement le même service vendu
par les société de distribution de contenu comme Akamai ou Velocix, mais le principe est
voisin.
Les reverse-proxy doivent collaborer avec les applications qu'ils distribuent: le minimum en
étant compatible ou sinon en établissant un mécanisme transparent pour l'utilisateur. Dans le
cas d'un serveur web le plus simple est de déclarer le serveur proxy comme serveur web dans le
DNS. Dans ce cas l'utilisateur est complètement aveugle du fonctionnement réel de
l'infrastructure d'hébergement.
Le proxy peut avoir en plus de sa fonction de distribution, le rôle de bout d'un tunnel SSL, ainsi
la fonction cache n'est pas gênée le chiffrage des données. Pour les produits qui sont capables
de gérer plusieurs serveur applicatif simultanément mais lorsqu'on ne dispose que d'un unique
certificat, c'est une solution efficiente. L'inconvénient majeur que l'on trouve dans ce cas c'est
que le proxy sera un « single point of failure », c'est à dire le point faible de l'infrastructure en
terme de disponibilité.
Ils sont souvent configuré pour être transparents et sont invisibles à l'utilisateur.
La majorité des documents témoignent que ses techniques ont eu des effets négatifs, comme
l'incompréhention des webmestre sur les adresses vues dans les logs ou pas d'effet du tout côté
client.
Il semble paradoxal que l'on puisse obtenir un gain significatif alors qu'à priori le
recouvrement des besoin est faible. Ce paradoxe peut se résoudre si on ajoute les hypothèses
fortes suivantes:
● il faut que la population d'utilisateur aient des besoins fortement correlés, par exemple
une classe, une même équipe,
● les pages consultées sont le sont suffisament souvent (minimum d'utilisateurs),
● les besoins des utilisateurs sont restreints afin de ne pas mettre en cache tout internet
(maximum d'utilisateur).
On pourrait aussi se demander si le gain offert de temps en temps par le proxy est suffisant
pour compenser la latence sur le réseau causée par les cache miss, c'est à dire lorsque le proxy
est obligé de recharger la page dans son cache.
Cependant on trouve plusieurs études démontrant l'utilité des proxy et même des études sur la
Parce qu'il est opensource et largement adopté, squid possède un grand nombre d'outils pour
évaluer l'efficacité du cache, comme calamaris. voir http://www.squid-cache.org/Scripts/ .
Les difficultés liées aux services de caches sont bien connues et relativement circonscrites. Il
s'agit essentiellement de problèmes de synchronisation de documents. Ca peut-être génant dans
le cas d'une application web, ça l'est plus dans d'autres cas.
Beaucoup de services utilisent des systèmes similaires aux proxys. Par exemple le protocole
NTP ( Network Time Protocole ) utilise un arbre pour se synchroniser sur le serveur racine sur
les serveurs de strate 1.
L'implémentation d'un service DNS produit une mise en cache les dernières résolutions
effectuées afin de ne pas réitérer toujours les mêmes requêtes.
Des produits comme MS IAS ou FreeRadius sont capables d'être proxy pour le protocole IAS.
Enfin, dernier exemple, Oracle Connexion Manager est un proxy pour le client SQL Oracle. Ce
proxy est capable de gérer l'identité des clients, de faire de la réécriture de requête.
La grande diversité des clients s'explique par le fait que certaines entreprises utilise
systématiquement des proxys pour renforcer la sécurité des applications.
4.1. Contexte
Cette connaissance du protocole par le proxy va se concrétiser dans le protocole transporté: on
va pouvoir intervenir sur les options du protocoles, sur l'identité des utilisateurs et sur les
données transportées. La conséquence est que l'on peut détecter le transport de virus,
l'utilisation abusive du service, ou la tentative d'utilisation d'une faille de sécurité connue sur
une implémentation d'un serveur.
Les proxys sont un lieu de choix pour mettre en oeuvre des services de sécurité. Les serveurs
proxys sont des machines qui vont intercepter tous le trafic réseau. Au contraire des
commutateurs de niveau 2,3 et 4, le proxy va interpréter les données au niveau applicatif. Cela
lui donne la possibilité de rassembler les paquets fragmentés afin d'avoir une vision extensive
des données et éventuellement les interpréter.
Les services que l'on exécute le plus souvent sur des serveurs sont un service de détection et de
prévention d'intrusion et tout ce qui peut servir à valider les requêtes qui vont traverser le
proxys.
Les Appliances Arkoon FAST360 sont capables d'avoir des fonctionnalité IDPS pour un jeu de
protocoles courant. Ce sont les modules FAST dans la terminologie Arkoon. On observe ses
modules pour les protocoles HTTP, FTP, SMTP... On constate que les commandes du
protocoles et les données sont analysées par plusieurs règles de bon usage du protocoles et les
données sont scannées à la volée à la recherche de signature de virus connus et de signature de
spam connues.
Pour être précis, l'antivirus est soustraité chez Sophos et l'antispam chez Dolphian et bientôt
chez CommTouch.
4.2.1.Problèmes
L'avantage ultime du pare-feu est de permettre d'améliorer la sécurité des réseaux avec un
proxy de type « reverse proxy ». Il y a de nombreux avantages qui lui permettent de répondres
à ce problème.
● Le filtrage par ACL ou State Full Packet Inspector n'est pas suffisant, parce qu'on veut
ouvrir un port sur internet,
● Les scénaris d'attaques sont souvent long et compliqués, utilisent des failles
applicatives et évadent totalement les mesures prises au niveau 4 car elles ne vérifiées
pas les requêtes,
● Renforcer la sécurité du serveur n'est pas possible car c'est une boite noire livrée par le
fournisseur,
● Installer des patches pour enlever les vulnérabilités connues et corrigées revient à
prendre le risque qu'un serveur en production s'arrête de fonctionner,
● Installer des patches contraint à revalider l'installation du serveur, afin de vérifier si
toutes les extensions utilisées sont compatibles ( ou que les mises à jours sont
disponibles ),
● Il est impossible de mettre à jour car le logiciel n'est pas supporté ou les failles ne sont
pas corrigées suffisament rapidement,
● Il est trop couteux pour vous de changer les serveurs,
● Il est intéressant d'avoir un système qui peut détecter les vulnérabilités non encore
connue,
● Contrôler l'accès aux ressources.
La solution typique est d'ajouter un reverse proxy en plus du pare-feu. On constitue une
DMZ dédiée au reverse proxy et on isole cette DMZ d'internet avec un parefeu SPI et aussi
du réseau local avec un autre pare-feu.
La structure logique ressemble à la maquette lorsque le proxy est joué par l'appliance.
Cependant, cette solution n'est pas ultime et n'interdit pas de configurer correctement le
serveur de production, elle ajoute une machine qu'il faudra garantir contre la défaillance
et enfin, on augmente la latence sur le lien.
Il faut ensuite utiliser un système IDPS de bonne qualités, il existe des techniques simple
pour tenter d'echaper aux IDPS qui font du string matching.
Sur les Appliances Arkoon, le fait d'exécuter un antivirus sur les flux provoque un
ralentissement du téléchargement au fur et à mesure que la taille du fichier augmente.
5. Conclusion
Le reverse proxy en tant que cache (distribué) pour fournir des données ne pourra pas non
plus disparaïtre: c'est le fond de commerces de grandes entreprises de l'internet.
Il est difficile de se passer des services d'antivirus réseau ou d'antispam, ce qui indique
que le proxy aura toujours un rôle à jouer, même si les constructeurs de routeurs ont
tendances à vouloir occuper le marché du reverse proxy pour l'aspect sécurité.
6. Références
● RFC 3143 Known HTTP Proxy/Caching Problems http://tools.ietf.org/html/rfc3143
● RFC 2616 Hypertext Transfer Protocol HTTP/1.1 http://tools.ietf.org/html/rfc2616
● Serveur proxy ou mandataire, firewall ou parefeu JeanClaude Sohm
http://cerig.efpg.inpg.fr/Note/2002/proxy2.htm
● RR4782.pdf (Objet application/pdf) Online Measurement of Web Proxy Cache
ftp://ftp.inria.fr/INRIA/publication/publipdf/RR/RR4782.pdf
● Squid weekly Proxy Report (27.Jan 08 06:47:20 03.Feb 08 04:45:23)
http://calamaris.nanthrax.net/weekly.html
● Jesse Caulfield » Blog Archive » A Discussion of Caching Proxy Services
http://netthink.com/archives/164
● Caching Proxies: Limitations and Potentials
http://ei.cs.vt.edu/~succeed/WWW4/WWW4.html
● Caching Tutorial for Web Authors and Webmasters http://www.mnot.net/cache_docs/
● IDS Evasion Techniques and Tactics http://www.securityfocus.com/infocus/1577
● Webmaster.Info : Informations sur le proxy AOL http://webmaster.aol.fr/proxyinfo.html
● Calamaris Home Page http://cord.de/tools/squid/calamaris/Welcome.html.de
6.3. produits
● Arkoon Présentation et points forts http://www.arkoon.net/FAST360R.html
● DOLPHIAN Core Engines For Dynamic Content Filtering
http://www.dolphian.com/antispam_for_isp.php
● AntiSpam Engine AntiSpam Layer AntiSpam OEM
http://www.commtouch.com/site/Products/anti_spam_sdk.asp
● Snort.org http://www.snort.org/
● Squid .http://www.squidcache.org/
● Squidgard http://www.squidguard.org/
● DLFP: MySQL Proxy http://forge.mysql.com/wiki/MySQL_Proxy
● Web Cache Communication Protocol v2 Cisco Systems
http://www.cisco.com/en/US/docs/ios/12_0t/12_0t3/feature/guide/wccp.html
● Configuring Oracle Connection Manager http://download
west.oracle.com/docs/cd/A97630_01/network.920/a96580/cman.htm