Comment installer et configurer Dansguardian avec filtrage multi-groupes et Squid avec authentification NTLM sur Debian Etch
Vue d’ensemble rapide
Objectif principal : déployer une passerelle Internet avec filtrage par groupe d’utilisateurs et authentification unique NTLM pour les postes. Composants clés :
- Dansguardian : filtre HTTP/HTTPS au niveau applicatif.
- Squid : proxy HTTP/HTTPS, ici configuré pour NTLM (authentification Windows intégrée).
- dnsmasq : résolveur et serveur DHCP léger, intégré à resolvconf.
- resolvconf : gestion dynamique des serveurs DNS (utile pour connexions PPP/DHCP).
- Samba + Winbind + Kerberos : joindre le serveur au domaine Active Directory.
Définitions rapides :
- NTLM : protocole d’authentification Windows côté réseau.
- Kerberos : protocole d’authentification réseau basé sur tickets.
- Winbind : service qui expose les comptes AD sur Linux.
Pré-requis matériels et installation de base
Ce how‑to nécessite deux interfaces réseau (NIC) pour la traduction d’adresses et le proxy transparent. Installez Debian Etch avec le système de base seulement.
Suppositions réseau pour ce guide :
- eth0 : interface externe (IP statique ou dynamique).
- eth1 : interface interne, adresse statique 192.168.1.1/24.
L’installation de base n’installe pas SSH. Installez-le :
apt-get install ssh openssh-serverUne fois SSH installé, vous pouvez poursuivre depuis une session SSH.
Important : ClamAV dans Etch présente un bug de démarrage qui ralentit Dansguardian. Ce guide montre comment récupérer une version depuis Debian Backports pour contourner le problème.
Repositories et préférences APT
Ajoutez ces lignes dans /etc/apt/sources.lst :
deb http://download.webmin.com/download/repository sarge contrib
deb http://www.backports.org/debian etch-backports main contrib non-freePour forcer APT à ne récupérer ClamAV que depuis backports, éditez /etc/apt/preferences et ajoutez :
Package: clamav
Pin: release a=etch-backports
Pin-Priority: 999
Package: clamav-base
Pin: release a=etch-backports
Pin-Priority: 999
Package: clamav-freshclam
Pin: release a=etch-backports
Pin-Priority: 999
Package: libclamav2
Pin: release a=etch-backports
Pin-Priority: 999Note : si une version officielle corrige le bug, cette étape peut devenir inutile.
Mise à jour et installation des paquets nécessaires :
apt-get update
apt-get install debian-backports-keyring
apt-get install dnsmasq webmin squid dansguardian samba winbind krb5-user libcompress-zlib-perl resolvconf ntp ntpdatePendant l’installation, vous serez invité à répondre à plusieurs questions sensibles à la casse.
Exemples de réponses (respectez la casse) :
- Nom du groupe de travail : EXAMPLEDOMAIN
- Modifier smb.conf pour utiliser WINS depuis DHCP ? : No
- Serveurs Kerberos pour votre realm : domaincontroller.EXAMPLEDOMAIN.LOCAL
- Serveur administratif Kerberos : domaincontroller.EXAMPLEDOMAIN.LOCAL
Configurez krb5 :
dpkg-reconfigure krb5-configRéponses supplémentaires :
- Royaume Kerberos par défaut : EXAMPLEDOMAIN.LOCAL
- DNS contient des pointeurs vers les serveurs Kerberos ? : Yes
Configurer resolvconf et dnsmasq
Les connexions Internet dynamiques peuvent mettre à jour les serveurs DNS (pppd/dhcp) et casser Kerberos. resolvconf évite ce problème en centralisant la gestion des résolveurs.
Éditez /etc/resolvconf/resolv.conf.d/head et ajoutez la recherche DNS :
search exampledomain.localdnsmasq : forwarder DNS et serveur DHCP léger. Vérifiez le fichier /var/run/dnsmasq/resolv.conf et adaptez-le :
nameserver
nameserver
nameserver Editez /etc/dnsmasq.conf pour optimiser performance et sécurité :
nano -c /etc/dnsmasq.conf- Décommentez les lignes 14 et 16.
- Décommentez la ligne 71 et ajoutez eth0 à la fin.
Le DHCP de dnsmasq est désactivé par défaut ; si vous l’activez, commencez près de la ligne 100. Les options DNS avancées se trouvent après la ligne 307.
Configurer NTP vers le contrôleur de domaine
Editez /etc/ntp.conf :
nano -c /etc/ntp.confCommentez les lignes 19 à 22 et insérez :
server domaincontroller.exampledomain.local iburstSynchroniser l’heure avec le contrôleur de domaine est crucial pour Kerberos.
Configurer Samba et joindre le domaine
Faites une sauvegarde puis éditez smb.conf :
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
nano -c /etc/samba/smb.confExemples de modifications :
- Sur la ligne 53 : ajoutez interfaces = 192.168.1.1/255.255.255.0
- Décommentez la ligne 59.
- Sur la ligne 91 : changez en security = ads
- Décommentez les lignes 204 et 205.
Ajoutez avant la ligne 217 :
winbind trusted domains only = yes
realm = EXAMPLEDOMAIN.LOCAL
winbind cache time = 3600Redémarrez les services et synchronisez l’heure :
net time set -S domaincontroller
/etc/init.d/samba restart
/etc/init.d/winbind restartPuis joignez le domaine :
net ads join -U AdministratorPour vérifier :
wbinfo -tLa sortie attendue : “checking the trust secret via RPC calls succeeded”
wbinfo -uListe des utilisateurs du domaine.
wbinfo -gListe des groupes du domaine.
Points importants de configuration de Dansguardian et Squid
Résumé des bonnes pratiques :
- Déployez Squid devant Dansguardian (ou en mode transparent selon le besoin). Squid gère le cache et l’authentification ; Dansguardian filtre le contenu.
- Pour NTLM, configurez Squid avec les helpers ntlm_auth et intégrez winbind.
- Testez d’abord en mode explicite (configurer le navigateur) avant de passer au proxy transparent.
- Conservez une route de contournement pour l’administration distante.
Exemples de tests :
- Vérifier que Squid récupère l’identité NTLM.
- Vérifier que Dansguardian applique des règles différentes selon les groupes AD.
- Vérifier que ClamAV ne bloque pas le démarrage.
Playbook de déploiement (étapes séquentielles)
- Installer Debian Etch minimal.
- Installer SSH et se connecter.
- Ajouter repositories backports et mettre à jour APT.
- Installer dnsmasq, resolvconf, samba, winbind, krb5, squid, dansguardian.
- Configurer resolvconf + dnsmasq + NTP.
- Configurer Samba/Winbind/Kerberos et joindre le domaine.
- Configurer Squid pour NTLM (helpers) et Dansguardian pour filtrage multi-groupes.
- Tester en mode explicite.
- Activer proxy transparent si nécessaire.
- Mettre en place la surveillance et la rétention de logs.
Checklist rôle par rôle
Administrateur système
- Valider les interfaces réseau et routes.
- Vérifier la synchronisation NTP.
- Tester wbinfo -t, wbinfo -u, wbinfo -g.
- Test d’authentification NTLM via Squid.
Administrateur réseau
- Vérifier iptables/masquerade pour NAT entre eth1 et eth0.
- Tester résolution DNS interne via dnsmasq.
Support niveau 1
- Tester accès web depuis poste client configuré.
- Expliquer au client comment configurer le proxy explicite si nécessaire.
Critères d’acceptation
- Les utilisateurs AD s’authentifient via NTLM et reçoivent des règles de filtrage basées sur groupes.
- wbinfo retourne les comptes et groupes du domaine.
- Les machines clientes naviguent via le proxy (mode explicite ou transparent choisi).
- L’heure du serveur est synchronisée avec le contrôleur de domaine.
Dépannage courant
Problème : Kerberos échoue après changement de DNS (connexion PPP/DHCP)
- Vérifiez /var/run/dnsmasq/resolv.conf et /etc/resolvconf/resolv.conf.d/head.
- Assurez-vous que la commande dpkg-reconfigure krb5-config a le realm correct.
Problème : Squid ne récupère pas les identifiants NTLM
- Vérifiez que winbind est démarré et que smb.conf a security = ads.
- Testez ntlm_auth helper manuellement.
Problème : Dansguardian très lent au démarrage
- Vérifiez la version de ClamAV ; utilisez backports si nécessaire.
Diagramme de décision pour proxy explicite vs transparent
flowchart TD
A[Besoin d'authentification par utilisateur ?] -->|Oui| B{Peut-on configurer les postes clients ?}
B -->|Oui| C[Mode explicite : configurez le proxy dans les navigateurs]
B -->|Non| D[Mode transparent : interception via iptables]
A -->|Non| E[Mode transparent acceptable]
D --> F[Attention : NTLM peut ne pas fonctionner en transparent sans configuration supplémentaire]Sécurité et vie privée
- Limitez la conservation des logs selon la politique de votre organisation et la réglementation locale (ex. RGPD en Europe). Enregistrez uniquement ce qui est nécessaire pour la sécurité et l’audit.
- Si des données personnelles transitent par le proxy, documentez la finalité et mettez en place des accès restreints aux logs.
- Mettez à jour les paquets de sécurité dès que possible ; Etch est une vieille distribution — planifiez une migration.
Compatibilité et migration
Debian Etch est obsolète. Ce guide s’applique à Etch, mais pour un déploiement moderne :
- Préparez une feuille de route pour migrer vers une version maintenue (Debian stable actuelle).
- Sur les versions récentes, les noms de paquets, chemins et options Samba/Kerberos peuvent avoir changé.
- Testez la configuration sur une VM avant migration.
Test cases et validation finale
- Test 1 : Un utilisateur AD du groupe “Élèves” doit se voir appliquer une politique plus restrictive.
- Test 2 : Un utilisateur AD du groupe “Staff” doit avoir accès à davantage de sites.
- Test 3 : wbinfo -t renvoie un succès.
- Test 4 : Les postes en configurés en proxy explicite naviguent correctement.
Résumé et points d’action
- Suivez l’ordre du playbook. Testez après chaque étape.
- Priorisez la synchronisation NTP et la résolution DNS avant Kerberos.
- Pour NTLM, validez Winbind et les helpers Squid.
- Documentez la durée de conservation des logs et conformez-vous aux règles locales.
Notes importantes
- Ce guide est technique et suppose des droits root sur le serveur.
- N’inventez pas de versions logicielles dans un environnement de production ; testez d’abord sur une machine isolée.
Fin
Matériaux similaires
Installer et utiliser Podman sur Debian 11
Guide pratique : apt-pinning sur Debian
OptiScaler : activer FSR 4 dans n'importe quel jeu
Dansguardian + Squid NTLM sur Debian Etch
Corriger l'erreur d'installation Android sur SD