Onglet Reverse proxy : Configuration du proxy inverse

EOLE propose un serveur proxy inverse (reverse proxy) basé sur le logiciel libre Nginx[1].

Le proxy inverse est un type de serveur proxy, habituellement placé en frontal de serveurs web, qui permet de relayer des requêtes web provenant de l'extérieur vers les serveurs internes (situés en DMZ[2] par exemple). Cela le différencie grandement d'un proxy classique comme Squid[3].

Concrètement, le proxy inverse permet d'ouvrir des services web installés sur des serveurs situées "derrière" le pare-feu l'accès sur Internet sans avoir recours à des règles iptables[4]/DNAT.

Diagramme d'un proxy inverse - Licence CC0
Diagramme d'un proxy inverse - Licence CC0

Le proxy inverse EOLE peut relayer des requêtes vers les services suivants : 

  • serveur EoleSSO ;

  • outil d'administration EAD[5] ;

Avant toute chose, le proxy inverse doit être activé dans l'onglet Services en passant Activer le reverse proxy Nginx à oui.

L'activation du service fait apparaître un nouvel onglet.

Redirection de services particuliers

Pour un fonctionnement optimal des applications web hébergées sur le module AmonEcole, il est impératif d'utiliser un nom de domaine[7] (exemple : monetab.ac-acad.fr) résolvable sur Internet et de le renseigner partout où cela est nécessaire.

Ce nom de domaine sera à utiliser tant depuis l'extérieur de l'établissement que depuis l'intérieur.

La configuration recommandée est donc la suivante :

  • Services : Activer le reverse proxy Nginx : oui ;
  • Firewall : Modèle de filtrage : 2-zones-amonecole ;
  • Applications web : Nom de domaine des applications web (sans http://) : etab.ac-acad.fr ;
  • Eole sso : Nom de domaine du serveur d'authentification SSO : etab.ac-acad.fr ;
  • Nginx : Nom de domaine par défaut : etab.ac-acad.fr ;
  • Reverse proxy : Activer la configuration automatique pour les applications locales : oui.

Le paramètre Activer la configuration automatique pour les applications locales configure automatiquement l'accès aux applications web activées localement sur le module AmonEcole.

Redirection HTTP et HTTPS

Pour rediriger HTTP et HTTPS il est nécessaire de passer la variable Activer le reverse proxy Nginx pour le http/https à oui et de renseigner plus d'informations :

  • le Nom de domaine ou IP à rediriger : le nom de domaine diffusé auprès des utilisateurs. Ce nom de domaine est celui qui permet d'accéder au module Amon ou AmonEcole ;

  • Activer la redirection pour tous les sous-domaines : cette variable est disponible à partir de la version 2.6.2 d'EOLE, elle permet la prise en charge de tous les sous-domaines par le proxy inverse ;

  • Demander un certificat à Let's Encrypt pour ce domaine ? : cette variable est disponible à partir de la version 2.6.2 d'EOLE si la redirection pour tous les sous-domaines n'est pas activé et que le certificat SSL est Let's Encrypt ;

  • le Répertoire ou nom de la page à rediriger permet de rediriger un sous-répertoire vers une machine. La valeur par défaut est / ;

  • l'IP ou domaine de destination (avec http:// ou https://) ou URI complète permet de saisir l'adresse IP (exemple : http://192.168.10.1), le nom de domaine (exemple : http://scribe.monetab.fr) ou l'URI[8] (exemple : http://scribe.monetab.fr/webmail/) du serveur de destination hébergeant la ou les applications.

Il est possible de forcer l'utilisation du protocole HTTPS pour les requêtes utilisant le protocole HTTP de façon transparente. De cette manière, un utilisateur web se connectant à l'adresse http://monetab.fr sera automatiquement redirigé vers https://monetab.fr

Ainsi les communications sont automatiquement chiffrées protégeant la transmission de données sensibles (nom d'utilisateur, mot de passe, etc.).

Le proxy inverse peut être utilisé pour ne rediriger que le HTTPS en passant les valeurs Reverse proxy HTTP à non et Reverse proxy HTTPS à oui.

Il est possible d'ajouter plusieurs redirections en cliquant sur le bouton + Nom de domaine ou IP à rediriger.

Truc & astuce

Un répertoire déterminé peut également être redirigé vers un serveur différent. Par exemple le lien vers l'application Pronote[9], https://monetab.fr/pronote/ peut être redirigé vers http://pronote.monetab.fr/ (attention, le "/" final est important, puisqu'il faut rediriger à la racine du serveur de destination).

Réécriture d'URL

L'activation de la réécriture d'URL permet d'ajouter une expression rationnelle et une valeur de remplacement.

Il n'y a pas de lien automatique entre une "redirection" Nginx renseignée et une réécriture d'URL.

Pour que la réécriture d'URL s'applique à une règle il faut que le nom de domaine, le protocole et le répertoire de la réécriture correspondent aux paramètres saisis dans la règle de "redirection" renseignée.

Redirection de domaines

Le reverse proxy permet de rediriger automatiquement les utilisateurs voulant accéder à une page particulière vers une autre page.

L'exemple ci-dessus illustre le remplacement de SquirrelMail par Roundcube : si l'utilisateur cherche à accéder à l'adresse http://etb1.ac-test.fr/squirrelmail/, la page se recharge automatiquement avec l'URL de la nouvelle messagerie : http://etb1.ac-test.fr/roundcube/.