User Tools

Site Tools


informatique:logiciels:squid

This is an old revision of the document!


Table of Contents

Squid

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 faut donc le spécifier dans les propriétés de connexion de votre navigateur.

Il faut maintenant permettre à votre IP d'accéder au service, et ça se règle toujours dans le fichier de configuration /etc/squid/squid.conf vers la ligne 2578. En suivant la syntaxe proposée on permet l'accès à tout notre LAN :

# création d'une acl = définition des clients
# syntaxe = 192.168.0.0/24 ou 192.168.0.0/255.255.255.0
#    ou par URL cible : dstdomain .hotmail.com
acl my_lan src 192.168.0.0/24
# attribution des droits à mon acl
http_access allow my_lan
[..]
# vérifier que les accès non autorisés explicitement sont interdits
http_access deny all

On peut aussi tuner les paramètres suivants (toujours dans le même fichier) :

# 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

Pour créer un proxy transparent, on peut utiliser la règle de redirection iptables suivante sur un routeur :

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

Cela redirige toutes les requêtes HTTP et HTTPS vers le proxy Squid de manière transparente.

Pour faire du filtrage avancé (avec des blacklistes notamment), il est conseiller de regarder du coté de squidguard qui fait cela très bien.

Tips

  • Tester la configuration sans redémarrer le process : squid -k parse
  • afficher les timestamp des logs au format human readable :
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

Erreurs

Il se peut qu'il ne se lance pas avec l'erreur suivante :

FATAL: Could not determine fully qualified hostname. Please set 'visible_hostname'

A ce moment-là il faut compléter le fichier de configuration /etc/squid/squid.conf par :

visible_hostname <n'importe quoi sauf rien>
informatique/logiciels/squid.1600442989.txt.gz · Last modified: 2020/09/18 15:29 by pteu