Guide des technologies

Configurer un proxy Squid avec DansGuardian et ipmasq

7 min read réseau Mis à jour 11 Oct 2025
Proxy Squid + DansGuardian : guide d'installation
Proxy Squid + DansGuardian : guide d'installation

Vue d’ensemble et prérequis

Objectif principal : mettre en place un proxy HTTP transparent avec authentification NTLM via winbind + Squid, filtrage par DansGuardian, et redirection réseau par ipmasq.

Prérequis techniques :

  • Accès root sur le serveur Linux (ex. Ubuntu).
  • Squid, DansGuardian, Samba/winbind et ipmasq installés ou installables.
  • Machine jointe au domaine (pour NTLM automatique) si vous souhaitez l’authentification transparente.

Important : conservez toujours une sauvegarde de la configuration avant toute modification.

Configuration de Squid

  1. Faire une sauvegarde du fichier de configuration et l’éditer :
cp /etc/squid/squid.conf /etc/squid/squid.conf.bak
nano -c /etc/squid/squid.conf
  1. Modifier les lignes indiquées (les numéros proviennent du fichier original) :
  • Remplacez la ligne 73 par :

http_port 127.0.0.1:3128 transparent

  • Remplacez la ligne 74 par :

http_port 8080

  • Remplacez la ligne 593 par :

cache_peer 127.0.0.1 parent 8081 0 no-query login=*:nopassword

  1. Activer les helpers NTLM/Basic pour l’authentification :
  • Décommentez les lignes 1791 à 1783 et remplacez le texte d’espace réservé par :

/usr/bin/ntlm_auth –helper-protocol=squid-2.5-ntlmssp

  • Décommentez les lignes 1800 à 1803 et remplacez le texte d’espace réservé par :

/usr/bin/ntlm_auth –helper-protocol=squid-2.5-basic

  1. Règles d’accès et en-têtes :
  • Changez la ligne 2449 en :

acl ntlm_auth proxy_auth REQUIRED

  • Changez la ligne 2579 en :

http_access allow ntlm_auth

  • Changez la ligne 3161 en :

forwarded_for off

Note importante : la directive forwarded_for off empêche Squid d’envoyer l’adresse IP interne du client aux sites web. Laisser la valeur par défaut peut exposer vos IP privées.

  1. Sauvegardez le fichier et redémarrez Squid après vérification de la syntaxe.

Permission pour winbind (winbindd_privileged)

Squid a besoin d’accéder à /var/run/samba/winbindd_privileged pour NTLM. Les permissions peuvent être réinitialisées au reboot : un petit script d’init corrige les droits à chaque démarrage.

Éditez /etc/init.d/winbind-ch.sh et collez le contenu suivant :

#!/bin/sh
#set -x
WINBINDD_PRIVILEGED=/var/run/samba/winbindd_privileged
chmodgrp() {
chgrp proxy $WINBINDD_PRIVILEGED || return 1
chmod g+w $WINBINDD_PRIVILEGED || return 1
}
case "$1" in
start)
chmodgrp
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop)
;;
*)
echo "Usage: $0 start|stop" >&2
exit 3
;;
esac
#EOF

Puis activez-le au démarrage :

update-rc.d winbind-ch.sh start 21 2 3 4 5 .

Conseil : vérifiez que le groupe “proxy” existe et que l’utilisateur du démon Squid en est membre.

Configuration de DansGuardian

  1. Éditez le fichier principal :
nano -c /etc/dansguardian/dansguardian.conf
  • Commentez la ligne 3 (si indiqué).
  • Allez à la ligne 62 et changez le port 8080 en 8081 (dans notre flux, DansGuardian écoute 8081 et Squid en 8080).
  • Changez filtergroups = 1 (ligne 102) en :

filtergroups = 2

  1. Créez le deuxième groupe de filtrage :
cp /etc/dansguardian/dansguardianf1.conf /etc/dansguardian/dansguardianf2.conf
nano -c /etc/dansguardian/dansguardianf2.conf
  • Dans ce second fichier, à la ligne 29, définissez :

naughtynesslimit = 100

  1. Exceptions pour définitions antivirus

Les définitions d’antivirus (AV) ne doivent pas être scannées par DansGuardian car elles risquent d’être bloquées.

  • Éditez /etc/dansguardian/exceptionvirussitelist et ajoutez le nom d’hôte du site de mise à jour AV, par exemple :

activeupdate.trendmicro.com

  • Ajoutez aussi le domaine dans /etc/dansguardian/exceptionsitelist si nécessaire, par exemple :

trendmicro.com

  1. Redémarrer DansGuardian :
/etc/init.d/dansguardian restart

Configuration du pare-feu avec ipmasq

Ipmasq simplifie la création de règles NAT/filtrage. Installez puis copiez l’exemple de règle pour la redirection vers DansGuardian :

apt-get install ipmasq -y

Copiez la règle de transparence (redirige tout le HTTP sortant vers 8081) :

cp /usr/share/doc/ipmasq/examples/basics/I89tproxy.rul /etc/ipmasq/rules/I89tproxy.rul

Si vous avez un serveur interne nécessitant du DNAT, regardez : /usr/share/doc/ipmasq/examples/dnat/C50dnat.rul

Remarque : adaptez les interfaces et les réseaux indiqués dans la règle selon votre topologie réseau (LAN, WAN, DMZ).

Installer le module Webmin pour DansGuardian

  1. Ouvrez un navigateur sur :

https://192.168.1.1:10000/ (remplacez par l’IP de votre serveur Webmin)

  1. Connectez-vous en root. Allez dans Webmin > Webmin Configuration > Webmin Modules. Choisissez l’option permettant d’installer depuis une URL et collez :

http://internap.dl.sourceforge.net/sourceforge/dgwebminmodule/dg-0.5.10-pr5.wbm

  1. Cliquez sur Installer le module et suivez les instructions.

Tests finaux et procédure de validation

  1. Rebootez la machine après avoir déployé toutes les modifications.

  2. Configurez un navigateur pour utiliser l’IP du serveur proxy et le port 8080.

  3. Si la machine cliente est jointe au domaine, l’authentification NTLM devrait être transparente et vous connecter automatiquement.

  4. Pour Internet Explorer, si NTLM échoue, l’utilisateur doit saisir domaine\nom_utilisateur (spécifier le nom du domaine suivi d’un antislash).

  5. Testez depuis :

    • Un poste join au domaine (doit voir le nom d’utilisateur dans les logs DansGuardian).
    • Un poste non joint au domaine et sans configuration de proxy (doit être redirigé via DansGuardian, mais sans authentification NTLM).
  6. Vérifiez les logs : DansGuardian et Squid (généralement /var/log/dansguardian/ et /var/log/squid/) ainsi que /var/log/syslog pour les erreurs système.

Symptômes courants et où regarder :

  • Pas d’authentification NTLM : vérifiez winbind, samba, et la présence du fichier /var/run/samba/winbindd_privileged.
  • Erreurs d’accès 403/407 : vérifier les règles http_access et l’ordre des ACL dans squid.conf.
  • IP internes visibles par les sites : vérifiez forwarded_for off.

Checklist par rôle

Administrateur réseau

  • Sauvegarde de /etc/squid/squid.conf et /etc/dansguardian/dansguardian.conf
  • Vérifier que winbind tourne et que les permissions sont correctes
  • Tester règles iptables/ipmasq et persistance

Administrateur système

  • S’assurer que le script /etc/init.d/winbind-ch.sh est exécutable et inscrit au démarrage
  • Vérifier versions de Squid/DansGuardian compatibles

Support/helpdesk

  • Procédure de contournement pour poste non joint au domaine
  • Phrase à indiquer aux utilisateurs pour IE : “domaine\utilisateur”

Méthodologie rapide (mini-procédé)

  1. Sauvegarder configurations existantes.
  2. Appliquer modifications Squid (ports, cache_peer, ACL).
  3. Mettre en place script de permission winbind.
  4. Configurer DansGuardian et groupes de filtres.
  5. Déployer règles ipmasq pour la redirection transparente.
  6. Redémarrer services et valider via logs et tests utilisateurs.

Sécurité et confidentialité

  • forwarded_for off réduit les fuites d’adresses IP internes vers les sites externes.
  • Limitez l’accès aux logs (surtout aux fichiers montrant les correspondances utilisateur <-> URL).
  • Définissez une politique de conservation des logs (durée, accès restreint) conforme aux règles internes et, si applicable, au RGPD. Par exemple, anonymiser les IPs si la conservation détaillée n’est pas nécessaire.
  • Restreignez l’accès Webmin (gestion à distance) via firewall, VPN ou ACLs IP.

Note RGPD : les journaux d’accès peuvent contenir des données personnelles (utilisateurs, adresses IP). Traitez-les conformément à la politique de confidentialité et minimisez la durée de conservation.

Scénarios où cela peut échouer

  • Machine cliente avec un proxy configuré manuellement pointant ailleurs : le trafic ne passera pas par votre chaîne Squid->DansGuardian.
  • Services Samba/winbind non configurés pour le domaine : NTLM échoue.
  • Conflits de ports (8080/8081/3128) si d’autres services les utilisent.

Critères d’acceptation

  • Les machines jointes au domaine naviguent et leur nom d’utilisateur apparaît dans les logs DansGuardian.
  • Les machines non jointes peuvent naviguer mais sans authentification NTLM.
  • Les sites externes ne reçoivent pas l’adresse IP privée des clients (forwarded_for off).
  • Les mises à jour AV listées dans exceptionvirussitelist ne sont pas bloquées.

Dépannage avancé (raccourci)

  1. Vérifier les services : systemctl status squid samba winbind dansguardian ipmasq
  2. Tester ntlm_auth localement :
/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
  1. Reproduire la requête HTTP sur le serveur et inspecter l’en-tête Via et X-Forwarded-For.
  2. Sur les logs, recherchez des erreurs explicites (connexion refusée, permission denied, proxy authentication required).

Liens utiles

Résumé

  • Ce guide couvre la configuration conjointe de Squid, DansGuardian et ipmasq pour un proxy transparent avec authentification NTLM.
  • Respectez les étapes de sauvegarde, modifiez les lignes exactes indiquées dans squid.conf, corrigez les permissions de winbind, et créez les exceptions pour les mises à jour antivirus.
  • Testez depuis postes joints et non joints au domaine, vérifiez logs et syslog, et appliquez les bonnes pratiques de sécurité et de conservation des logs.
Auteur
Édition

Matériaux similaires

Créer une appli Android sans coder — 8 outils
Mobile

Créer une appli Android sans coder — 8 outils

Restaurer une barre latérale sur Windows 11/10
Windows

Restaurer une barre latérale sur Windows 11/10

Récupérer fichiers supprimés Teams
Support technique

Récupérer fichiers supprimés Teams

Apps iPhone payantes gratuites sans jailbreak
iOS

Apps iPhone payantes gratuites sans jailbreak

Remplacer un disque RAID1 avec mdadm
Administration système

Remplacer un disque RAID1 avec mdadm

Installer Opigno LMS sur Ubuntu 18.04
Tutoriel

Installer Opigno LMS sur Ubuntu 18.04