Vous devez effectuer tous les réglages du serveur proxy Squid
dans le fichier /etc/squid/squid.conf. Pour pouvoir
démarrer Squid la première fois, aucune modification n'est nécessaire, mais
dans un premier temps l'accès est interdit aux clients externes. Le serveur
proxy est accessible à localhost. C'est le port
3128 qui est utilisé par défaut. Vous trouverez des
explications complètes des options et de nombreux exemples dans le fichier
/etc/squid/squid.conf préinstallé. Presque toutes les
lignes sont précédées d'un signe # (les lignes sont mises
en commentaire) et les réglages correspondants se trouvent en fin de ligne.
Les valeurs indiquées correspondent presque toujours aux valeurs par défaut,
si bien que la suppression du signe de commentaire sans modifier le
paramètre de l'option n'a, à quelques exceptions près, aucun effet. Il est
donc préférable de conserver l'exemple en l'état et de recopier l'option
avec le paramètre modifié sur la ligne en-dessous. Vous pouvez ainsi
distinguer sans problème les valeurs prédéfinies et les modifications qui y
sont apportées.
![]() | Adapter le ficher de configuration après une mise à jour |
|---|---|
Si vous avez effectué une mise à jour à partir d'une version plus
ancienne de Squid, il est recommandé d'utiliser le nouveau fichier
| |
C'est le port sur lequel Squid écoute les demandes des
clients. La valeur par défaut est 3128, mais
8080 est également fréquemment utilisé. Il est possible
d'indiquer ici plusieurs numéros de port en les séparant par des
espaces.
Saisissez ici un serveur proxy de niveau supérieur,
par exemple lorsque vous souhaitez utiliser celui de votre fournisseur
d'accès. Indiquez dans nom_hote le nom et
l'adresse IP du serveur proxy à utiliser et comme
type, parent. Indiquez dans
port_proxy le numéro de port du
gestionnaire du serveur parent qui doit être utiliser dans le
navigateur, en général 8080. Réglez
port_icp à 7 ou
0 si vous ne connaissez pas le port ICP du parent
ou si l'utilisation de celui-ci n'a pas été convenue avec le fournisseur
d'accès. Vous devez encore préciser default et
no-query après le numéro de port pour empêcher
complètement l'utilisation du protocole ICP. Squid se comporte
alors comme un navigateur normal vis-à-vis du serveur proxy du
fournisseur d'accès.
Cette déclaration indique la taille maximale de la mémoire
centrale utilisée par Squid pour les caches. La valeur par défaut est
8 Mo.
La déclaration cache_dir indique le
répertoire dans lequel tous les objets sont stockés sur le disque. Les
nombres derrière indiquent l'espace disque maximal à utiliser en
« Mo » et le nombre des répertoires dans les premier et
deuxième niveaux. Ne modifiez pas le paramètre ufs.
L'espace disque défini par défaut est de 100 Mo
dans le répertoire /var/cache/squid, soit
16 sous-répertoires contenant chacun environ 256 répertoires.
Lorsque l'on indique l'espace disque à utiliser, il faut prévoir
suffisamment de marge. Des valeurs comprises entre 50 et 80 pour
cent du disque disponible sont raisonnables, 80 pour cent étant un
maximum. N'augmentez les deux derniers valeurs c'est-à-dire le nombre de
répertoires qu'avec la plus grande précaution, dans la mesure où trop de
répertoires peuvent également avoir des répercussions sur la
performance. Si vous disposez de plusieurs disques sur lesquels répartir
le cache, insérez autant de lignes cache_dir que
nécessaire.
Chemin des fichiers journaux
Chemin des fichiers journaux
Ces trois déclarations indiquent les chemins d'accès où Squid consigne ses actions dans des journaux. Si Squid doit être fortement sollicité, il peut être judicieux de répartir le cache et les fichiers journaux sur différents disques.
Si vous réglez ce paramètre à on, vous obtiendrez des fichiers journaux lisibles. Certains programmes n'arrivent toutefois pas à les exploiter.
Cette déclaration permet de masquer les adresses IP
enregistrées dans les fichiers journaux et ainsi de dissimuler
l'identité des clients. Si vous indiquez 255.255.255.0 ici, le dernier chiffre de
l'adresse IP est mis à zéro.
Vous pouvez définir ici le mot de passe que Squid doit utiliser pour une connexion FTP anonyme. Il peut être intelligent d'indiquer ici une adresse électronique valable car certains serveurs FTP en vérifient la validité.
Une adresse électronique à laquelle Squid envoie un message lorsqu'il s'arrête de manière inattendue. L'adresse par défaut est webmaster.
Squid peut effectuer une rotation des fichiers journaux
sécurisés si vous lancez la commande squid -k rotate.
Les fichiers sont à cet effet numérotés et lorsque la valeur spécifiée
est atteinte, les fichiers les plus anciens sont écrasés. Cette valeur
est par défaut fixée à 0, car l'archivage et la
suppression des fichiers journaux dans SUSE LINUX est effectué par une
tâche cron propre configurée dans le fichier
/etc/logrotate/squid.
Avec append_domain, vous pouvez indiquer quel domaine doit être automatiquement ajouté lorsqu'aucun n'est spécifié. On indique ici la plupart du temps son propre domaine et il suffit alors de saisir www dans le navigateur pour accéder à son propre serveur web.
Si vous réglez ce paramètre à off, Squid retire les adresses IP et les noms de machine des clients contenus dans les requêtes HTTP.
Vous n'avez normalement pas besoin de modifier ces valeurs. Si toutefois vous disposez d'une liaison commutée, il se peut que l'Internet ne puisse parfois pas être joint. Squid note les demandes qui ont échoué et refuse ensuite de procéder à de nouvelles requêtes même si la connexion Internet a été rétablie. Dans ce cas, vous devez remplacer minutes par seconds puis, en cliquant sur recharger dans le navigateur, la connexion devrait être rétablie après quelques secondes.
Si vous souhaitez empêcher que Squid n'interroge directement
l'Internet, utilisez la commande ci-dessus pour forcer l'utilisation
d'un autre serveur proxy. Vous devez avoir au préalable saisi
celui-ci sous cache_peer. Si vous indiquez
all en tant que nom_acl,
vous forcez le transfert de toutes les demandes au
parent. Cela peut être utile, par exemple, si vous passez
par un fournisseur d'accès qui exige que vous utilisiez son serveur
proxy, ou si le pare-feu n'autorise aucun accès direct à
l'Internet.
Squid propose un système détaillé pour gérer l'accès au serveur proxy. L'utilisation d'ACL (listes de contrôle d'accès) permet de le configurer facilement et complètement. Il s'agit de listes de règles traitées en séquence. Vous devez commencer par définir des ACL pour pouvoir les utiliser. Quelques ACL usuelles telles que all et localhost sont déjà disponibles. La définition d'une ACL en soi n'a cependant aucun effet. Ce n'est qu'une fois réellement installée en relation avec http_access qu'une règle définie est appliquée.
Pour définir une ACL, il faut au moins trois informations. Vous pouvez
choisir son nom nom_acl librement. Pour le
type, vous pouvez choisir parmi un large éventail
de possibilités que vous pouvez consulter dans la section
ACCESS CONTROLS du fichier
/etc/squid/squid.conf. Les données,
donneesdépendent du type de l'ACL et peuvent
également être lues depuis un fichier, il peut par exemple s'agir de noms
d'ordinateur, d'adresses IP ou d'URL. En voici quelques exemples
simples :
acl mes_surfeurs srcdomain .mon_domaine.com acl professeur src 192.168.1.0/255.255.255.0 acl etudiants src 192.168.7.0-192.168.9.0/255.255.255.0 acl midi time MTWHF 12:00-15:00
Utilisez http_access pour définir qui est autorisé à utiliser le serveur proxy et à quoi il peut accéder sur l'Internet. Pour ce faire, saisissez des ACL qui interdiront l'accès avec deny ou l'autoriseront avec allow ; localhost et all ont déjà été définis plus haut. Vous pouvez créer ici une liste comprenant plusieurs déclarations http_access ; ainsi, selon ce qui se produit en premier, l'accès à l'URL demandée sera ou non autorisé. La dernière déclaration doit toujours être http_access deny all. Dans l'exemple suivant, localhost, c'est-à-dire l'ordinateur local a un accès libre à tout, tandis que tout est complètement bloqué pour tous les autres :
http_access allow localhost http_access deny all
Encore un exemple dans lequel sont utilisées les ACL définies
précédemment : le groupe professeurs a tout le temps accès à
l'Internet, tandis que le groupe etudiants n'y a accès que du lundi au
vendredi et seulement pendant la pause de midi :
http_access deny localhost http_access allow professeurs http_access allow etudiants midi time http_access deny all
Pour des raisons de clarté, n'insérez dans la liste vos
propres déclarations http_access qu'à l'endroit
prévu à cet effet dans le fichier
/etc/squid/squid.conf. Cela signifie entre le texte
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR # CLIENTS
et la déclaration finale
http_access deny all
Vous pouvez utiliser cette option pour indiquer un redirecteur, comme squidGuard, qui est en mesure de bloquer l'accès aux URL indésirables. Il est donc possible de gérer individuellement l'accès à l'Internet de différents groupes d'utilisateurs à l'aide de l'authentification sur le serveur proxy et des ACL adaptées. squidGuard est un paquetage indépendant que l'on peut installer et configurer.
Si les utilisateurs doivent s'authentifier auprès du serveur proxy, vous pouvez indiquer ici un programme responsable de l'authentification, comme pam_auth. Lorsque pam_auth est utilisé, une fenêtre d'authentification s'ouvre lors de sa première tentative de connexion, dans laquelle l'utilisateur doit saisir son nom d'utilisateur et son mot de passe. Vous avez besoin, en outre, d'une ACL supplémentaire pour n'autoriser que les clients disposant d'un login valable à naviguer sur l'Internet :
acl password proxy_auth REQUIRED http_access allow password http_access deny all
Vous pouvez remplacer le mot-clé REQUIRED après proxy_auth par une liste de noms d'utilisateurs autorisés ou par le chemin d'accès à cette liste.
Cette option permet qu'une demande d'identification soit
adressée à tous les clients définis à l'aide d'ACL pour vérifier
l'identité de chaque utilisateur. Si vous attribuez à
nom_acl la valeur all, cela
s'applique de manière générale à tous les clients. De plus, un démon
ident doit fonctionner sur tous les clients. Pour cela, installez sous
Linux le paquetage pidentd. Sous Windows, il
existe un logiciel gratuit pouvant être téléchargé sur l'Internet. Pour
que seuls soient autorisés les clients dont la recherche d'identité a
réussi, il faut ici définir une ACL correspondante :
acl identhosts ident REQUIRED http_access allow identhosts http_access deny all
Vous pouvez ici aussi remplacer le terme REQUIRED par une liste de noms d'utilisateurs autorisés. L'utilisation d'ident peut considérablement ralentir l'accès dans la mesure où la recherche d'identité est répétée en entier à chaque demande.