Mise en place d un reverse proxy



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

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

Cours admin 200x serveur : DNS et Netbios

ADF Reverse Proxy. Thierry DOSTES

WEB APPLICATION FIREWALL AVEC APACHE ET MOD_SECURITY

Exemple : vous voulez tester votre site en local avant de l uploader via FTP chez votre hébergeur externe.

07/03/2014 SECURISATION DMZ

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

1 Résolution de nom Introduction à la résolution de noms Le système DNS Les types de requêtes DNS...

Mise en place Active Directory / DHCP / DNS

Présentation du système DNS

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

GENERALITES. COURS TCP/IP Niveau 1

Installation de serveurs DNS, WINS et DHCP sous Windows Server 2003

Service de noms des domaines (Domain Name System) Cours administration des services réseaux M.BOUABID,

Editer un script de configuration automatique du proxy

Protocoles DHCP et DNS

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

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

INSTALLATION D UN SERVEUR DNS SI5

DNS ( DOMAIN NAME SYSTEM)

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

Fonctionnement Kiwi Syslog + WhatsUP Gold

Sécuriser les applications web

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

BIND : installer un serveur DNS

Load Balancing avec Apache 2 14/07/10

TAGREROUT Seyf Allah TMRIM

MANUEL D INSTALLATION D UN PROXY

DNS : Domaine Name System

Réaliser un inventaire Documentation utilisateur

Comment avoir le logiciel? Le serveur web APACHE peut être téléchargé gratuitement du site web de APACHE:

arcopole Studio Annexe 7 Architectures Site du programme arcopole :

Windows Internet Name Service (WINS)

MANUEL D INSTALLATION de GEONETWORK sur un serveur LINUX CentOS 4

JOMARON Sébastien BTS SIO 2012/2014. Titre de l activité: Surveiller des hôtes et des services avec NAGIOS

Mandataires, caches et filtres

Sur un ordinateur exécutant Windows 2000 Server Ayant une adresse IP statique

Préparation d un serveur Apache pour Zend Framework

Guide d installation

Eléments techniques tome I Installation Serveur Windows 2012

Proxy et reverse proxy. Serveurs mandataires et relais inverses

BTS SIO option SISR Lycée Godefroy de Bouillon Clermont-Ferrand

1. La plate-forme LAMP

Titre: Version: Dernière modification: Auteur: Statut: Licence:

Powershell. Sommaire. 1) Étude du cahier des charges 2) Veille technologique 3) Administration sur site 4) Automatisation des tâches d administration

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

Étude de l application DNS (Domain Name System)

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

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

Cours CCNA 1. Exercices

1 LE L S S ERV R EURS Si 5

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

Réglages du portail de P&WC

Contrôle Parental Numericable. Guide d installation et d utilisation

LOSLIER Mathieu. Filière Informatique et Réseau 1 ère année. TP DNS. Responsable : LOHIER Stephane. Chargé de TD : QUIDELLEUR Aurélie

Installation et configuration de Vulture Lundi 2 février 2009

6 1 ERE PARTIE : LES PRINCIPES DE BASE DE DNS

INSTALLATION DE WINDOWS 2000 SERVER POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

Accès au Serveur de PAIE «SPV» par INTERNET Paramétrage du poste de travail «Windows»

Troisième concours d ingénieur des systèmes d information et de communication. «Session 2010»

Procédure d utilisation et de paramétrage (filtrage) avec IPFIRE

Le serveur web Apache

Fiche Technique. Cisco Security Agent

Installation et configuration de base de l active Directory

Serveurs de noms Protocoles HTTP et FTP

Configuration du FTP Isolé Active Directory

RTE Technologies. RTE Geoloc. Configuration avec Proxy ou Firewall

VAMT 2.0. Activation de Windows 7 en collège

GUIDE D INSTALLATION DE L APPLICATION GECOL SUR

P R O J E T P E R S O N N A L I S E E N C A D R E

Club informatique Mont-Bruno Séances du 18 janvier et du 17 février 2012 Présentateur : Michel Gagné

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

Installation de Windows 2000 Serveur

3. Modifier la priorité Fichier Host/serveur DNS sous Windows

TP de réseaux : Domain Name Server.

Réalisation d un portail captif d accès authentifié à Internet

Administration Système & Réseau. Domain Name System Historique & Concepts Fonctionnalités & Hiérarchie Requêtes & Base de donnée DNS

Installer une caméra de surveillance

Documentation FOG. 3. Choisir le nom de la machine, le nom d utilisateur et le mot de passe correspondant (par exemple : fog, password)

VXPERT SYSTEMES. CITRIX NETSCALER 10.1 et SMS PASSCODE 6.2. Guide d installation et de configuration pour Xenapp 6.5 avec SMS PASSCODE 6.

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

Linux sécurité des réseaux

Windows serveur 2012 : Active Directory

VIDÉOSURVEILLANCE. Procédures de paramétrage des différentes box du marché

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

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

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée Virtual Server de Microsoft

Installation et configuration d un serveur DHCP (Windows server 2008 R2)

et Groupe Eyrolles, 2006, ISBN :

Service de certificat

TP 4 & 5 : Administration Windows 2003 Server

Réseaux IUP2 / 2005 DNS Système de Noms de Domaine

1. Mise en œuvre du Cegid Web Access Server en https

REPARTITION DE CHARGE LINUX

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

TD 2 Chapitre 4 : Support des Services et Serveurs. Objectifs : Maîtriser l'exploitation des tables de routage dynamique.

Transcription:

Mise en place d un reverse proxy Certaines adresses IP ont été effacées dans ce document pour des raisons évidentes de sécurité. 1

Table des matières Utilisation des noms DNS pour atteindre les applications GlassFish... 3 Le point sur le DNS... 3 En pratique... 4 Configurer un reverse proxy avec apache... 4 Principe d un reverse proxy... 4 Contexte... 5 Intérêt... 5 1 ère méthode : configuration avec Apache... 6 Schéma du processus :... 6 Configuration de GlassFish :... 6 Configuration d Apache... 7 Test du reverse proxy... 7 Test 1 : page par défaut, application hello... 7 Test 2 : Une 2 ème application meteopresta sur le même serveur... 8 2ème méthode : configuration avec le module mod_jk... 10 Intérêt et principe... 10 Configuration de GlassFish... 10 Configuration d Apache... 11 Configuration de workers.properties... 11 Test du reverse proxy avec mod_jk... 11 Conclusion... 12 2

Utilisation des noms DNS pour atteindre les applications GlassFish Le point sur le DNS Le DNS (ou Domain Name System) est un système qui permet de faire correspondre une adresse url à l adresse IP correspondante, afin de pouvoir contacter le serveur demandé. Il existe 2 types de requêtes DNS : -la requête récursive : Lorsqu'un serveur DNS reçoit une requête récursive, il doit donner la réponse la plus complète possible. La requête va d abord s orienter vers le serveur racine, qui va renvoyer aux serveurs secondaires etc. Une fois le FQDN (=url complet) trouvé intégralement, l adresse IP correspondante va directement être renvoyée à la machine qui en a fait la demande. -la requête itérative : Lorsqu'un serveur reçoit une requête itérative, il renvoie la meilleure réponse qu'il peut donner sans contacter d'autres serveurs DNS (c'est-à-dire en consultant uniquement sa propre base de données). La requête va alors repasser sur la machine qui a fait la demande, et qui va la renvoyer vers le serveur DNS secondaire, etc. Jusqu à l url complète Lorsqu'un serveur DNS ne peut pas répondre à la requête récursive d'un client, il va d'abord essayer de contacter ses redirecteurs. Si le serveur DNS est paramétré pour utiliser des redirecteurs, alors il envoie une requête récursive au premier serveur DNS défini dans sa liste de redirecteurs. Par contre, si le serveur DNS n'a pas de redirecteurs, il va envoyer une requête itérative au premier serveur DNS situé dans sa liste de serveurs DNS racine. Le serveur DNS n'envoie donc des requêtes itératives que s il n'a pas de redirecteurs, en dernier recours. 3

En pratique Au cours de mon stage de 2 ème année de BTS SIO à la CPAM, j ai appris que le serveur DNS servant à résoudre les noms des url des serveurs basés sur le pôle de Toulon, était situé à Paris où tout est centralisé dans l ANR (annuaire national de référence). Les requêtes DNS passent donc toutes par Paris. Afin de pouvoir réaliser la mise en place du reverse proxy, une entrée DNS a été créée dans cet ANR afin de réaliser les tests du reverse proxy. L adresse test.cpam-toulon.cnamts.fr a donc été entrée sur le serveur DNS distant avec pour correspondance l adresse IP du serveur GlassFish/Apache en **.**.**.** sur lequel j ai travaillé. Configurer un reverse proxy avec apache Principe d un reverse proxy Un proxy inversé se place entre un serveur et tous ses clients. Cela permet d obtenir un seul point d entrée vers un ou plusieurs serveurs de manière transparente pour l utilisateur. Le reverse proxy (ici sous Apache) récupère les requêtes des clients et se charge de les transmettre aux serveurs internes désignés par les requêtes correspondantes. Le reverse proxy va également permettre de filtrer de manière efficace les requêtes qui sont transmises aux serveurs, il fait office de pare-feu. 4

Contexte Dans le cadre de mon stage de 2 ème année de BTS, j ai été amené à mettre en place un reverse proxy. J étais sur un poste client sous Windows 7, et je me connectais au serveur avec le logiciel de contrôle à distance VNC (TightVNC Viewer 1.2.9). Le serveur en question était un serveur de test : le clone du serveur de production. Sur ce serveur virtualisé sous CentOS 6.5 (sous KDE), apache était installé (mais non configuré) ainsi que l'environnement d'applications java GlassFish. Les applications présentes sur le serveur GlassFish sont utilisées par les employés CPAM sur leurs postes via leur navigateur (IE). Elles étaient accessibles au début directement en **.**.**.**/8080 (@IP/port), les applications étaient donc attaquées par leur port, le tout visible dans la barre d adresses pour le client, et sans aucun nom DNS défini. Le but du projet consiste à configurer Apache et GlassFish afin que les applications soient disponibles pour les clients en tapant un nom DNS comprenant le nom de l application, du type : test.cpam-toulon.cnamts.fr La requête devra passer obligatoirement par le serveur Apache qui la redirigera (reverse proxy) vers le bon serveur d application en fonction de l adresse. Les applications ne pourront plus être appelées directement par l IP/port, cette solution sera bloquée (voir doc. Sécurisation réseau du serveur d applications GlassFish). Intérêt - Appeler les applications avec un nom DNS permet d éviter de reconfigurer toutes les machines en cas de changement d adresse IP du serveur d application - La réécriture programmable d url permet de masquer l architecture interne d un serveur web - Cela permet aussi de bloquer le port d écoute par défaut 8080 (qui ne sera disponible que localement) afin d éviter d éventuelles attaques. - La mémoire cache permet de décharger le serveur web - Le chiffrement SSL non traité ici 5

1 ère méthode : configuration avec Apache Schéma du processus : - La requête test.cpam-toulon.cnamts.fr arrive sur le serveur Apache grâce au DNS, sur le port 80. - ensuite, le serveur Apache (sur le port 80) prend en charge la requête : il va voir dans son fichier de configuration (httpd.conf), détecte la configuration d un reverse proxy et donc renvoie la requête vers le port 8080 (correspond au port d écoute GlassFish) avec l adresse 127.0.0.1:8080/hello (correspond à l adresse IP GlassFish (ici la même machine), ainsi que le nom de l appli) - en 8080 (et en local : 127.0.0.1), c est GlassFish qui récupère la requête, reconnait l information «hello» comme étant une des appli, vérifie si l url correspond bien aux paramètres entrés (test.cpam-toulon.cnamts.fr), puis affiche le site sur la machine cliente avec l url test.cpamtoulon.cnamts.fr affichée dans la barre d adresse (au lieu de @IP:8080/hello). Configuration de GlassFish : Configuration de GlassFish : l appli hello correspond à l url test.cpam-toulon.cnamts.fr et écoute sur le processus http-listener-1, qui correspond à l adresse IP 127.0.0.1 (le serveur Apache et GlassFish sont sur la même machine physique) et au port 8080. 6

Configuration d Apache La configuration doit être écrite dans le fichier de configuration d apache httpd.conf, ou dans un autre fichier.conf qu il faudra appeler dans httpd.conf. Ici, on se trouve dans : /usr/local/apache2/conf/httpd.conf Les lignes de configuration à ajouter sont les suivantes : LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so #on charge les modules #pour le proxy ProxyRequests off AddDefaultCharset off NameVirtualHost *:80 <VirtualHost *:80> ServeurName http://test.cpam-toulon.cnamts.fr ProxyPreserveHost on RewriteEngine on ProxyPass / http://localhost:8080/hello ProxyPassReverse / http://localhost:8080/hello </VirtualHost> # port d écoute du serveur Apache # idem #nom du site qui correspond à l appli hello # transmet l host vers le serveur mandaté # / http://@ip:portdusite/nomdusite # / http://@ip:portdusite/nomdusite Après chaque changement de configuration, il faut redémarrer le serveur Apache (le chemin de la commande peut changer selon le serveur) : /etc/init.d/httpd reload En cas de changement de configuration sur le serveur GlassFish : asadmin stop-domain asadmin start-domain Test du reverse proxy Test 1 : page par défaut, application hello Sous Windows, sur un poste client, en tapant directement l adresse URL définie dans notre fichier de configuration en mode reverse proxy, on obtient bien notre site de test «hello» (image de droite ; à gauche, il s agit de l ancienne configuration en @IP/port) : 7

Test 2 : Une 2 ème application meteopresta sur le même serveur Meteopresta est une application développée par la CPAM pour évaluer simplement avec des images de météo le délai de traitement des dossiers par service, et par pôle (Fréjus, Hyères ). Ici, on teste si la configuration du reverse proxy marche bien avec des applications réelles, et si le serveur arrive bien à gérer plusieurs applications en même temps. On choisit d allouer l URL meteopresta.cpam-toulon.cnamts.fr pour l application meteopresta. Configuration de GlassFish L application meteopresta écoute aussi sur le http-listener-1, ce dernier n a pas besoin d être reconfiguré Configuration d Apache La configuration d Apache est la même, il faut juste rajouter la configuration de l application meteopresta en plus de la configuration hello ; voici les lignes à ajouter dans httpd.conf : 8

LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so #on charge les modules #pour le proxy ProxyRequests off AddDefaultCharset off NameVirtualHost *:80 # port d écoute du serveur Apache <VirtualHost *:80> # idem ServeurName http://meteopresta.cpam-toulon.cnamts.fr #nom du site qui correspond à #l appli meteopresta ProxyPreserveHost on # transmet l host vers le serveur mandaté RewriteEngine on ProxyPass / http://localhost:8080/meteopresta # / http://@ip:portdusite/nomdusite ProxyPassReverse / http://localhost:8080/meteopresta # / http://@ip:portdusite/nomdusite </VirtualHost> Résultat L url meteopresta.cpamtoulon.cnamts.fr redirige bien vers l application meteopresta (test réalisé sur un poste client). Toutefois l affichage de medialog.xhtml en fin d url est causé par la méthode de programmation et ne peut pas être géré par Apache cette fois-ci ; le but étant normalement de n afficher que l url racine, comme on pouvait l observer avec l application hello. 9

2ème méthode : configuration avec le module mod_jk Intérêt et principe Cette méthode, une fois mise en place, permet de ne plus avoir à toucher au serveur Apache lors d ajout de futures applications : il suffira alors de rajouter l application directement via la console graphique de GlassFish (plus simple et plus rapide). La configuration à effectuer se trouve dans GlassFish, ainsi que dans un fichier workers.properties présent dans le serveur Apache, appelé dans le fichier de configuration d Apache httpd.conf Configuration de GlassFish La commande suivante va créer un nouveau processus d écoute réseau jk-connector sur le port 8009 (avec le mod-jk actif) : asadmin> create-network-listener --protocol http-listener-1 --listenerport 8009 --jkenabled true jk-connector Puis on configure ce processus d écoute : asadmin> set server-config.network-config.network-listeners.network-listener.jk-connector.jkconfiguration-file=domain-dir/config/glassfish-jk.properties Résultat sur la console graphique : 10

La dernière capture juste avant montre la configuration GlassFish à modifier pour le site demandé. Il faut définir : - l hôte, c est-à-dire l url qu il faudra taper pour accéder au site : ici test.cpam-toulon.cnamts.fr - l état «actif» - le processus d écoute sur «jk-connector» - le module web par défaut, c est-à-dire le nom de l application à appeler : ici «hello» Par rapport à la 1 ère méthode, il n y aura donc que le processus d écoute réseau à modifier. Configuration d Apache Les valeurs suivantes sont à ajouter au fichier httpd.conf, cela permet au serveur Apache de prendre en compte la configuration écrite dans le fichier workers.properties (les valeurs de la 1 ère méthode doivent être effacées): JkWorkersFile /usr/local/apache2/conf/workers.properties # localisation de wokers.properties JkLogFile /usr/local/apache2/logs/mod_jk_log # localisation des logs d apache JkLogLevel debug # niveau des logs JkMount /*.jsp default JkMount /*.ajp13 default JkMount /* default Configuration de workers.properties Il faut créer le fichier workers.properties (s il n existe pas encore) dans le même dossier que httpd.conf, et y ajouter les valeurs suivantes : ps=/ worker.list=default worker.default.type=ajp13 worker.default.host=test.cpam-toulon.cnamts.fr worker.default.port=8009 Test du reverse proxy avec mod_jk Pour ces tests, la configuration d Apache de la 1 ère méthode a été supprimée et le processus d écoute des applications est exclusivement jk-connector sur le port 8009 (enfin d éviter de faire marcher l ancienne configuration à la place de la nouvelle). 11

Les 2 applications utilisent bien le reverse proxy en mod_jk Pour bien vérifier que ce ne sont pas les anciens paramètres qui ont été pris en compte, et donc que la configuration du reverse proxy passe bien par le fichier workers.properties, j ai modifié ce dernier en redirigeant les requêtes vers un port non utilisé (8019 au lieu de, pour voir si les requêtes retournent bien une erreur : Cela a bien retourné une erreur, donc on a bien la confirmation que cette nouvelle configuration marche! En revenant à la configuration précédente en 8009, on retrouve évidemment bien les 2 applications qui marchent. Conclusion Parmi les 2 méthodes, on peut remarquer que la 1 ère méthode est plus simple à mettre en place. Toutefois, la méthode 2 sera retenue. En effet, cette méthode est préconisée lorsque l on couple le serveur Apache au serveur GlassFish (notamment dans les directives propres à la CPAM), elle engendre entre autres de meilleures performances. 12