← Cybersécurité

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 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