Installation SQUID3 (NTLM Active Directory) / DANSGUARDIAN / CLAMAV / ADZAPPER

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 :

squid-cache_logo.jpg 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.

 

120px-Dansguardian.png 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.

 

 

20100708195945_ClamAV_Logo.png 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 !

 

 

stop-hand-sign.png 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.

  1. 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 :

Voila nous sommes pret à lancer l’installation de Kerberos et de l’authentification AD à proprement parler :

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:

Nous allons ensuite tester que la connexion avec le DC fonctionne correctement, dans un premier temps nous allons demander un TGT au DC :

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.

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

  1. 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:

DansGuardian_-_Access_Denied_-_Windows_Internet_Explorer_2012-03-02_12-49-33.png

  1. 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 !

20 réflexions au sujet de « Installation SQUID3 (NTLM Active Directory) / DANSGUARDIAN / CLAMAV / ADZAPPER »

  1. 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,

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

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

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

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

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

  7. bonjour,
    j’ai suivi la première partie du tuto (auth + squid), tout allait bien. La jonction dans le domaine, l’obtention de ticket et les commandes wbinfo donnait les bons résultat. Mais après redémarrage du serveur, les commandes wbinfo ne donne plus rien …
    J’ai redémarré les services mais rien n’y fait …
    Une idée ?
    de plus, j’ai eu du mal a saisir ce qu’il fallait modifier précisément dans le fichier krb.conf
    fallait il modifier juste ces 2 lignes :

    kdc = dc.mondomaine.lo:88
    admin_server = dc.mondomaine.lo:789

    ou toutes info les references a mondomaine.lo

    merci d’avance

  8. Il faut modifier tout les infos faisant référence a mondomaine.lo, le plus simple pour la jonction au domaine est d’utiliser likewise-open

  9. @Issa utilise le fichier de log de dansguardian plutot que celui de squid.

    Normalement tu a moyen de générer un fichier de log compatible avec squid depuis la configuration de Dansguardian :-)

  10. Ping : Installation de SquidAnalyser | Pixxlisation.net

  11. Bonjour
    Je souhaite utiliser le fichier urlregexplist pour bloquer le safe search de Google mais rien n’y fait.
    Actuellement sur mon proxy, Amon est activé avec les blacklists de toulouse qui sont prises en compte, tous les fichiers et filtres sont dans /var/lib/blacklists/.
    En revanche le fichier urlregexplist et les fichiers de filtre sont dans /etc/dansguardian/dansguardian0/ mais ne sont pas pris en compte par le Amon
    Comment faire pour utiliser en plus des blacklists de toulouse le fichier urlregexplist ou comment bloquet le safe search de google en position active ?

    merci
    Olivier

  12. Je n’utilise plus ce genre de filtrage, je suis passer maintenant sur une solution complète avec pfSense géré en interface graphique qui est beaucoup plus simple d’administrer

Laisser un commentaire