Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
squid [Le 17/05/2012, 20:48]
198.103.152.52 [Installation]
squid [Le 11/09/2022, 12:03] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 5: Ligne 5:
 ====== Squid : serveur mandataire (proxy) ====== ====== Squid : serveur mandataire (proxy) ======
  
-{{ http://​upload.wikimedia.org/​wikipedia/​fr/​b/​b7/​Squid-cache_logo.jpg|Logo Squid}} +{{ https://​upload.wikimedia.org/​wikipedia/​fr/​b/​b7/​Squid-cache_logo.jpg|Logo Squid}} 
-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.. +Squid est un serveur mandataire, en anglais un proxy, entièrement libre et très performant. ​Squid 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 tampon. 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 [[:​sudo|droits d'​administration]] ; +
-  * Disposer d'une connexion à Internet configurée et activée. +
- +
  
 ===== Installation ===== ===== Installation =====
- +[[:​tutoriel:​comment_installer_un_paquet|Installez ​le paquet]] **[[apt>squid]]**
-[[:​tutoriel:​comment_installer_un_paquet|Installer ​le paquet]] **[[apt://squid|squid]]**+
- +
-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 [[squid#​indiquer_le_nom_de_la_machine|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 ===== ===== 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.+Par défaut Squid est configuré et fonctionnel. Cependant, on peut apporter quelques modifications afin de l'​optimiser ou mieux l'​adapter à certains environnements.
  
-Le fichier de configuration de Squid est ''/​etc/​squid/​squid.conf'' ​ou ''/​etc/​squid3/​squid.conf''​ (selon les versions)+Le fichier de configuration de Squid est ''/​etc/​squid/​squid.conf''​. 
-Pour toute configuration,​ [[:​tutoriel:​comment_editer_un_fichier|éditer ​donc ce fichier]].+Pour toute configuration,​ [[:​tutoriel:​comment_editer_un_fichier|éditez ​donc ce fichier]].
  
 <note important>​ <note important>​
Ligne 45: Ligne 23:
  
 </​note>​ </​note>​
-== 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 : Pour l'​activer après une fausse manipulation :
Ligne 67: Ligne 33:
  
 <​note>​Pour le reconfigurer (à la place de stop et start ou restart qui prend du temps): <​note>​Pour le reconfigurer (à la place de stop et start ou restart qui prend du temps):
- sudo squid -k reconfigure</​note>​+ sudo squid -k reconfigure. "​service squid reload" ​ est aussi une autre solution pour recharger la configuration.</​note>​
  
 Voici quelques modifications utiles : Voici quelques modifications utiles :
  
-==== Autoriser les utilisateurs à utiliser le proxy ====+==== Autoriser les utilisateurs à utiliser le serveur mandataire ​====
  
-Rechercher la ligne commencant par "acl localhost src", et rajouter, après cette ligne, la ligne suivante : +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   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 proxy, 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)+(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 : +Rechercher ensuite la ligne "​http_access allow localhost"​ et rajouter, après cette ligne, la ligne suivante :
   http_access allow allowedips   http_access allow allowedips
   ​   ​
Ligne 84: Ligne 50:
 dans la partie **''​TAG:​ visible_hostname''​**,​ indiquer le nom de la machine comme suit : dans la partie **''​TAG:​ visible_hostname''​**,​ indiquer le nom de la machine comme suit :
  
-  visible_hostname ​nom_machine +  visible_hostname ​
 ==== Ne pas inclure l'​adresse IP dans les requêtes HTTP ==== ==== Ne pas inclure l'​adresse IP dans les requêtes HTTP ====
  
Ligne 103: Ligne 68:
 ==== Droits de l'​utilisateur de Squid ==== ==== 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 :+L'​utilisateur //proxy// de Squid doit 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 : Changer le propriétaire des fichiers de journalisation de Squid :
Ligne 134: Ligne 99:
 <​code>#​ cache_dir ufs /​var/​spool/​squid 100 16 256</​code>​ <​code>#​ cache_dir ufs /​var/​spool/​squid 100 16 256</​code>​
  
-Et décommentez-la. Vous pouvez changer la valeur 100 par ce que vous voulez (par exemple 200 pour 200 Mo):+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 cache_dir ufs /​var/​spool/​squid 200 16 256
  
-Taille maximum de mémoire vive utilisée pour stocker le tampon+Taille maximum de mémoire vive utilisée pour stocker le tampon ​:
 <​code>​cache_mem 16 MB</​code>​ <​code>​cache_mem 16 MB</​code>​
  
-# Taille maximum des objets stockés dans le tampon+# Taille maximum des objets stockés dans le tampon ​:
 <​code>​maximum_object_size 15 MB</​code>​ <​code>​maximum_object_size 15 MB</​code>​
  
-=== Cache DNS ===+=== Tampon ​DNS ===
  
-<​note>​Par defaut, ​squid est configuré pour garder 6 heures le tampon DNS dont il a pu résoudre le nom et 5 minutes celui dont il n'a pas pu résoudre le nom DNS</​note>​+<​note>​Par defaut, ​Squid est configuré pour garder 6 heures le tampon DNS dont il a pu résoudre le nom et 5 minutes celui dont il n'a pas pu résoudre le nom DNS.</​note>​
  
-Modification du temps de tampon pour la résolution de nom "​positive";​ ex:+Modification du temps de tampon pour la résolution de nom "​positive";​ ex :
 <​code>​positive_dns_ttl 8 hours</​code>​ <​code>​positive_dns_ttl 8 hours</​code>​
  
-Modification du temps de tampon pour la résolution de nom "​négative";​ ex: +Modification du temps de tampon pour la résolution de nom "​négative";​ ex : 
-<​code>​negative_ttl ​4 minutes</​code>​+<​code>​negative_dns_ttl ​4 minutes</​code>​
  
  
-==== Rendre ​squid transparent ====+==== Rendre ​Squid transparent ====
  
-Pour que squid fonctionne ​en proxy transparent,​ il faut ajouter à la fin du port de squid:+Pour que Squid fonctionne ​comme un serveur mandataire ​transparent,​ il faut ajouter à la fin du port de Squid :
 <​code>​ <​code>​
 http_port 3128 transparent http_port 3128 transparent
 </​code>​ </​code>​
  
-<note important>​Pour rendre le proxy transparent,​ il faut au préalable configurer ​iptables ​ou un autre pour qu'​il ​fasse une redirection vers le proxy</note>+Puis exécuter la commande suivante pour indiquer à **iptables** qu'​il ​doit rediriger les requêtes provenant du port 80 sur celui de Squid, ​le 3128 : 
 +<​note ​important> 
 +Pensez à bien modifier l'​interface réseau **eth0** par celle que vous utilisez !
  
 +L'​option **-s 192.168.0.0/​24** est facultative si vous souhaitez que tous vos réseaux passent par le proxy, mais si vous voulez l'​utiliser pensez à changer l'​adresse par la vôtre !
 +</​note>​
 +<​code>​
 +sudo iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/​24 -p tcp --dport 80 -j REDIRECT --to-port 3128
 +</​code>​
 +
 +Si vous utilisez squid sur votre propre PC, il faut configurer iptables pour laisser passer les requêtes de squid (qui tourne sous l'​utilisateur proxy) et rediriger les autres requêtes vers le port 3128.
 +<​code>​
 +sudo iptables -t nat -A OUTPUT --match owner --uid-owner proxy -p tcp --dport 80 -j ACCEPT
 +sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 3128
 +</​code>​
 +
 +Relancer Squid avec la nouvelle configuration :
 +<​code>​
 +sudo squid -k reconfigure
 +</​code>​
 +==== Bloquer les sites dans un fichier ​ ====
 +Ajouter ces lignes, dans le fichier: /​etc/​squid/​squid.conf
 +<​code>​
 +acl liste_url dstdomain "/​etc/​squid/​liste-sites.txt"​
 +http_access deny liste_url
 +</​code>​
 +
 +Créer le fichier: "/​etc/​squid/​liste-sites.txt"​
 +<​code>​
 +.youtube.com
 +.facebook.com
 +</​code>​
 ===== Webmin (administration via une interface web de Squid) ===== ===== Webmin (administration via une interface web de Squid) =====
  
-[[:Webmin]] est un panel d'​administration web pour votre serveur ou machine Linux. Il permet de gérer le système, administrer les serveurs installés, etc.+[[: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 ==== ==== Installation ====
Ligne 171: Ligne 166:
 Webmin n'​étant pas dans les dépôts, il faut télécharger le fichier « .deb » d'​installation de Webmin depuis leur site : 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/​+https://​sourceforge.net/​projects/​webadmin/​files/​webmin/​
  
 Puis [[:​tutoriel:​comment_installer_un_paquet#​paquet_.deb_telecharge|installer]] le paquet téléchargé. Puis [[:​tutoriel:​comment_installer_un_paquet#​paquet_.deb_telecharge|installer]] le paquet téléchargé.
Ligne 177: Ligne 172:
 ==== Connexion ==== ==== Connexion ====
  
-Pour administrer sa machine depuis Webmin, ouvrir un navigateur **qui ne passe pas par ce proxy** et y taper l'​adresse :+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/​   https://​nom_machine:​10000/​
  
-(''​nom_machine'' ​peut être remplacé par l'IP de la machine)+(''​nom_machine'' ​doit être remplacé par l'​IP ​ou le hostname ​de la machine)
  
 Vous pouvez vous y connecter avec vos identifiants/​mots de passe habituels. Vous pouvez vous y connecter avec vos identifiants/​mots de passe habituels.
Ligne 187: Ligne 182:
 ==== Administration de Squid ==== ==== 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, ​regarder ​directement la [[http://​doxfer.com/​Webmin/​SquidProxyServer|doc du site de Webmin]] (en).+  * 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 [[http://​doxfer.webmin.com/​Webmin/​Squid_Proxy_Server|doc du site de Webmin]] (en).
  
-  * Depuis Oneiric 11.10 un analyseur de log pour Squid est disponible dans les dépôts.+  * Un analyseur de journaux d'​événements ​pour Squid est disponible dans les dépôts.
  
-Pour l'​installer,​ il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt://​lightsquid|lightsquid]]**.+Pour l'​installer,​ il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>lightsquid]]**.
  
-==== Visionnement des logs ==== 
  
-Trois principaux //log viewers// sont diponibles et consultables depuis Webmin : //SARG//, //​Calamaris//​ et //​Webalizer//​. 
- 
-Au choix, [[:​tutoriel:​comment_installer_un_paquet|installer l'un des paquets]] **[[apt://​sarg|sarg]]** **[[apt://​calamaris|calamaris]]** **[[apt://​webalizer|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 : //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 :+Webalizer nécessite un dossier, à indiquer dans Webmin, dans lequel il enregistrera les rapports générés. ​Créez ​donc un dossier ''​webalizer''​ dans le dossier personnel :
  
   mkdir ~/webalizer   mkdir ~/webalizer
Ligne 215: Ligne 202:
  
 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 ...Beaucoup de logiciels sont complémentaires à Squid, et permettent de nouvelles fonctionnalités comme le filtrage de contenu, le blacklisting ... 
 ==== DansGuardian ==== ==== DansGuardian ====
  
-[[dansguardian]] +Reportez-vous à la page [[dansguardian|Contrôle parental avec DansGuardian]]\\ 
 +Filtrage de contenu web voir [[http://​e2guardian.org/​]],​ (explications : [[https://​numsys.eu/​0sys_commentaires.php?​com=53|ici]])
 ==== Prostat ==== ==== Prostat ====
 +Outil de statistiques pour Squid
 +[[https://​hany.sk/​~hany/​software/​prostat/​index_body.html]]
  
-FIXME 
  
- +accorde l'​accès aux client ?===== Liens =====
-===== Liens =====+
  
   * [[http://​www.squid-cache.org|Site officiel de Squid]] [en]   * [[http://​www.squid-cache.org|Site officiel de Squid]] [en]
   * [[:​tutoriel:​comment_mettre_en_place_un_proxy_squid_avec_authentification_active_directory|Squid avec authentification depuis Active Directory]] [fr]   * [[:​tutoriel:​comment_mettre_en_place_un_proxy_squid_avec_authentification_active_directory|Squid avec authentification depuis Active Directory]] [fr]
-  * [[:​tutoriel:​comment_mettre_en_place_un_proxy_squid_avec_authentification_ncsa|Squid avec authentification ​basic]] [fr] +  * [[:​tutoriel:​comment_mettre_en_place_un_proxy_squid_avec_authentification_ncsa|Squid avec authentification ​de base]] [fr] 
-  * [[http://​www.opendoc.net/​comment-realiser-solution-filtrage-contenus-squid-squiguard-havp-clamav|Comment réaliser une solution de filtrage de contenus ​avec Squid, Squiguard, Havp et ClamAV ?]] [fr]+  * [[http://​www.opendoc.net/solutions/​comment-realiser-solution-filtrage-contenus-squid-squiguard-havp-clamav?s[]=squid|Comment réaliser une solution de filtrage de contenu ​avec Squid, Squiguard, Havp et ClamAV ?]] [fr] >>​aucune doc sur site distant<<​ 
 +===== Voir aussi =====
  
-===== Voir aussi =====+  * **(fr)** [[http://​www.it-connect.fr/​tutoriels/​unix-linux/​squid/​|Plusieurs tutoriels sur l'​installation et la configuration de SQUID]] sur IT-Connect
  
-  * **(fr)** [[http://​neoflow.fr/​accueil/​modules/​smartsection/​item.php?​itemid=24|Tutoriel installation et configuration de SQUID]] sur Neoflow 
-  * **(fr)** [[http://​neoflow.fr/​accueil/​modules/​smartsection/​item.php?​itemid=65|Tutoriel pour utiliser les heures et les dates avec SQUID]] sur Neoflow 
 ---- ----
-//​Contributeurs : [[utilisateurs:​v0n]],​ [[utilisateurs:​k20]],​ yakusa77// ​+//​Contributeurs : [[utilisateurs:​v0n]],​ [[utilisateurs:​k20]],​ yakusa77//
  • squid.1337280524.txt.gz
  • Dernière modification: Le 17/05/2012, 20:48
  • par 198.103.152.52