Onglet Squid : Configuration du proxy

Le service proxy Squid n'étant pas désactivable, l'onglet Squid est toujours accessible en mode expert.

L'onglet expert Squid permet de modifier et de fixer une sélection des principaux paramètres du fichier de configuration : /etc/squid/squid.conf.

Les paramètres de ce fichier de configuration se retrouvent explicitement dans le nom des variables Creole (mode Debug de l'interface de configuration du module).

Paramétrer l'analyse de logs LightSquid

Les options Générer les statistiques Squid automatiquement, Port d'écoute du CGI LightSquid et Méthode d’anonymisation des rapports LightSquid servent à configurer l'outil d'analyse de logs LightSquid permettant d'afficher sous forme de pages web l'utilisation du proxy. Sa configuration fait l'objet d'une section dédiée.

Paramétrer les ports de Squid

Ports d'écoute

Si le filtrage web est activé, le service Squid écoute sur le port 8080 de la boucle locale.

Si le filtrage web est désactivé, le service Squid écoute sur le port par défaut de e2guardian : 3128.

Il est possible de paramétrer Squid pour qu'il écoute les requêtes HTTPS des clients.

Ceci est particulièrement utile dans les situations où Squid est utilisé comme accélérateur des requêtes. Il faut alors saisir le numéro de port choisi dans le champ Port d'écoute HTTPS de Squid.

SSL_ports

Par défaut, seuls les ports de destination (sortants) des connexions SSL 443, 563, 631, 4000-5000, 6080, 8062, 8070, 8090, 8443, 8753 et 7070 sont autorisés.

Il est possible d'en ajouter autant que souhaité dans le champ "SSL_ports" supplémentaire.

Safe_ports

De même, seuls les ports de destination (sortants) non SSL 80, 21, 443, 563, 70, 210, 631 et 1025-65535 sont autorisés.

Il est possible d'en ajouter autant que souhaité dans le champ "Safe_ports" supplémentaire.

Personnaliser la durée des caches

L'option Personnaliser sélectivement la durée des caches, présente à partir de la version 2.5.2 d'EOLE, permet de personnaliser l'algorithme de gestion du rafraîchissement du cache par site.

La gestion du cache de Squid peut ne pas correspondre à tous les sites. Par exemple, pour les sites antiviraux, il vaut mieux augmenter la durée de conservation du cache des fichiers téléchargés par les postes clients.

Voici un exemple la configuration à mettre en place pour conserver en cache les signatures de l'anti-virus Trend :

Truc & astuce

L'expression rationnelle décrit la chaîne de caractères et les règles qui permettent de construire l'URL :

  • ^ marque le début d'une chaîne ;

  • $ marque la fin d'une chaîne ;

  • | marque l'alternative ;

  • . indique n'importe quel caractère ;

  • * aucune, une ou plusieurs occurrences du caractère.

Les variables qui permettent de régler le comportement du cache de Squid sont :

  • Temps maximum de cache ;

  • Rapport entre l'âge de l'objet dans le cache et son âge sur le site ;

  • Temps minimum de cache.

Exemple

Cette configuration générera la ligne de configuration suivante :

  • refresh_pattern -i <url_regexp> "Temps maximum de cache" "Rapport entre l'âge de l'objet dans le cache et son âge sur le site" "Temps minimum de cache" <options>

  • refresh_pattern -i /.*\.trendmicro\.com/.* 180 100% 300 reload-into-ims ignore-reload

L'option -i permet de ne pas tenir compte de la casse des caractères dans l'expression régulière.

Complément

La personnalisation sélective de la durée du cache est basée sur la directive refresh_pattern de Squid. Cette directive permet un contrôle très fin de la validité des objets mis en cache.

Lors d'une requête, Squid décide du comportement à adopter en fonction de l'état de l'objet dans son cache :

  • si l'objet n'est pas dans le cache, Squid le demande au serveur qui héberge l'objet, le met en cache et le fournit au client ;

  • si l'objet est dans le cache et qu'il est considéré comme étant encore à jour, Squid le fournit directement au client ;

  • s'il n'est plus considéré comme à jour, alors une requête If-modified-since est envoyée au serveur qui héberge l'objet.

Pour déterminer si un objet est à jour, Squid utilise plusieurs paramètres :

  • la valeur liée à l'objet enregistré :

    • age correspond au temps en seconde écoulé depuis l'entrée de l'objet dans le cache (objet_age = maintenant - objet_date)
    • lm_age correspond à l'age de l'objet au moment de l'entrée dans le cache, temps, en secondes, écoulé entre la dernière modification de l'objet sur le serveur hébergeur et son entrée dans le cache. (lm_age = objet_date - objet_lastmod)
    • expires est la date d'expiration de l'objet éventuellement fournie par le serveur hébergeur au moment de l'entrée de l'objet dans le cache. Si elle est renseignée, la valeur de Temps minimum de cache prend le pas sur cette valeur.
  • la valeur fournie par le client ;

    Squid tient compte de la variable client_max_age éventuellement fournie par le client, elle indique l'âge maximal de l'objet accepté par le client. Si cette valeur est fournie par le client elle prend le pas sur la valeur Temps maximum de cache du fichier de configuration de Squid.

  • les valeurs du fichier de configuration de Squid :

    • temps écoulé depuis le téléchargement (age), temps maximum et minimum de cache :

      • si Temps maximum de cache est défini et que le temps écoulé depuis le téléchargement est supérieur, l'objet est périmé et devra être mis à jour ;
      • si le temps écoulé depuis le téléchargement est inférieur ou égal au Temps minimum de cache, l'objet est considéré comme étant à jour.
    • date d'expiration de l'objet fournie par le serveur hébergeur :

      • si la date d'expiration de l'objet (expires) est définie par le serveur hébergeur et qu'elle est dépassée, l'objet est périmé et devra être mis à jour ;
      • si la date d'expiration de l'objet (expires) est définie par le serveur hébergeur mais qu'elle n'est pas encore dépassée, l'objet est considéré comme étant à jour.
    • rapport (lm_factor) entre le temps, en secondes, écoulé depuis l'entrée de l'objet dans le cache et son âge au moment de l'entrée dans le cache :

      Plus le score du rapport entre le temps écoulé depuis l'entrée de l'objet dans le cache et son âge au moment de l'entrée dans le cache (age/lm_age) est élevé plus l'objet risque d'être périmé :

      • peu de temps écoulé (10) / objet vieux (1000) = rapport faible (0.01) → objet probablement à jour
      • beaucoup de temps écoulé (1000) / objet vieux (1000) = rapport élevé (1) → objet probablement périmé
      • peu de temps écoulé (10) / objet jeune (10) = rapport élevé (1) → objet probablement périmé
      • beaucoup de temps écoulé (1000) / objet jeune (10) = ce cas de figure n'arrive pas car géré par des règles en amont.

      Si le rapport est inférieur au pourcentage (percent) saisi dans Rapport entre l'âge de l'objet dans le cache et son âge sur le site, l'objet est considéré comme à jour. Diminuer la valeur du pourcentage diminue la probabilité (rapport faible) qu'un objet soit périmé.

Enfin, si aucune règle n’aboutit à considérer l'objet comme étant à jour, celui-ci est considéré comme périmé et devra être mis à jour.

Augmenter le nombre de redirections

Certains sites ont besoin de faire un grand nombres de redirections avant de fournir le contenu souhaité à l'utilisateur.

Par défaut, Squid n'accepte que 10 redirections (variable forward_max_tries du fichier de configuration de Squid) ce qui peut entraîner l'abandon des redirections et donc bloquer l'accès au site.

Il est possible à partir de la version 2.5.2 d'EOLE d'augmenter cette valeur en modifiant la variable Nombre maximum de redirections testées de l'onglet.

Paramètre Half_closed_clients

Certains clients peuvent arrêter leur connexion TCP d'envoi tout en laissant leur connexion de réception ouverte. Parfois, Squid ne peut pas faire la différence entre une connexion à demi-fermée et une connexion entièrement fermée :

  • si le paramètre Half_closed_clients est à On, les connexions demi-fermées sont maintenues ouvertes jusqu'à ce qu'une erreur de lecture ou d'écriture apparaisse ;
  • si le paramètre Half_closed_clients est à Off, les connexions sont fermées dès qu'il n'y a plus de données à lire (valeur recommandée sur Squid >= 3.0).

Historiquement paramétrée à On sur les modules EOLE, sa valeur par défaut a été passée à Off sur les versions d'EOLE >= 2.5.1 depuis avril 2016.

Personnaliser les valeurs de délai d'attente

De nombreuses variables sont disponibles afin de paramétrer finement les valeurs de délai d'attente (timeout) de Squid.

Remarque

À partir d'EOLE 2.6.2, l'unité de temps associée à plusieurs d'entre elles a été transformée de minute en seconde afin de permettre un paramétrage encore plus précis.

Autres paramètres

L'onglet expert Squid permet de modifier et de fixer un nombre conséquent de paramètres optionnels du fichier de configuration : /etc/squid/squid.conf.

Pour plus d'informations sur la modification de ces paramètres, vous pouvez consulter :

  • les exemples de configuration dans le fichier de documentation de Squid : /usr/share/doc/squid-common/squid.conf.documented.gz