Squid Dansguardian et kerberos

Par lours, 24 juillet, 2012

Introduction

Petite contribution sur comment faire fonctionner ensemble squid, dansguardian, kerberos, ldap, et le filtrage par groupe.

On ne traite pas ici de l'installation et la configuration de squid squidguard et kerberos.

L'installation est faite ici sur debian, squid 3.1.20

Chaine de traitement

Afin de séparer l'authentification, le filtrage et le cache, la chaine suivante est mis en place :

Squid (Kerberos ou Ldap auth) = > Dansguardian => squid (cache)

Le problème est que dansguardian ne supporte pas kerberos et le filtrage par groupe (voir doc). Les données utilisateurs ne sont pas transmis en utilisant l'option login=PASS du cache_peer pour kerberos. Le problème peu être contourné en utilisant login=*:motdepasse si on a besoin de ne récupérer que l'utilisateur. Le mot de passe est factice car on n'en a pas besoin dans la suite de la chaine.

Squid (Kerberos ou Ldap auth):

L'authentification se fait par kerberos ou on récupère l'authentification associé à un utilisateur de la forme : user@REALM

L'authentification ldap est aussi utilisé pour les applications ne suppportant pas kerberos. Dans ce cas on récupère un utilisateur de la forme : user

Le tout est transféré à squidguard avec:

cache_peer 192.168.1.xxx parent 3128 0 no-digest no-netdb-exchange no-query proxy-only login=*:passsecret

Dansguardian

Deux groupes sont gérés dans dansguardian avec les directives filtergroups du fichier dansguardian.conf et les fichiers associés dansguardianf1.conf et dansguardianf2.conf

filtergroups = 2
filtergroupslist = '/etc/dansguardian/lists/filtergroupslist'

le fichier filtergrouplist doit donc être généré de la forme suivante : doublon des nom utilisateur et utilisateur@realm (en minuscule)

#Groupe sur filter1
user1=filter1
user1@realm=filter1
user2=filter1
user2@realm=filter1

#Groupe sur filter2
user3=filter2
user3@realm=filter2

Les utilisateurs sont maintenant filtrés qu'ils soient authentifiés par kerberos ou ldap.