Squid est un proxy-cache très utilisé sous Linux. Il permet de mettre en cache les ressources web, d'optimiser la bande passante, de filtrer les accès et d'assurer un niveau de sécurité. Ce module approfondit les fonctionnalités avancées de Squid.
| Composant | Rôle |
|---|---|
| client | Navigateur ou application configuré pour utiliser le proxy. |
| Squid | Serveur proxy qui reçoit les requêtes, vérifie le cache, interroge le serveur distant si nécessaire. |
| Cache | Répertoire de stockage des objets (disque ou mémoire). |
| Logs | Fichiers d'accès et d'erreurs pour l'audit. |
Rediriger le trafic HTTP vers Squid avec iptables
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
Puis dans squid.conf :
http_port 3128 intercept
Créer un fichier d'utilisateurs
sudo htpasswd -c /etc/squid/passwd utilisateur1
Configurer Squid
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd auth_param basic children 5 auth_param basic realm Proxy acl authenticated proxy_auth REQUIRED http_access allow authenticated http_access deny all
acl bloque_sites dstdomain .facebook.com .youtube.com http_access deny bloque_sites
delay_pools 1 delay_class 1 1 delay_parameters 1 64000/64000 acl petit_debit src 192.168.1.0/24 delay_access 1 allow petit_debit
sudo tail -f /var/log/squid/access.log
Utiliser squidclient pour interroger le cache :
squidclient -h localhost -p 3128 mgr:info
Quelle est la différence entre un proxy standard et un proxy transparent ?
Le proxy transparent intercepte le trafic sans que le client ait besoin de configurer son navigateur. Il utilise généralement une redirection au niveau du routeur (iptables).
Écrire une ACL qui bloque l'accès au site twitter.com.
acl twitter dstdomain .twitter.com http_access deny twitter
1. Squid utilise le port 3128 par défaut.
2. Le mode transparent nécessite une configuration côté client.
3. dstdomain permet de filtrer par nom de domaine.
4. delay_pools permet de limiter le débit.
5. L'authentification NTLM est prise en charge par Squid.