Vous êtes sur la page 1sur 8

Linux scurit des rseaux

serveurs mandataires (proxy)

fbongat@ipsl.jussieu.fr 2007 - 2008

Proxy
Qu'est-ce qu'un proxy ?
Proxy = mandataire (traduction) Un proxy est un service mandataire pour une application donne.
C'est dire qu'il sert d'intermdiaire dans une connexion entre le client et le serveur pour relayer la requte qui est faite. Ainsi, le client s'adresse toujours au proxy, et c'est lui qui s'adresse ensuite au serveur.

Proxy
Permet de casser compltement la connectivit directe linternet des machines internes => possibilit de fermer tous les ports entre les machines d'un rseau interne et de linternet Ne peuvent tre utilises que des applications supportes par un relais applicatif
Exemples :
telnet, ftp vers une machine passerelle puis vers linternet cache Web (squid) serveur relai de messagerie existence de relais transparents pour certaines applications protocoles ddis comme socks

Proxy
Fonctionnalits des serveurs
Fonctions de cache Fonction de d'enregistrement Fonction de filtre Fonction de scurit Autres fonctions

Proxy
Fonction de cache
Le client conserve en mmoire toutes les requtes effectues par le client Permet de conserver localement les informations afin d'tre rutilises ultrieurement Consquence
le cache acclre les consultations des informations dj demandes, le trafic rseau en est diminu Rduit les malveillances

Proxy
Fonction d'enregistrement
Le serveur garde une trace dtaille de toutes les informations qui le traversent Gnre un fichier journal (fichier de log).
enregistre la trace des requtes effectues par tous les clients utilisant le proxy.
Lidentification du client, les dates et heures de connexion, Les URL des ressources consultes, les tailles et temps de tlchargement, etc.

Proxy
Fonction de filtre
Mise en place de filtre au niveau des requtes
Analyse des paquets qu'il reoit et agit ainsi en fonction de la politique de scurit choisie

Fonction de scurit
fonction d'authentification Serveur permettant de protger les postes clients d'agressions extrieures
Protge des attaques via des accs directs Attention un proxy n'est pas un firewall !

Proxy
Fonction d'anonymat
Les requtes relayes par un serveur peuvent ne pas contenir d'adresse du client, de manire protger leur anonymat

Avantages du proxy
Il est capable d'interprter le trafic et notamment de mettre en cache les informations. On diminue ainsi le trafic et augmente la bande passante de la mme occasion. On peut aussi autoriser ou non l'accs certaines parties d'un site, certaines fonctionnalits, etc. On a donc un bon contrle de ce qui transite sur le rseau, et on sait quels protocoles peuvent circuler.

Proxy
Proxy transparent
Le principe :
Le rseau est configur avec une passerelle par dfaut et un serveur DNS. Chaque requte est automatiquement , et de manire invisible renvoye vers le proxy par le routeur/firewall. Le serveur proxy relaye la requte sur le serveur Internet et stocke l'information dans son cache. Le client croit ainsi dialoguer avec le serveur internet , mais en ralit, elle ne dialogue qu'avec le serveur proxy.

Proxy : squid
Informations :
Logiciel GNU GPL, fonctionne sur Windows/Unix le site : http://www.squid-cache.org/ Rle de proxy web pour les services http, https et ftp

Le service squid supporte


le cryptage SSL, une gestion des accs volus, une journalisation complte des requtes association avec SquidGuard (redirecteur URL + blacklists)

Proxy : squid
Utilisation du protocole ICP (Internet Cache Protocol)
les caches de squid peuvent tre rfrencs :
Par hirarchie, Par sites visits pour minimiser la bande passante utilise

Le paquetage squid contient:


un programme principal nomm squid , un support pour les applications externes (DNS, ftp) des outils de rcriture de requtes et d'authentification, des outils de gestion.

Mode transparent : utiliser Iptables pour configurer SQUID sous linux

Proxy : squid
Configuration de squid : fichier squid.conf
Options rseau
http_port 3128 : c'est le port sur lequel travaille le cache, 3128 par dfaut, certains dplacent ce port en 8080 visible_hostname : c'est le nom du serveur squid depuis les resaux externes icp_port 3128 : c'est le port sur lequel le cache peut tre interrog par un autre serveur cache_peer hostname type http_port icp_port : dfinition des serveurs de cache voisins avec lesquels on communique

Configuration principale du cache


cache_mgr admin@formation.jussieu.fr : c'est le nom de l'administrateur du serveur de cache cache_dir ufs /var/cache 3200 16 256 : indique le rpertoire devant accueillir les informations, avec en paramtre la le type, taille disque (Mo), le nombre de rpertoires niveau et sous niveau pour le cache

Proxy : squid
Configuration de squid : fichier squid.conf
Configuration user et logs
cache_effective_user/group nobody nobody : donne des droits un utilisateur/un groupe pour squid (viter root)
attention aux droits des fichiers de logs

cache_access_log /var/log/squid/access.log : indique le fichier log des requtes appeles cache_log /var/log/squid/cache.log : fichier journal de squid cache_store_log none : pour ne pas enregistrer dans un fichier de log les critures et effacements d'informations (trs verbeux)

Proxy : squid
Configuration de squid : fichier squid.conf
Rgles d'accs au service
acl HOST_AUTORISE src 10.1.0.0/255.255.0.0 : on dfinit les rseaux ou les machines autorises http_access allow HOST_AUTORISE : on autorise les accs http aux machines dfinit dans l'acl HOST_AUTORISE http_access deny all : on interdit toutes les autres

Rgles d'accs une hirarchie de cache


icp_access allow 192.168.1.10 : on autorise les accs icp des machines souhaites icp_access deny all : on interdit toutes les autres

Proxy : squid
Configuration de squid : fichier squid.conf
Authentification :
auth_param basic program ncsa_auth /etc/squid/users.mdp :

programme qui gre l'authentification dans squid auth_param basic realm Serveur Proxy de la FP : bote de dialogue renvoy l'utilisateur auth_param basic credentialsttl 4 hours : dure de la session acl USERS proxy_auth REQUIRED : cration d'une liste d'accs pour utiliser le proxy. User: liste des utilisateurs autoriss http_access allow USERS : j'autorise la liste http_access deny all : je refuse les autres

Proxy : squid
Validit et rafrachissement du cache
Via deux directives : le proxy jugera quant la faon dont il doit soit recharger la page demande depuis le site original, soit fournir directement la page de son cache.
La directive reload_into_ims on
permet de passer directement la page un client sans la recharger mme si celui-ci le demande explicitement, la condition toutefois que la page dans le cache soit jour. Le mandataire vrifie la validit de cette condition en passant une requte au serveur distant avec l'argument if-modified-since.

La directive refresh_pattern
Utilisation d'un algorithme de gestion du rafrachissement de Squid pour contrler la validit des informations.

Proxy : squid
Algorithme de gestion du rafrachissement
Squid utilise trois types de variables dans sa dtermination : des variables correspondant l'objet enregistr, une variable fournie par le client et des variables paramtres dans le fichier de configuration
Un objet dclar frais est fourni directement au client. S'il est prim , alors une requte if-modified-since est envoye au serveur distant

Algorithme
refresh_pattern [-i] <url_regexp> MIN_AGE PERCENT MAX_AGE <options> Les variables qui permettent de rgler le comportement du cache sont MAX_AGE, PERCENT et MIN_AGE refresh_pattern ^http 1440 10% 10080 : 1440 est le temps minimum de rafrachissement (min), 10% la diffrence entre le temps de la dernire modification de l'objet et l'heure actuelle, 10080 le temps maximum de rafrachissement (min)

Proxy : squid
Algorithme de gestion du rafrachissement
requte du client

PERIODE
volution dans le temps Prcdente entre dans le cache Nouvelle entre dans le cache

Rgles:
Si PERIODE max (fournie par le client) est dfini et que PERIODE y est suprieur, l'objet est dclar prim Si PERIODE est infrieur ou gal PERIODE min(configuration du serveur), l'objet est dclar frais Si le serveur envoi un ordre de rafrachissement (dfini et dpass), l'objet est dclar prim Si PERIODE est suprieur PERIODE max, l'objet est dclar prim Si le rapport entre AGE et la dure de la priode de l'entre prcdente est infrieure au %, l'objet est dclar frais Aucune autre rgle n'ayant abouti dans la dtermination de la fracheur de l'objet, celui-ci est dclar prim

Proxy : squid
Proxy transparent avec squid
Firewall (iptables) et le proxy (squid) sur la mme machines
Avec un firewall grant son LAN (192.168.216.0) et un accs Internet, avec le service de proxy embarqu :
Soit le firewall/proxy avec l'adresse IP 192.168.216.2

La rgle iptables s'crira pour une redirection http:


iptables -t nat -A PREROUTING \ s 192.168.216.0/255.255.255.0 \ -p tcp -m tcp --dport 80 -j REDIRECT --to-port 3128

Ne pas oublier de vrifier les ACL d'accs dans squid.conf

Proxy : squid
Proxy transparent avec squid
Firewall (iptables) et le proxy (squid) sur deux machines diffrentes, et le serveur proxy dans une DMZ
Avec un firewall associ 3 rseaux, un rseau local LAN (192.168.216.0), une DMZ (10.1.0.0), et un accs Internet
Soit le serveur proxy avec l'adresse IP 10.1.0.2

La rgle iptables s'crira alors :


iptables -t nat -A PREROUTING -s 192.168.216.0/255.255.255.0 \ -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.1.0.2:3128

Ne pas oublier de modifier les ACL d'accs dans squid.conf

Reverse Proxy
Reverse proxy = proxy l'envers
Permettre des clients externes d'utiliser un service interne
achemine des requtes extrieures vers le ou les serveurs du rseau interne (ou rseau distribu) vite de trop exposer les serveurs frontaux (web), en les plaant derrire un serveur scuris
Un serveur web est protg des attaques directes de l'extrieur

rpartie la charge pour encaisser des grosses demandes Dans une architecture o chaque serveur Web possde une fonction bien particulire (applications, gestion des images, gestion des sessions...), le reverse proxy redirige le trafic vers le serveur concern.

Reverse Proxy
Attention devient l'lment sensible de l'architecture implantation dans une DMZ garde les proprits d'un proxy
Utilise SSL (avec l'acclration hardware) amlioration des performances rseau via les caches ou/et un load balancing Les caches HTTP, HTTPS rduisent de faon drastique la charge des serveurs Web Multiplexage des sessions HTTP(S) avec possibilit de KeepAlive "synchrone" ou "asynchrone" vers le Web Les reverse proxy peuvent faire office de machines intermdiaires pour la compression de donnes

Quelques reverses proxy: squid, apache, Microsoft ISA

Cest fini !!