Chapter 40. Installation d'un service mandataire (Proxy SQUID)

Serveur mandataire et serveur de cache - Fiche de cours

Table of Contents

Installer Squid
Configuration de squid
Initialisation de Squid
Les options de démarrage de Squid
Contrôler les accès
Contrôler les accès par authentification
Interface web de Squid et produits complémentaires
La journalisation
Configurer les clients
Forcer le passage par Squid (Proxy transparent)
Le redirecteur SquidGuard
Les applications non prises en charge par un service proxy

Le serveur mandataire (proxy) est une machine souvent physiquement située entre un réseau et son accès à Internet. Il fait office à la fois de passerelle pour l'accès à Internet et de cache de pages web.

Si un hôte du réseau demande l'adresse d'un noeud distant situé sur un autre réseau, et que cet hôte passe par un srevice proxy, le proxy va renvoyer à l'hôte sa propre adresse Ethernet. Une fois cette opération réalisée, tous les paquets envoyés par l'hôte seront à destination de l'adresse Ethernet du proxy. Le proxy aura en charge de transmettre ces paquets à l'adresse effective du noeud distant.

Pour les réponses, un processus identique est mis en place. Le site consulté, ne retourne les réponses qu'au serveur proxy. Le serveur proxy se charge de ventiler les pages au bon destinataire du réseau local.

Voir, pour le fonctionnement des serveurs cache et la configuration des navigateurs avec ce type de serveur, le document sur le W3 et les scripts CGI.

Squid est un service serveur proxy-cache sous linux. Les objets consultés par les clients sur internet, sont stockés en cache disque par le serveur. A partir du deuxième accès, la lecture se fera en cache, au lieu d'être réalisée sur le serveur d'origine. De ce fait il permet “ d'accélérer ” vos connexions à l'internet en plaçant en cache les documents les plus consultés. On peut aussi utiliser la technique du service serveur mandataire pour effectuer des contrôles d'accès aux sites.

Les services proxy peuvent être organisés de façon hiérarchique :

                  ________
                 |serveur |
                 |national|
                 |________|
                     |
             ________|________
            |                 |
         ___|____          ___|____    
        |serveur |        |serveur |        
        |régional|        |régional|  
        |________|        |________|   
            |
      ______|______
     |             |
 ____|___      ____|___     
|serveur |    |serveur |
| local  |    | local  |
|________|    |________|  



Les serveurs peuvent être paramétrés pour les autorisations d'accès et les synchronisations.

Les postes clients sont souvent configurés pour utiliser un serveur proxy. Le client s'adresse au serveur proxy, et c'est ce dernier qui traite la requête sur internet. Un fois la réponse reçue, le serveur met en cache la réponse et la retourne au client interne. Le service proxy est fréquemment configuré sur un routeur qui remplit aussi le service de translation d'adresse ou translation de port, mais toutes ces fonctions sont bien différentes.

Dans certains cas, on peut ne pas souhaiter que la configuration soit réalisée au niveau du client. On souhaite que celle-ci soit faite au niveau du serveur. Cela peut arriver par exemple si vous avez plusieurs centaines de postes à configurer ou bien si vous ne souhaitez pas que les utilisateurs puissent modifier ou avoir accès à cette partie de la configuration. On parlera de “ service proxy transparent ”. Le service serveur proxy peut être sur le routeur d'accès à l'internet ou sur une autre machine.

Service proxy tranparent : 
La configuration des navigateurs, sur les postes clients, n'est pas concernée.

                
                 Vers internet

           /|\                  /|\
            |                    |
         ___|____            ____|____           ________    
        |routeur |          |         |   (3)   |        |         
        | proxy  |          | routeur | <-----  | proxy  |  
        |________|          |_________| ------> |________|  
            |                   /|\       (2)
      ______|______              | 
     |             |             | (1)
 ____|___      ____|___      ____|____    
|        |    |        |    |         |
| client |    | client |    | client  |
|________|    |________|    |_________|  

<---------------------->    <----------------------------->
      Figure 1                        Figure 2

Sur la Figure 1, le service proxy est installé sur le routeur.

Sur la figure 2, les requêtes du client (1), sont redirigées vers le proxy par le routeur (2), qui retourne au client la réponse ou redirige vers le routeur (3) pour un envoi sur l'extérieur.

Installer Squid

Sur debian apt-get install squid.

Squid comporte de très nombreux paramètres. L'optimisation n'en est pas toujours simple. Nous allons voir uniquement quelques options permettant un fonctionnement du service. Il sera nécessaire, pour un site en production, de se référer à la documentation officielle.

Pour démarrer une configuration simple, il est possible d'utiliser le fichier de configuration /etc/squid.conf, dont chaque paramètre est documenté.