Sommaire
🐧 Module L15 – Le proxy Squid
Objectifs : maîtriser l'installation, la configuration avancée, l'authentification et le filtrage avec Squid.
📖 Introduction
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.
À l'issue de ce module, vous serez capable de :
- Installer et configurer Squid en mode transparent.
- Mettre en place une authentification (basic, LDAP).
- Configurer des listes d'accès (ACL) avancées.
- Analyser les logs et optimiser le cache.
🔍 Squid : présentation
- Proxy HTTP/HTTPS : supporte les protocoles web.
- Cache : stocke les objets pour réduire la bande passante.
- ACL : contrôle d'accès fin (par IP, domaine, heure, etc.).
- Authentification : peut utiliser des fichiers, LDAP, NTLM.
- Mode transparent : redirection du trafic sans configuration client.
📐 Architecture 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. |
🛠️ Configuration avancée
Mode transparent
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
Authentification basique
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
Filtrage par domaine
acl bloque_sites dstdomain .facebook.com .youtube.com http_access deny bloque_sites
Limitation de bande passante
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
Logs et surveillance
sudo tail -f /var/log/squid/access.log
Utiliser squidclient pour interroger le cache :
squidclient -h localhost -p 3128 mgr:info
📝 Exercices d'application
Exercice 1 – Mode transparent
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).
Exercice 2 – ACL
Écrire une ACL qui bloque l'accès au site twitter.com.
acl twitter dstdomain .twitter.com http_access deny twitter
🎯 Quiz d'auto‑évaluation
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.