Ceci est une ancienne révision du document !
Squid : serveur mandataire (proxy)
Squid est un serveur mandataire, en anglais un proxy, entièrement libre et très performant. Il est capable de gérer les protocoles FTP, HTTP, HTTPS et Gopher. Il est généralement utilisé dans certaines entreprises et universités pour des fonctions de filtrage d'URL ou en tant que cache. Les pages Internet sont stockées localement ce qui évite d'aller les recharger plusieurs fois et permet d'économiser la bande passante Internet..
Pré-requis
- Disposer des droits d'administration ;
- Disposer d'une connexion à Internet configurée et activée.
Installation
Si après l'installation vous obtenez [fail]
lors du démarrage de Squid, alors il faut simplement spécifier le nom de la machine dans la configuration de Squid. Voir plus loin le chapitre Configuration.
Pour mettre en pratique Squid, il suffit simplement de configurer les navigateurs web client afin d'utiliser un proxy, ayant pour adresse celle de la machine squid. Squid écoute par défaut sur le port 3128.
Il est également possible d'appliquer le serveur mandataire à l'ensemble des utilisateurs et logiciels des stations clientes. Pour ce faire, configurez les propriétés de serveur mandataire d'Ubuntu afin que toutes les connexions à Internet passent par le proxy :
- Ouvrez l'outil de gestion des serveurs mandataire d'Ubuntu (Système → Préférences → Serveur mandataire) ;
- Dans l'onglet Configuration du serveur mandataire, cochez la case Configuration manuelle du serveur mandataire. Puis :
- cochez éventuellement la case Utiliser le même serveur mandataire pour tous les protocoles ;
- dans le champ Serveur mandataire HTTP, indiquez l'adresse localhost et le port 3128 ;
- Appuyez sur le bouton Appliquer à l'ensemble du système… pour que cette configuration soit appliquée à tous les utilisateurs de votre système Ubuntu.
Il est aussi possible d'effectuer une redirection de port via le pare-feu pour que toutes les demandes au port 80 passent par le port définit pour le serveur mandataire, ex: 3128.
Configuration
Par défaut Squid est configuré et fonctionnel. Cependant, on peut apporter quelques modifications afin de l'optimiser ou mieux l'adapter à certain environnement.
Le fichier de configuration de Squid est /etc/squid/squid.conf
ou /etc/squid3/squid.conf
(selon les versions).
Pour toute configuration, éditer donc ce fichier.
- Penser à effectuer une sauvegarde de ce fichier avant toute modification :
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.bak
. Effectuer l'opération inverse pour restaurer le fichier. - Après toute modification du
squid.conf
, redémarrer Squid :
Ubuntu 9.10 et antérieur
Pour l'activer après une fausse manipulation :
sudo /etc/init.d/squid start
Pour l'arrêter :
sudo /etc/init.d/squid stop
Ubuntu 10.04 et ultérieur
Pour l'activer après une fausse manipulation :
sudo service squid start
Pour l'arrêter :
sudo service squid stop
Voici quelques modifications utiles :
Autoriser les utilisateurs à utiliser le serveur mandataire
Rechercher la ligne commencant par "acl localhost src", et rajouter, après cette ligne, la ligne suivante :
acl allowedips src X.Y.Z.T/N
(où X.Y.Z.T/N représente le sous réseau des IPs autorisées à accéder au serveur mandataire, par exemple : 192.168.0.1/255.255.255.0 pour un réseau local allant des IPs 192.168.0.1 à 192.168.0.254)
Rechercher ensuite la ligne "http_access allow localhost" et rajouter, après cette ligne, la ligne suivante :
http_access allow allowedips
Indiquer le nom de la machine
dans la partie TAG: visible_hostname
, indiquer le nom de la machine comme suit :
visible_hostname nom_machine
Ne pas inclure l'adresse IP dans les requêtes HTTP
Pour ne pas inclure l'adresse IP ou le nom du système dans les requêtes HTTP, dans la partie TAG: forwarded_for
, décommenter et modifier la ligne comme suit :
forwarded_for off
Messages d'erreur en français
Dans la partie TAG: error_directory
, décommenter et modifier la ligne comme suit :
error_directory /usr/share/squid/errors/French
Droits de l'utilisateur de Squid
L'utilisateur proxy de Squid nécessite d'appartenir au groupe root pour bénéficier des droits nécessaires sur les fichiers de journalisation de Squid, afin de rendre l'authentification fonctionnelle :
Changer le propriétaire des fichiers de journalisation de Squid :
sudo chown -R proxy:root /var/log/squid
sudo chown -R proxy:root /var/run/samba/winbindd_privileged
Changer le groupe du tampon de Squid :
Éditer le fichier /etc/squid/squid.conf,
Dans la partie TAG: cache_effective_group
, décommenter la ligne et y mettre le groupe root :
cache_effective_group root
Redémarrer Squid :
sudo /etc/init.d/squid restart
Modification de la mise en tampon de Squid
Mise en tampon de page web
Par défaut, le tampon de Squid est activé, ce qui permet d'accélérer le chargement de certaines pages. La taille par défaut est de 100 Mo (situé dans /var/spool/squid).
Pour changer sa taille, modifiez le fichier /etc/squid/squid.conf Trouvez la ligne:
# cache_dir ufs /var/spool/squid 100 16 256
Et décommentez-la. Vous pouvez changer la valeur 100 par ce que vous voulez (par exemple 200 pour 200 Mo): cache_dir ufs /var/spool/squid 200 16 256
Taille maximum de mémoire vive utilisée pour stocker le tampon
cache_mem 16 MB
# Taille maximum des objets stockés dans le tampon
maximum_object_size 15 MB
Tampon DNS
Modification du temps de tampon pour la résolution de nom "positive"; ex:
positive_dns_ttl 8 hours
Modification du temps de tampon pour la résolution de nom "négative"; ex:
negative_ttl 4 minutes
Rendre Squid transparent
Pour que Squid fonctionne comme un serveur mandataire transparent, il faut ajouter à la fin du port de Squid:
http_port 3128 transparent
Webmin (administration via une interface web de Squid)
Webmin est un outil d'administration web pour votre serveur ou machine Linux. Il permet de gérer le système, administrer les serveurs installés, etc.
Installation
Webmin n'étant pas dans les dépôts, il faut télécharger le fichier « .deb » d'installation de Webmin depuis leur site :
http://sourceforge.net/projects/webadmin/files/webmin/
Puis installer le paquet téléchargé.
Connexion
Pour administrer sa machine depuis Webmin, ouvrir un navigateur qui ne passe pas par ce serveur mandataire et y saisir l'adresse :
https://nom_machine:10000/
(nom_machine
peut être remplacé par l'IP de la machine)
Vous pouvez vous y connecter avec vos identifiants/mots de passe habituels.
Administration de Squid
- Pour administrer Squid, dérouler le menu servers puis Squid Proxy Server. Pour plus d'informations sur le module d'administration de Squid, regardez directement la doc du site de Webmin (en).
- Depuis Oneiric 11.10 un analyseur de journaux d'événements pour Squid est disponible dans les dépôts.
Pour l'installer, il suffit d'installer le paquet lightsquid.
Visionnement des logs
Trois principaux log viewers sont diponibles et consultables depuis Webmin : SARG, Calamaris et Webalizer.
Au choix, installer l'un des paquets sarg calamaris webalizer.
Dans l'interface Webmin, vous pouvez configurer et générer des rapports Squid via :
- Calamaris : Servers → Squid Proxy Server → Calamaris Log Analysis.
- SARG : Servers → Squid Analysis Report Generator.
- Webalizer : Servers → Webalizer Logfile Analysis.
Webalizer nécessite un dossier, à indiquer dans Webmin, dans lequel il enregistrera les rapports générés. Créer donc un dossier webalizer
dans le dossier personnel :
mkdir ~/webalizer
Désinstallation
Pour supprimer cette application, il suffit de supprimer son paquet. La configuration de l'application sera conservée ou supprimée selon la méthode de désinstallation que vous choisirez.
Applications associées
Beaucoup de logiciels sont complémentaires à Squid, et permettent de nouvelles fonctionnalités comme le filtrage de contenu, le blacklisting …
Beaucoup de logiciels sont complémentaires à Squid, et permettent de nouvelles fonctionnalités comme le filtrage de contenu, le blacklisting …Beaucoup de logiciels sont complémentaires à Squid, et permettent de nouvelles fonctionnalités comme le filtrage de contenu, le blacklisting …Beaucoup de logiciels sont complémentaires à Squid, et permettent de nouvelles fonctionnalités comme le filtrage de contenu, le blacklisting …
DansGuardian
Prostat
Liens
Voir aussi
- (fr) Tutoriel installation et configuration de SQUID sur Neoflow
- (fr) Tutoriel pour utiliser les heures et les dates avec SQUID sur Neoflow