Voila je vous avait fait il y a maintenant un petit moment un tutoriel permettant d’installer un proxy filtrant graçe au couple SQUID/SQUIDGUARD, mais maintenant ça fait super longtemps et depuis mes besoin ont évolué c’est pourquoi je décide de faire un nouveau tuto afin d’obtenir ceci :
Un proxy cache avec authentification NTLM (SQUID3) : comprenez un serveur mandataire qui va me permettre de faire du cache (amélioration de l’utilisation de la bande passante internet) et de filtrer le fait que mes utilisateurs font parti de l’Active Directory ou non.
Un filtrage par scoring + blacklist des sites non désirés (DANSGUARDIAN) : l’utilisation du scoring permet de palier au gros défaut des blacklistes, les nouveaux sites, en effet si on ne maintient pas scrupuleusement à jour nos blackliste les nouveau sites indésirables sont légions au bout de quelques temps.
L’ajout d’un filtrage Antivirus (CLAMAV) : L’internet étant un endroit dangereux il peut être toujours bienvenu de protéger efficacement son réseau !
La suppression des popups de pubs et autre encart qui polluent la navigation (ADZAPPER) : A la manière du meilleur plugin pour Firefox jamais inventé j’ai nommer ADBlock cette installation va permettre de supprimer les pubs pour tout vos utilisateurs, sur internet après quelques recherches la plupart des personnes ayant installer ce type de produit constate une diminution de l’utilisation de bande passante de l’ordre de 30% !
Comme à mon habitude j’ai choisi d’installer mon serveur proxy sur la distribution Ubuntu Server, il s’agit de la version la plus récente actuellement Ubuntu 11.10 64bits.
- Installation de Kerberos – Mise en place de l’Authentification Active Directory
De façon a identifier nos utilisateurs nous allons devoir utiliser l’authentification NTLM, celle authentification sera tout à fait transparente pour l’utilisateur à partir du moment ou celui-ci sera loggué dans le domaine, pour tout autre user il faudra que celui-ci fournisse son login/mdp de façon à se connecter (de plus se seront les noms des utilisateurs qui remonterons dans les logs).
Le temps est essentiel pour Kerberos, il faut absolument que votre serveur n’ai pas trop de différence avec son KDC (Contrôleur de domaine) dans ma configuration j’ai un serveur NTP dans mon domaine mais il est aussi possible de synchroniser tout ça avec internet. éditez le fichier /etc/default/ntpdate
Ensuite nous allons synchroniser l’heure avec notre serveur NTP une première fois
sudo /usr/sbin/ntpdate-debian
Et enfin afin d’éviter une désynchronisation du temps nous allons créer une tache cron qui synchronisera l’heure au redémarrage du serveur et à 18 heures chaque jours pour cela éditer votre cron « sudo crontab -e » et insérez ceci :
sudo apt-get install krb5-user
Ensuite éditez le fichier /etc/krb5.conf selon votre réseau :
Nous allons ensuite éditez ce fichier de conf afin qu’il prenne en compte notre installation:
sudo kinit Utilisateur@MONDOMAINE
Password for Utilisateur@MONDOMAINE: ****
Puis nous allons voir si le Ticket nous à bien été attribué:
Enfin nous allons rejoindre notre domaine AD pour ceci nous allons avoir besoin de deux paquet supplémentaire :
sudo apt-get install winbind samba
Voici la configuration de Samba (vous pouvez effacer le fichier et le recréer comme suis) dans /etc/samba/smb.conf
Ensuite nous allons redémarrer les services samba et winbind :
sudo service smbd restart
sudo /etc/init.d/winbind restart
Puis nous allons joindre la machine au domaine avec un compte administrateur du domaine:
sudo net join ads -U Administrateur -S ServeurCD.MonDomaine
Using short domain name – MONDOMAINE
Joined ‘MaMachine’ to realm ‘MONDOMAINE’
Une fois la machine bien intégrer dans votre domaine vous pouvez tester votre configuration en utilisant les commandes wbinfo -u pour obtenir la liste des utilisateurs de votre domaine et wbinfo -g pour celle des groupes AD.
- Installation de SQUID3 – Mise en place du Proxy/Cache
Pour installer squid rien de plus simple :
sudo apt-get install squid3
Ajouter l’utilisateur qui lance squid pour accéder au service winbind, il doit accéder au répertoire /var/run/samba/winbindd_privileged
sudo usermod -a -G winbindd_priv proxy
Nous allons ensuite faire les modifications nécessaire dans le fichier /etc/squid3/squid.conf je vous conseille d’effectuer les quelques commandes suivante afin de vider le fichier de conf de ses commentaires et de ne garder que l’essentiel avant de l’éditer :
Éditez ensuite votre fichier squid.conf comme celui-ci:
Attention ! la ligne redirect_program est pour le moment commenter il faudra la décommenter lors de l’installation d’adzapper, de plus j’utilise ntlm_auth de façon a identifier tout les utilisateurs de mon AD, il est aussi possible de limiter la recherche à un seul groupe dans votre AD (l’utilisateur fait partie de « Groupe-Proxy » alors il a accès au proxy) Pour cela il faut rajouter quelque lignes au paramètre auth_param:
Redémarrer ensuite le service squid et nous allons passer à l’intérgration de DansGuardian + ClamAV.
- Installation de DansGuardian + ClamAV : Mise en place du filtrage par scoring, dans l’Antivirus et des Blacklistes.
Pour installer les paquets nécessaires:
sudo apt-get install dansguardian clamav clamav-freshclam clamav-base libclamav6
Nous allons ensuite à la manière de Squid vider le fichier de configuration de Dansguardian de tout ses commentaires et ne conserver que le Nécessaire:
Puis nous allons éditez le fichier de configuration de DansGuardian avec les paramètres suivant:
La configuration de DansGuardian réside sur deux fichiers de configuration le premier que nous venons d’éditer configure surtout le system/demon et le filtrage antivirus grâce à ClamAV le deuxième quand à lui va configurer les lists d’expressions, de domaines et d’urls qui seront prise en compte par le filtrage, il faudra l’éditer comme ceci /etc/dansguardian/dansguardianf1.conf (à noter que j’ai aussi vider ce fichier de conf des commentaires)
Comme nous pouvons le voir les listes sont contenu dans /etc/dansguardian/lists si vous aller dans ce répertoire vous verrez une bonne dizaine de fichiers vous permettant de filtrer votre accès c’est assez simple de compréhension, par exemple le fichier bannedextensionlist répertorie toute les extensions que vous ne voulez pas autoriser à passer par le proxy : si par exemple vous rajouter .exe à cette liste vos utilisateurs ne seront plus en mesure de télécharger d’exécutable à travers votre proxy.
Il est aussi possible d’intégrer à cette configuration des blacklistes compatibles avec Squidguard comme celle de l’université de Toulouse qui et maintenu depuis maintenant 10 ans Blackliste Toulouse UT1 voici comment télécharger la blackliste et prendre en compte une certaine catégorie dans le filtrage :
Vous aller alors obtenir un répertoire blackliste contenant d’autres répertoires qui eux contiennent des fichiers contenant des listes d’urls, de domaine, d’expressions interdites. Dans notre exemple nous voulons prendre en compte la liste de domaine concernant les sites de jeux, notre pour cela il suffit d’éditer le fichier bannedsitelist dans /etc/dansguardian/lists/ et de décommenter la ligne suivante:
.Include</etc/dansguardian/lists/blacklists/games/domains>
Redémarrer DansGuardian et tenter de vous connecter au travers du proxy (adresse_ip_proxy:8080, connection Dansguardian>Squid) à http://www.jeuxvideo-flash.com/ vous devriez obtenir:
- Installation d’Adzapper : Mise en place du filtrage des pubs:
Adzapper va vous permettre de filtrer les pubs pour tout le monde, il s’agit d’un script perl qui va filtrer la plupart des domaines publicitaires du web, pour l’instant je ne maitrise pas encore assez son fonctionnement pour vous expliquer comment rajouter un domaine au scripts mais d’ici quelques jours je pense pouvoir rajouter des domaines dans le filtre. Voici les quelques commandes nécessaire à l’installation :
Tout d’abord télécharger Adzapper dans le répertoire d’installation de Squid:
Ensuite il va falloir éditer le fichier /etc/squid3/update-zapper pour l’adapter à l’installation de Squid3:
Puis il faut ensuite exécuter ce script :
sudo sh update-zapper
Cela va vous créer un fichier squid_redirect dans /etc/squid3 c’est par ce fichier qu’il va falloir faire passer la redirection de Squid, pour cela il suffit d’éditer le fichier squid.conf et de décommenter le ligne Adzapper dont nous parlions un peu plus haut ! Redémarrer les services Squid, ensuite tenter de vous connecter à n’importe quel site présentant habituellement des encarts de « pubs », ceux-ci seront automatiquement remplacer par des images « this ad zapped ». Il est possible de supprimer totalement ces images « this ad zapped » en modifiant un peu le fichier squid_redirect, je vous ferait passer les modifications si besoin dans les commentaires de ce billets.
Voila vous avez désormais un proxy fonctionnel, qui filtre la plupart des sites, virus et publicités ennuyeuses pour votre navigation et celle de vos utilisateurs !

Bravo pour ce tuto très clair et très efficace !
Par contre, il manque des lignes de commandes et des fichiers de configuration (squid.conf entre autres).
Si vous pouviez les poster…
Merci,
Ah en effet lors de la migration de mon blog vers wordpress je n’ai pas remarquer mais tout les fichiers de conf on été zapper.
Je vais me débrouiller pour récupérer les pastbin que ‘javais mis en ligne et les recoller ici. Ce sera effectif sous peu.
Voila normalement tout les scripts de configuration sont de nouveau en place. En espérant que cela puisse vous aider.
Bonjour
Je voulais savoir si vous pouviez filtrer des sites web uniquement pour certain groupe dans l’AD ?
Si oui quel est la syntaxe pour le faire ?
Merci
Oui c’est faisable en utilisant les groupes de configuration multiple dans dansguardian
http://contentfilter.futuragts.com/wiki/doku.php?id=group_configuration
J’ai mis d’ailleurs ce système en place sur mon proxy.
Merci beaucoup de ta réponse aussi rapide,
J’ai donc analysé le site que tu m’a envoyé en lien, il parle de webmin, l’a tu configurer avec webmin ton proxy ?
Ou a tu créer plusieurs fichier de configuration celons le groupe que tu veux filtré ?
Pour que squid interroge les utilisateurs de l’AD il doit donc importer la base AD et la copier dans la sienne ?
Pourrait-tu me montrer tes fichiers de conf ?
Je te remercie de ton aide, cela fait vraiment longtemps que je recherche..
J’essai de t’envoyer ça dans la journée, je n’ai pas utiliser webmin si ce n’est a des fin de visualisation
Ok merci beaucoup.
Bonjour,
J’attend toujours tes fichiers de confs, merci d’avance.
Le dansguardian.conf http://pastebin.com/VExEcnXh
Le dansguardianf1.conf http://pastebin.com/Byyk9yZ8
Le dansguardianf2.conf http://pastebin.com/6Lz2qHWX
Chaque Fichier dansguardianfxx.conf correspond a un groupe il faudra que tu t’appuis tout de meme sur l’url que je t’ai envoyé pour comprendre le fonctionnement de l’authentification NTLM et comment associé un utilisateurs à un groupe de filtrage.
Bonjour,
j’ai utiliser ta technique pour dansguardian, (pour squid et synchro active directory j’ai utiliser un autre tuto qui fonctionne)
par contre :
j’ai réussi à faire fonctionner ton tuto, sauf que sur mes client navigateur, j’ai remarqué que ceux qui utilise le port 3128 peuvent passer outre le dansguardian, alors que ceux qui configurer le navigateur avec le port 8080 dansguardian, joue bien sont role.
pour palier ça j’ai utiliser la conf suivante dans iptables :
iptables -A PREROUTING -t nat -i eth0 -p tcp –dport 80 -j REDIRECT –to-port 8080
par contre est ce qu’il y a moyen d’avoir un log (comme lightsquid ou squidreport), mais pour dansguardian afin d’y accéder par le navigateur et voir les utilisateurs qui se sont faire reprendre par dansguardian ?
merci beaucoup
le probléme avec la modif d’iptables, c’est qu’ont perd la trace des utilisateurs.
dans squid tout les accès sont concidéres en localhost :/
Oui la navigation quid est considérer comme localhost car elle viens directement de dansguardian … donc du meme serveur.
de plus le NTLM est capté par dansguardian il est impossible d’ensuite le faire passer à squid