Proxy Squid et analyse des logs
Sommaire
Un proxy s'intercale entre les postes et Internet. Il contrôle, filtre et journalise les accès web sortants.
1. Le rôle d'un proxy en sécurité
- Point de contrôle unique : tous les accès web passent par lui, on peut donc appliquer une politique homogène pour tout le parc.
- Filtrage d'URL et de catégories : blocage des sites malveillants connus, des catégories interdites par la charte.
- Journalisation : qui a consulté quoi et quand — élément de traçabilité, exploitable lors d'une investigation.
- Masquage du parc interne : les serveurs distants ne voient que l'adresse du proxy.
- Cache : réduction de la bande passante consommée sur les contenus répétitifs.
- Détection d'anomalies : un poste qui contacte en boucle un domaine inconnu est un bon signal de compromission (balise de commande et contrôle).
Point RGPD à ne pas oublier : la journalisation des accès web constitue un traitement de données personnelles. Elle doit être proportionnée, portée à la connaissance des salariés (charte informatique, information du CSE) et assortie d'une durée de conservation limitée.
2. Installation et configuration
sudo apt update
sudo apt install squid
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.bak
Extrait de configuration typique dans /etc/squid/squid.conf :
http_port 3128
acl reseau_local src 192.168.10.0/24
acl sites_interdits dstdomain "/etc/squid/blacklist.txt"
http_access deny sites_interdits
http_access allow reseau_local
http_access deny all
sudo systemctl restart squid
sudo systemctl status squid
L'ordre des directives http_access est déterminant : Squid applique la première règle qui
correspond. Le deny all final matérialise l'approche whitelist.
3. Configurer un client
Sur un poste Windows 10 : Paramètres > Réseau et Internet > Proxy, activer la configuration manuelle, saisir l'adresse du serveur Squid et le port 3128.
Limite de cette approche : un utilisateur peut désactiver le proxy dans ses paramètres. En production, on impose la configuration par GPO et on bloque au pare-feu toute sortie directe vers les ports 80 et 443 qui ne provient pas du proxy — sinon le contournement est trivial.
4. Lire les journaux
sudo tail -f /var/log/squid/access.log
Chaque ligne contient l'horodatage, l'adresse IP du client, le code de résultat, la taille de la réponse, la méthode HTTP et l'URL demandée.
# Top 10 des sites les plus consultés
awk '{print $7}' /var/log/squid/access.log | cut -d/ -f3 | sort | uniq -c | sort -rn | head
# Requêtes refusées
grep DENIED /var/log/squid/access.log