ADF 2009. Reverse Proxy. Thierry DOSTES tdostes@ifr88.cnrs-mrs.fr

Documents pareils
Fonctionnement et mise en place d un reverse proxy sécurisé avec Apache. Dimitri ségard 8 mai 2011

Aide à la Détection de Faiblesses d un site Web Mandataire inverse, Modsecurity

Linux sécurité des réseaux

Proxy et reverse proxy. Serveurs mandataires et relais inverses

Apache en tant que reverse proxy

TP N 2. Mise en œuvre d un Reverse Proxy Apache. Installation et configuration de ModSecurity 2.1

UE5A Administration Réseaux LP SIRI

SQUID P r o x y L i b r e p o u r U n i x e t L i n u x

La Latecion protection anti-intrusion Web Web Le concept «Zero effort Security» La protection des applications Extranet

Le serveur web Apache

Mandataires, caches et filtres

MANUEL D INSTALLATION D UN PROXY

Le filtrage de niveau IP

Module 7 : Configuration du serveur WEB Apache

FICHE PRODUIT COREYE CACHE Architecture technique En bref Plateforme Clients Web Coreye Cache applicative Références Principe de fonctionnement

Zemma Mery BTS SIO SISR. Session Projets Personnels Encadrés

Présentation de la solution Open Source «Vulture» Version 2.0

Sécuriser les applications web

1 LE L S S ERV R EURS Si 5

Présentation du relais HTTP Open Source Vulture. Arnaud Desmons Jérémie Jourdin

Configurer Squid comme serveur proxy

Serveur Subversion Debian GNU/Linux

But de cette présentation. Proxy filtrant avec Squid et SquidGuard. Serveur proxy. Serveur proxy. Hainaut P

Serveur Web Apache - SSL - PHP Debian GNU/Linux

Application des Spécifications détaillées pour la Retraite, architecture portail à portail

Ubuntu Linux Création, configuration et gestion d'un réseau local d'entreprise (3ième édition)

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

Hébergement de site web Damien Nouvel

Mise en place d un serveur Proxy sous Ubuntu / Debian

Hébergement de sites Web

Un reverse proxy, pour quoi faire?

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

TP HTTP. Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A

Dans l'épisode précédent

Plan. Présentation du logiciel Sympa Architecture La gestion des hôtes virtuels Listes avec inclusion des abonnés Les modules d authentification

Aperçu technique Projet «Internet à l école» (SAI)

Architecture et infrastructure Web

WEB APPLICATION FIREWALL AVEC APACHE ET MOD_SECURITY

07/03/2014 SECURISATION DMZ

LemonLDAP::NG / SAML2. Xavier GUIMARD (Gendarmerie Nationale) Clément OUDOT (Groupe LINAGORA)

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

Chapitre 1 Windows Server

Introduction à Sign&go Guide d architecture

Cours CCNA 1. Exercices

«clustering» et «load balancing» avec Zope et ZEO

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

Spécialiste Systèmes et Réseaux

Cisco Certified Network Associate

Catalogue «Intégration de solutions»

1 La visualisation des logs au CNES

WebSSO, synchronisation et contrôle des accès via LDAP

Réseaux. Moyens de sécurisation. Plan. Evolutions topologiques des réseaux locaux

Bind, le serveur de noms sous Linux

Projet Système & Réseau

Apache 2.4 Installation et configuration

Ce document décrit une solution de single sign-on (SSO) sécurisée permettant d accéder à Microsoft Exchange avec des tablettes ou smartphones.

SERVEUR HTTP Administration d apache

Sécurité des réseaux Firewalls

Serveur FTP. 20 décembre. Windows Server 2008R2

Authentification centralisée et SSO Sujet. Table des matières. 1 ORGANISATION Mode de rendu Informations complémentaires 1 2 SUJET 2

Gestion d identités PSL Installation IdP Authentic

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Les serveurs WEBUne introduction

SQUID Configuration et administration d un proxy

Supplément de renseignements : Examens d applications et pare-feux d applications web clarifiés Normes : Normes en matière de sécurité des données de

Présentation Serveur Apache et pour RePeGlio

Etude de l ENT de l Université de Paris 5. Recommandations des experts suite à la journée du 29 octobre 2009

Caches web. Olivier Aubert 1/35

SECURIDAY 2012 Pro Edition

25/08/2013. Vue Nagios. Vue Nagios. Le réseau du lycée

Proxy SQUID sous Debian

AccessMaster PortalXpert

CIBLE DE SECURITE CSPN DU PRODUIT PASS. (Product for Advanced SSO)

Préparation d un serveur Apache pour Zend Framework

Squid. Olivier Aubert 1/19

Formations. «Produits & Applications»

LINUX - Sécurité. Déroulé de l'action. - 3 jours - Contenu de formation

ECOLE POLYTECHNIQUE DSI. Utilisation des serveurs mandataires («proxy») avec les protocoles d usage courant

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

Vulnérabilités et solutions de sécurisation des applications Web

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

DenyAll Protect. Sécurité & accélération. Parefeux pour applications et services Web. de vos applications.

FORMATION CN01a CITRIX NETSCALER

Windows Server 2012 R2 Administration

RTE Technologies. RTE Geoloc. Configuration avec Proxy ou Firewall

TR2 : Technologies de l'internet. Chapitre VI. NAT statique et dynamique Overloading (PAT) Overlapping, port Forwarding Serveur Proxy, DMZ

APPLICATIONS WEB ET SECURITE

Figure 1a. Réseau intranet avec pare feu et NAT.

Mettre en place un accès sécurisé à travers Internet

SAML et services hors web

Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet

CAS, la théorie. R. Ferrere, S. Layrisse

Firewall IDS Architecture. Assurer le contrôle des connexions au. Sécurité 1

Le Tunneling DNS. P.Bienaimé X.Delot P.Mazon K.Tagourti A.Yahi A.Zerrouki. Université de Rouen - M2SSI. 24 février 2011

Mise en place d annuaires LDAP et utilisation dans plusieurs applications

TUTORIAL ULTRAVNC (EDITION 2)

Oléane VPN : Les nouvelles fonctions de gestion de réseaux. Orange Business Services

«Clustering» et «Load balancing» avec Zope et ZEO

Transcription:

ADF 2009 Reverse Proxy Thierry DOSTES tdostes@ifr88.cnrs-mrs.fr 1

Définition d un serveur mandataire Un proxy (ou serveur mandataire) : agit comme une passerelle et un filtre pour accéder à l Internet. retransmet les requêtes envoyées par les machines locales. permet une diminution de la bande passante utilisée en offrant un mécanisme de cache. est visible pour les clients qui l utilisent. Le proxy permet le filtrage des ressources rapatriées (analyse virale du contenu des pages, analyse des scripts dans les pages, etc.). Utilisé en corrélation avec une journalisation de l activité, les traces d utilisation d un serveur proxy permettent de lister les tentatives d accès à des sites interdits et d obtenir des statistiques sur l utilisation de la bande passante (sites les plus accédés, utilisateurs les plus «gourmands»). 2

Définition d un Reverse Proxy Un reverse proxy est un relais inversé. Il donne l accès depuis l Internet à des services Web situés sur un réseau local. Il dialogue avec le client en se substituant au serveur vers lequel il relaie les requêtes. 3

Avantages d un Reverse Proxy (1) Les clients n ont pas connaissance du système mis en place. Le service peut optimiser les performances en assurant des fonctions de cache. Il offre aussi des fonctions de sécurité. ex : contrôle d accès par adresse IP ou par authentification auprès d un annuaire LDAP. Il devient le point d entrée unique aux services Web : filtrage. centralisation des traces et de la gestion des erreurs 404. Par exemple, un serveur Reverse Proxy peut être utilisé en frontal de serveur d applications tels que Zope. Les logs d un reverse proxy permettent d inventorier les clients sollicitant le serveur applicatif, de lister les adresses accédées et de connaître le contenu des requêtes (partie DATA des requêtes HTTP). 4

Avantages d un Reverse Proxy (2) Il permet de répartir les applications Web sur différents serveurs. Il propose des mécanismes de répartition de charge. Il est possible de : réécrire les requêtes http qui sont relayées (ex : avec ModSecurity). mettre en œuvre des terminaisons SSL : pour ajouter https à des serveurs qui en sont dépourvus. pour alléger la charge du serveur cible. L approche idéale est qu une seule application Web soit hébergée sur un serveur, pour limiter les risques de sécurité et augmenter la disponibilité des services en cas de problème. Grâce aux technologies de virtualisation, il est possible de mettre en œuvre ce type d architecture tout en conservant un budget matériel raisonnable. 5

Inconvénients d un Reverse Proxy Le reverse proxy devient un point central : son indisponibilité entraîne celle de tous les serveurs auxquels il se substitue. Une compromission peut avoir un impact fort si le cache contient des données importantes. Les politiques de contrôle d accès doivent se faire au niveau du reverse proxy. L ajout d un reverse proxy complexifie la topologie du réseau. Il y a une rupture des flux SSL. Les serveurs situés derrière le reverse proxy ne voient que son adresse IP. Il est donc indispensable de mettre en œuvre les politiques de contrôle d accès à son niveau (ex : filtrage IP, authentification LDAP). 6

Reverse Proxy : pourquoi et comment? Mettre à disposition depuis l extérieur certaines applications : fournir une communication chiffrée entre l application et le client Web. ajouter une authentification supplémentaire si nécessaire. filtrer les données envoyées par le navigateur. Simplifier/contourner l établissement de règles sur un pare-feu (ex : hébergeur). Déléguer la gestion de sites Web. 7

Reverse Proxy : un exemple Mettre à disposition depuis l extérieur une application propriétaire : Nous possédons une application interne qui est accédée au sein du réseau interne via l URL http://monapp.mon-domaine-interne/. Nous souhaitons y accéder depuis l internet par l intermédiaire de l adresse : https://monapp.mon-entreprise.fr. Analysons d abord quels sont les éléments concernés par cette mise à disposition de l application : -au sein du réseau interne, lors des accès à l application via l adresse interne, toutes les requêtes HTTP et tous les entêtes de ces requêtes (par exemple les champs Location: ou SetCookie: ) font référence au nom DNS interne de l application. -le contenu des pages générées par le serveur peut utiliser des références au nom DNS interne de l application. Le reverse proxy nous fournit des mécanismes qui nous permettent de réécrire les requêtes arrivant sur l adresse https://monapp.mon-entreprise.fr en requêtes sollicitant l adresse http://monapp.mon-domaine-interne/. 8

Quelques logiciels (1) Le choix d une solution reverse proxy se fait suivant les fonctionnalités du serveur. Voici quelques critères essentiels : gérer les hôtes virtuels. offrir des mécanismes SSL. disposer d un mécanisme de cache. permettre la réécriture des adresses (URLs). 9

Quelques logiciels (2) Squid : Mécanisme de cache. Gestion des hôtes virtuels (depuis les versions 3.x). Rapide et stable. Pound : Développé pour servir de solution frontale aux serveurs d applications Zope. Mécanisme SSL. Equilibrage de charge. Détection de panne de l un des serveurs. 10

Quelques logiciels (3) Apache : Mécanisme de cache. Gestion des hôtes virtuels. Terminaisons SSL. Modules de réécriture des adresses. Protection des applications Web à l aide de modules dédiés. (ex : mod_evasive, mod_security). Varnish : Accélérateur HTTP. Equilibrage de charge et détection de panne. Réécriture des adresses. 11

Reverse Proxy d Apache 12

Présentation des modules Apache fournit plusieurs modules pour gérer les fonctions de reverse proxy : mod_proxy : activation de la passerelle. mod_proxy_http : gestion des requêtes HTTP effectuées auprès de la passerelle. mod_proxy_ftp : gestion les requêtes FTP. mod_cache : mise en place d un système de cache. mod_proxy_balancer : répartition de charge entre plusieurs serveurs. 13

Configuration du reverse proxy (1) Installons le serveur Apache2 : apt-get install apache2 apache2-doc Chargeons les modules permettant d activer le reverse proxy pour les requêtes HTTP : a2enmod proxy proxy_http La configuration du reverse proxy se fait dans le fichier : /etc/apache2/mods-enabled/proxy.conf 14

Configuration du reverse proxy (2) Désactivons la fonction de proxy ouvert : ProxyRequests Off Une redirection de type reverse proxy peut être activée de deux façons différentes : en utilisant la directive ProxyPass. En invoquant la directive RewriteRule avec le flag [P]. ProxyPass /intranet/ ProxyPass /service_info/ http://192.168.1.40/ http://192.168.1.20/spip/ 15

Configuration du reverse proxy (3) Mettons en place une politique de filtrage pour l accès à l Intranet : Les utilisateurs du réseau local peuvent accéder. Les utilisateurs du réseau externe doivent s authentifier auprès de l annuaire (requiert le module mod_authnz_ldap). <Proxy http://192.168.1.40/> AuthType Basic AuthName "Zone Intranet IFR 88" AuthLDAPURL "ldap://ldap.ifr88.glm:389/ou=accounts,dc=ifr88,dc=cnrs,dc=fr" AuthBasicProvider ldap AuthzLDAPAuthoritative off require valid-user Order deny,allow Deny from all Allow from 192.168.1.0/255.255.255.0 Satisfy Any </Proxy> 16

Configuration du reverse proxy (4) Exemple de répartition de charge (après activation du module mod_proxy_balancer) : <Proxy balancer://webmail> BalancerMember http://192.168.1.50:80/ BalancerMember http://192.168.1.51:80/ </Proxy> ProxyPass /webmail balancer://webmail/ 17

Cas pratique : application Web (1) Contexte : Une application Web qui comporte dans son code HTML des références «en dur». (ex : liens HTTP, noms de domaines). Le module mod_proxy ne suffit pas : La directive ProxyPassReverse travaille uniquement sur les entêtes HTTP. Nous devons installer un module capable d agir sur le contenu des pages renvoyées par l application. Utilisons un module qui n est pas fourni en standard par Apache : mod_proxy_html. apt-get install libapache2-mod-proxy-html La documentation de ce module est contenu dans le répertoire /usr/share/doc/libapache2-mod-proxy-html/. 18

Cas pratique : application Web (2) Le module mod_proxy_html : scrute le contenu des pages et permet les substitutions au sein de la partie DATA. permet ainsi de réécrire les liens HTML dans une situation de proxy. Nous utilisons la directive ProxyHTMLURLMap pour définir les règles de réécriture des liens. Syntaxe : ProxyHTMLURLMap Lorsque un lien correspond au modèle, la partie correspondante est remplacée. Exemple : ProxyHTMLURLMap from-pattern to-pattern [flags] [cond] http://monapp.domaine.interne https://monapp.domaineentreprise.fr 19

Cas pratique : application Web (3) La directive ProxyHTMLExtended permet de spécifier les composants qui doivent être réécrits : Off : seuls les liens HTML contenus dans les pages sont modifiés. On : réécriture des liens, des feuilles de style et des adresses contenues dans les scripts. Contexte : dans le fichier proxy_html.conf : ProxyHTMLExtended On Dans certains cas, il peut être nécessaire de modifier également les entêtes des requêtes HTTP : Exemple : RequestHeader unset Accept-Encoding En résumé, dans le cas d applications contenant de nombreuses références codées en dur, l utilisation conjointe des directives ProxyPass et ProxyPassReverse ne suffit pas car elles travaillent uniquement sur les entêtes HTTP. En conséquence, nous utilisons le module mod_proxy_html qui permet la réécriture des adresses et autres références contenues à l intérieur des pages. Enfin, la directive RequestHeader permet de configurer l entête des requêtes HTTP. L option unset supprime l entête de requête correspondant au nom indiqué. Dans l exemple ci-dessus, le champ Accept-Encoding permet au navigateur de spécifier ses préférences en matière d encodage. Référence : http://www.apachetutor.org/admin/reverseproxies Merci à Eric pour ses multiples essais et ses retours d expérience. 20

Conclusions Une architecture à base de reverse proxy : donne une grande souplesse pour mettre à disposition des applications sur Internet. fournit de nombreux services à valeur ajoutée de manière transparente. offre la possibilité d intégrer un pare-feu applicatif en amont de l application. permet de répartir une application par serveur (en corrélation avec la virtualisation). 21

22