accès distant pour tous : squid en reverse proxy

Depuis un an maintenant, les usagers de la bibliothèque rattachés à l'école des chartes (enseignants, élèves, personnels, bref tout ceux qui ont une entrée dans l'annuaire LDAP de l'établissement) bénéficient d'un accès distant aux ressources électroniques auxquelles nous sommes abonnés.

Pour en arriver là, avec nos budgets réduits, on a exploré successivement ezProxy et l'installation du logiciel proxy Squid en mode "reverse proxy", avec authentification sur l'annuaire LDAP. Le premier m'a convaincu pendant les tests mais reste payant. Et comme le service informatique et la bibliothèque ont réussi à configurer Squid, on est resté sur la deuxième solution, gratuite.

Fonctionnement en bref :
- l'utilisateur configure son navigateur pour interroger un script à chaque consultation d'un site web;
- ce script, xxx.pac, oblige le navigateur à passer sur un serveur proxy de l'établissement uniquement pour les ressources que nous avons achetées et ajoutées dans le script;
- lors du premier renvoi vers le proxy, une fenètre d'authentification HTTP apparaît et demande à l'utilisateur de s'identifier sur l'annuaire LDAP;
- en cas de réussite, le serveur devient proxy et interroge lui-même les ressources consultées, avant de renvoyer les résultats au navigateur; son adresse IP doit être connue et autorisée par le fournisseur de données consulté.

Avantages :
- gratuité;
- simplicité de fonctionnement et d'administration : il suffit d'ajouter les adresses URL des fournisseurs dans le fichier xxx.pac;
- connexion au LDAP, qui centralise l'authentification.

Inconvénients :
- configuration nécessaire sur les postes clients;
- ouverture d'un accès dans le firewall de l'établissement, de l'extérieur vers la machine proxy.

Si vous avez passé toutes les étapes, on peut s'attaquer à...

L'installation
- convaincre son informaticien favori de faire un petit trou dans son zoli firewall; la machine qui fera office de reverse proxy sera en effet visible sur Internet, avec un port inhabituel.
- installer squid sur une petite machine Linux à l'intérieur du réseau de l'établissement ; son adresse IP doit être connue des fournisseurs et autorisée à se connecter aux ressources. Cette adresse sera reprise dans le fichier de script xxx.pac
- modifier le fichier /etc/squid/squid.conf pour définir une ACL propre à ces accès:
- lier à cette ACL une authentification sur le LDAP : voici la ligne de commande à ajouter à /etc/squid/squid.conf :
- écrire son script xxx.pac en fonction des ressources électroniques disponibles. En voici un exemple :
- faire de la publicité ! et aider les usagers à configurer leur navigateur (présentation, formation des collègues, rédaction d'un guide, rappel dans les réunions, etc.)
- établir des statistiques de connexion grâce à Sarg, à installer sur la même machine. Son accès doit être restreint aux seuls administrateurs puisque des informations personnelles peuvent éventuellement être reportées.

Bilan
Une vingtaine d'utilisateurs réguliers des ressources électroniques de la bibliothèque ont configuré leur navigateur pour en profiter de n'importe où.
Un petit bémol est apparu, lié au bridage de nombreux réseaux informatiques publics, d'entreprise, ou d'établissement : un proxy est déjà nécessaire sur ces réseaux, et à ma connaissance, il est impossible de cumuler facilement les proxys; par ailleurs, de nombreux réseaux wifis interdisent tout ce qui n'est pas HTTP et qui ne transite pas sur le port 80. Dans cette configuration, c'est cuit.
En revanche, aucun problème ne m'a été reporté en ce qui concerne les FAI qui desservent les utilisateurs privés, ils ont donc accès à notre documentation électronique depuis chez eux. Ce qui était bien le but initial ;-)