User Tools

Site Tools


informatique:logiciels:squid

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
informatique:logiciels:squid [2009/06/08 20:15] – édition externe 127.0.0.1informatique:logiciels:squid [2020/10/26 18:22] – Installation du couple Squid + Squidguard pteu
Line 1: Line 1:
-{{tag>proxy http}} 
  
-======Squid======+======Squid / Squidguard======
  
-Squid est un proxy libre.+[[http://www.squid-cache.org/|Squid]] est un proxy libre. Il permet de relayer des requêtes de différents protocoles dont HTTP ou HTTPS après filtrage, QoS ou autre. Par défaut Squid utilise sur le port 3128.
  
-Il se peut qu'il ne se lance pas pour cause de :+[[http://www.squidguard.org/|Squidguard]] est un redirecteur d'URL qui se greffe sur Squid ; il permet notamment de gérer facilement et rapidement des bases de blacklistes.
  
-  FATAL: Could not determine fully qualified hostname. Please set 'visible_hostname'+=====Installation du couple Squid + Squidguard=====
  
-A ce moment-là il faut, comme indiqué, compléter ''/etc/squid/squid.conf'' par+Installation : 
 +<code bash> 
 +aptitude install squidguard 
 +</code>
  
-  visible_hostname <n'importe quoi sauf rien>+====Config de Squid====
  
-En l'état actuel des choses squid se lance sur le port 3128, il faut donc le spécifier dans les propriétés de connexion de votre navigateur.+Réduction du fichier de conf de Squid, un peu trop verbeux : 
 +<code bash> 
 +cd /etc/squid/ 
 +mv squid.conf squid.conf.orig 
 +grep -Ev '^$|^[[:blank:]]*#' squid.conf.orig > squid.conf 
 +</code>
  
-Il faut maintenant permettre à votre IP d'accéder au service, et ça se règle dans ''/etc/squid/squid.conf'' vers la ligne 2578En suivant la syntaxe proposée on permet l'accès à tout notre LAN :+Personnalisation du squid.conf 
 +<code bash> 
 +# timestamp des logs avec la date "human-readable" 
 +logformat squid %tl.%03tu %6tr %>a %Ss/%03>Hs %<st %rm %ru %[un %Sh/%<a %mt 
 +# permettre aux IPs e notre LAN de sortir ! 
 +acl localnet src 192.168.0.0/16 
 +http_access allow localnet 
 +</code>
  
-  acl my_lan src 192.168.0.0/24 +Tester la conf de Squid et relancer le service si OK : 
-  http_access allow my_lan +<code bash> 
-  [..] +squid -k parse 
-  And finally deny all other access to this proxy +systemctl reload squid 
-  http_access deny all+</code> 
 + 
 +====Ajout de Squidguard==== 
 + 
 +Editer le fichier dsuid.conf : 
 +<code bash> 
 +# conf squidguard 
 +url_rewrite_program /usr/bin/squidGuard -c /etc/squidguard/squidGuard.conf 
 +url_rewrite_children 4 
 +</code> 
 + 
 +Copier le template de page d'erreur sur Squidguard : 
 +<code bash> 
 +gunzip /usr/share/doc/squidguard/examples/squidGuard-simple.cgi.gz 
 +mv /usr/share/doc/squidguard/examples/squidGuard-simple.cgi /usr/lib/cgi-bin/ 
 +chown www-data:www-data /usr/lib/cgi-bin/squidGuard-simple.cgi 
 +chmod +x /usr/lib/cgi-bin/squidGuard-simple.cgi 
 +</code> 
 + 
 +Télécharger et installer des blacklistes : 
 +<code bash> 
 +cd /var/lib/squidguard/db/ 
 +wget ftp://ftp.univ-tlse1.fr/blacklist/blacklists.tar.gz 
 +tar xzf blacklists.tar.gz 
 +chown -R proxy:proxy blacklists 
 +cd blacklists 
 + 
 +# vérifier le contenu de ce qu'on vient de télécharger : 
 +ls -l 
 +</code> 
 + 
 +Configurer les blacklistes "porn" dans squidguard.conf : 
 +<code bash> 
 +dbhome /var/lib/squidguard/db 
 +logdir /var/log/squidguard 
 +src localnet { 
 +        ip 192.168.0.0/16 
 +
 +dest porn { 
 +        urllist         blacklists/porn/urls 
 +        domainlist      blacklists/porn/domains 
 +        expressionlist  blacklists/porn/very_restrictive_expression 
 +
 +acl { 
 + localnet { 
 + pass !porn any 
 +
 + default { 
 +  pass     local none 
 + redirect http://127.0.0.1/cgi-bin/squidGuard-simple.cgi?clientaddr=%a&clientname=%n&clientuser=%i&clientgroup=%s&targetgroup=%t&url=%u 
 +
 +
 +</code> 
 + 
 +Compiler les blacklistes 
 +<code bash> 
 +su proxy 
 +squidGuard -C all 
 + 
 +# Vérification : 
 +tail -f /var/log/squid/squidGuard.log 
 +</code> 
 + 
 + 
 +=====En vrac===== 
 + 
 +On peut aussi tuner les paramètres suivants (toujours dans le même fichier) : 
 +<code bash> 
 +# numéro du port d'écoute 
 +http_port 3128 
 +# taille du cache en mémoire vive 
 +# (attention le cache est perdu lors d'un squid reload/restart) 
 +cache_mem 8 MB 
 +# format, emplacement et taille du cache sur le disque 
 +# ici 100 MB de cache dans le fichier /var/spool/squid au format ufs 
 +# 16 et 256 correspondent au nombre de dossiers niveau 1 et niveau 2 utilisés pour le cache 
 +cache_dir ufs /var/spool/squid 100 16 256 
 +</code> 
 + 
 +====Proxy transparent==== 
 + 
 +Pour créer un proxy transparent, on peut utiliser la règle de redirection **iptables** suivante sur un routeur : 
 +<code bash> 
 +iptables -t nat -A PREROUTING -p tcp --dport 80  -j DNAT --to-dest proxyhost:3128 
 +iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-dest proxyhost:3128 
 +</code> 
 +Cela redirige toutes les requêtes HTTP et HTTPS vers le proxy Squid de manière transparente. 
 + 
 + 
 +=====Tips===== 
 + 
 +  * Tester la configuration sans redémarrer le process : ''squid -k parse'' 
 +  * afficher les timestamp des logs au format //human readable// : 
 +<code bash> 
 +cat access.log | perl -p -e 's/^([0-9]*)/"[".localtime($1)."]"/e' 
 + 
 +ou avec le très bon viewer de logs ccze : 
 +cat access.log | ccze -CA 
 + 
 +# ou modifiant le logformat dans le fichier de conf de squid (/etc/squid/squid.conf) 
 +logformat squid %tl.%03tu %6tr %>a %Ss/%03>Hs %<st %rm %ru %[un %Sh/%<a %mt 
 +</code> 
 + 
 + 
 +=====Erreurs===== 
 + 
 +Il se peut qu'il ne se lance pas avec l'erreur suivante : 
 +<code bash> 
 +FATAL: Could not determine fully qualified hostname. Please set 'visible_hostname' 
 +</code> 
 + 
 +A ce moment-là il faut compléter le fichier de configuration ''/etc/squid/squid.conf'' par : 
 +<code bash> 
 +visible_hostname <n'importe quoi sauf rien> 
 +</code> 
 + 
 + 
 +=====Ressources===== 
 + 
 +  * http://irp.nain-t.net/doku.php/220squid:060_squidguard
informatique/logiciels/squid.txt · Last modified: 2021/09/24 08:10 by pteu