Onglet Squid : Configuration du proxy
En mode expert, l'onglet 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
Port d'écoute standard
Ports d'écoute HTTPS spécifique
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
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.
- si
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
la documentation en ligne des différents paramètres : http://www.squid-cache.org/Doc/config/