Flow Group SASFlow Group
L'erp des Processus Relationnels
Systeme d'Information – Audit Industriel
> Accueil > Expertises & Savoirs > Articles techniques
<div class="infotip"><b>Espace client&#160;:</b> <a href="login.aspx">suivez ce lien</a> pour entrer dans l'espace qui vous est réservé.</div>

Articles technique


Gérer l’authentification de Squid avec l’Active Directory à partir de Windows

Principe général
Etablir la connexion à la base LDAP de l’AD.
Indiquer quel groupe peut accéder à internet.
Les ACL
Autoriser ou refuser l’accès pour les ACL définies
Conclusion
Quelques liens utiles...

Squid est un proxy qui permet de limiter l’accès à certains sites (paramétrage qui ne sera pas traité pas dans cette article) mais aussi de limiter l’accès à internet grâce à une authentification.

Cependant, avec la version 2.6 l’authentification par l’Active Directory ne se paramètre pas de la même manière qu’avec les versions précédentes.

Principe général

Pour limiter les accès à internet, il est possible de mettre en place un proxy pour qu’un utilisateur non autorisé ne puisse avoir accès à certains sites (dans notre exemple il sera demandé une authentification pour tous les sites). Pour cela, il faut créer un groupe dans l’Active Directory avec tous les utilisateurs concerné par ce privilège. L’authentification se fera donc grâce aux comptes créés dans ce groupe.

Plus techniquement, il faut que Squid se connecte au LDAP de l’Active Directory et qu’il vérifie que le login et mot de passe entrés dans la boite de dialogue correspondent à un compte existant dans le groupe prédéfini.

Configurer Squid

Après avoir téléchargé et installé Squid2.6 pour Windows, on peut remarquer, par défaut, un dossier Squid est créé à la racine du disque système. A l’intérieur de celui-ci se trouve deux dossiers primordiaux pour notre configuration : libexec et etc, qui rappellent l’architecture des dossiers linux.

Le fichier de configuration principal de Squid se trouve dans /etc et se nomme squid.conf. Dans /libexec, seulement deux exécutables serviront, squid_ldap_auth.exe pour l’authentification à la base LDAP et squid_ldap_group.exe pour vérifier que le compte existe effectivement dans le groupe.

Pour information Afin de connaître précisément l’architecture du LDAP que Squid va utiliser, il est préférable d’utiliser un outil de vérification tel que ldp.exe (par défaut dans Windows 2003 dans les dossiers système) ou LDAP Browser (à télécharger gratuitement sur www.softerra.com). Ainsi, en étant sûre de l’emplacement et du chemin à indiquer à Squid pour la connexion à la base, certaines erreurs pourront être évitées.

Pour la suite, tous les champs en gras dans les lignes de configuration sont à personnaliser selon la situation. Mais il faut garder une certaine cohérence dans les noms utilisés, que ce soit d’un point de vue fonctionnel ou de compréhension globale.

Etablir la connexion à la base LDAP de l’AD.

Dans C:\squid\etc\squid.conf, aller dans le paragraphe « Tag : auth_param » et entrer les lignes suivantes:

auth_param basic program C:/Squid/libexec/squid_ldap_auth.exe -R -u CN -b OU=Utilisateurs,DC=ma_societe,DC=com -D CN=Administrateur,CN=Users,DC=ma_societe,DC=com -w mdp_admin -h ip_serveur auth_param basic children 5 auth_param basic realm Proxy Ma Société
Attention !

Bien que la première ligne soit longue il ne faut pas faire de retour à la ligne !

Le programme qui sert à la connexion à la base LDAP de l’AD est squid_ldpa_auth.exe qui se trouve dans le dossier libexec de squid. Ce programme prend différents paramètres :

  • -R Est obligatoire pour une connexion à l’AD.
  • -u Pour se connecter à un compte de l’AD.
  • -b Pour indiquer dans quel OU se trouve le compte avec lequel on va s’authentifier sur l’AD.
  • -D Pour indiquer le compte et son chemin complet (il faut que ca soit un compte administrateur de l’AD !).
  • -w Pour le mot de passe de se compte admin
  • -h L’adresse IP du serveur où se trouve l’AD (ou bien localhost si on se trouve en local)

La deuxième ligne va définir combien de processus fils va créer Squid.

Pour la dernière ligne, « Proxy Ma société » sera affiché dans la boîte de dialogue lors de la demande d’authentification pour accéder à un page web.

Indiquer quel groupe peut accéder à internet.

Toujours dans C:\squid\etc\squid.conf, à la suite, dans le paragraphe « Tag : external_acl_type », ajouter cette ligne :

external_acl_type ldap_group %LOGIN C:/Squid/libexec/squid_ldap_group.exe -u CN -b OU=Utilisateurs,DC=ma_societe,DC=com -f (&(CN=%u)(objectClass=person)((memberOf=cn=WebUsers, OU=Utilisateurs,DC=ma_societe,DC=com))) -h ip_serveur
Attention !

Tout ceci n’est qu’une seule ligne, il ne faut donc pas insérer de retour à la ligne !

Le programme qui permettra de vérifier qu’un utilisateur qui veut s’authentifier appartient au bon groupe, est squid_ldap_group.exe qui se trouve dans libexec de squid. Ce programme prend aussi différents paramètres :

  • ldap_group est le nom de l’acl (mais il peut être changé)
  • %LOGIN car la connexion se fait par un login
  • -u Pour se connecter à un compte de l’AD
  • -b Pour l’emplacement des utilisateurs.
  • -f C’est le filtre, dans notre cas on vérifie que l’identifiant entré correspond à une personne (objectClass=person) membre du groupe WebUsers (le nom est à définir pour votre groupe) de l’AD.
  • -h L’adresse IP du serveur où se trouve l’AD (ou bien localhost si on se trouve en local)

Les ACL

Dans le même fichier de configuration, il faut maintenant paramétrer les ACL (Access Control List).

Ainsi, il faut ajouter les lignes suivantes :

acl internetgroup external ldap_group internetOK acl NOinternet external ldap_group internetNO acl autentication proxy_auth REQUIRED

Ce qui est en italique correspond à des noms arbitraires qui peuvent être changés du moment où une certaine cohérence est respectée.

  • La première ACL va permettre dans la suite de la configuration d’autoriser les utilisateurs du groupe.
  • La deuxième ACL va, au contraire, permettre de bloquer tous ceux qui n’en font pas parti.
  • La troisième ACL est ici pour rendre obligatoire l’authentification par le proxy.

Autoriser ou refuser l’accès pour les ACL définies

Toujours dans squid.conf, juste après avoir défini les ACL, il faut autoriser ou refuser l’accès à celles-ci.

Pour cela, il faut ajouter ces lignes :

http_access deny autentication NOinternet #Refuser les membres http_access allow autentication internetgroup #Autoriser les membres http_access allow all #Autoriser tous
Attention !

Les mots en italique doivent être en accord avec ceux qui ont été entrés précédemment !

Conclusion

Cette configuration peut être couplée avec d’autres paramètres tels que la limitation des sites autorisés, des ACL réseaux, etc.

Squid est donc un outil très complet mais pas toujours évident à configurer, surtout que les tutoriaux que l’on peut trouver ne sont pas toujours très clairs.

Quelques liens utiles...


les informations fournies ici le sont en tant que telles, sans aucune garantie d'aucune sorte.
© 2022 Flow Group SAS - Flow Group est une marque déposée de GL Conseil SA.