Authentification proxy et session AD



  • Bonjour à tous !

    Afin de nous mettre en conformité avec la législation en vigueur je boss actuellement sur la mise en place d'un proxy.

    Je me suis naturellement orienté vers pfsense avec squid3 et Squidguar.

    Dans un premier temps ce proxy va être utilisé pour nos machines connectées au réseau local sous session AD.( Par la suite il fera également portail captif pour le wifi. )

    Pour le moment Squid est configuré comme proxy transparent mais nous aimerions en faire un proxy authentifier a condition que cela reste transparent pour l'utilisateur. ( Ils sont informés via la charte que nous utilisons un proxy log etc… )

    je pense utiliser un fichier .pac afin de déployer le proxy sur les postes mais je bloque sur l'authentification automatique.

    Ma question est donc il y a t'il une solution pour que l'authentification sur le proxy se fasse en récupérant les informations de la session AD du poste client ?

    Cordialement



  • Il existe des solutions mais pas, autant que je sache, avec la manière dont pfSense implémente Squid.

    1 - WPAD est une bonne idée qui va fonctionner avec la grande majorité des devices  :D (attention cependant aux machines Androïd et iOS)
    2 - la partie authentification est peu plus compliquée: si l’authentification actuelle s'appuie sur AD, et donc Kerberos, il est possible de configurer Squid (et le browser) pour s'appuyer sur ce mécanisme et donc rendre l’authentification "transparente". Mais je ne pense pas que pfSense expose ce mécanisme au travers de son interface.

    De plus, s'il s'agit uniquement de mettre en œuvre un proxy,  pfSense n'est probablement pas la meilleure solution.



  • Pour compléter ma réponse qui était un peu rapide, passer du proxy transparent au proxy explicite est une excellente idée  8) d'autant que cela permet, sans qu'il soit nécessaire de mette en œuvre de l’authentification de:

    • faire tourner le proxy sur une machine autre que la passerelle par défaut
    • mettre en place des ACL pour le flux HTTPS
    • gérer centralement des exceptions au proxy
    • mettre en place de la redondance au niveau proxy puisque celui-ci est définit dans le proxy.pac

    l'authentification est indispensable pour les aspects:

    • log et accounting (qui fait quoi)
    • profiling (tel utilisateur ou groupe dispose de tel ou tel niveau d'accès)


  • Voilà un problème clair, et (presque) bien posé et de bonnes réponses.

    • pfsense n'est pas adapté pour héberger un proxy : il existe un package avec tout ce que cela veut dire : usage à vraiment limiter à usage perso !
    • DONC un proxy dédié est nécessaire.
    • le mode proxy 'transparent' est incompatible avec 'authentification' donc pas de regret à dédier un proxy !
    • WPAD est excellent pour faciliter la config des postes clients  et pas incompatible avec 'authentification' !
    • installer un proxy (Squid),
    • ajouter SquidGuard + les blacklists,
    • ajouter la rotation des logs et un visualiseur de logs (protégé par mdp),
    • ajouter l'authentification versus l'AD (ya des tutos)


  • Je suis surpris d'entendre sur ce forum " pfsense n'est pas adapté "  alors que j'ai l'impression que beaucoup de PME l'utilise comme proxy ?

    vous pensez que je ferais mieux de partir sur une bonne vielle debian + squid ?

    De plus j'aurais toujours mon problème d'authentification de mes postes utilisateurs sur mon squid



  • @kiwoody:

    Je suis surpris d'entendre sur ce forum " pfsense n'est pas adapté "  alors que j'ai l'impression que beaucoup de PME l'utilise comme proxy ?
    vous pensez que je ferais mieux de partir sur une bonne vielle debian + squid ?
    De plus j'aurais toujours mon problème d'authentification de mes postes utilisateurs sur mon squid

    C'est parce qu'il y a plusieurs aspects dans la réponse, dont certains ont donné lieu à de longs débats, au final pas tous très productifs:

    1 - est-il opportun de faire tourner un proxy sur la machine qui sert de FW (que ce soit pfSense ou autre) ?
    2 - faut-il utiliser pfSense (qui est au départ un firewall) également comme serveur proxy ?
    3 - et si tu as répondu par l'affirmative au deuxième point, compte tenu de ton critère qui est une authentification transparente auprès du proxy couplé à ton infrastructure qui utilise un domaine Windows et donc une authentification Kerberos, le proxy HTTP tel que implémenté dans pfSense offre t-il la possibilité d'utiliser Kerberos comme méthode d'authentification ?

    Ce n'est pas parce que pfSense offre des packages en supplément des fonctions principales que ceux-ci sont toujours adaptés à toutes les situations  ;)
    En ce qui concerne le proxy, je ne dis pas qu'il faut jamais le faire mais qu'il faut bien en mesurer les conséquences, ce qui n'est pas trivial.

    L'implémentation ou pas de Kerberos reste un point bloquant si ce critère est important pour toi.



  • @kiwoody:

    Je suis surpris d'entendre sur ce forum " pfsense n'est pas adapté "  alors que j'ai l'impression que beaucoup de PME l'utilise comme proxy ?

    Ce qui n'est pas une bonne raison.
    https://forum.pfsense.org/index.php?topic=90750.0

    vous pensez que je ferais mieux de partir sur une bonne vielle debian + squid ?

    Pas une vieille, une version récente ! Et plutôt Ubuntu LTS que Debian.



  • Je profite du fil de discutions,

    J'ai un souci récurant autant avec pfsense + squid que sur mes test avec debian + squid

    lorsque mes utilisateurs se connecte, le navigateur demande sans arrêt de se (re) authentifier.

    et dans les log j'ai TCP_DENIED_407

    Une idée du problème ?



  • HTTP 407 est le code retour du proxy qui demande une authentification.
    Donc c'est très probablement parce que l'utilisateur n'est pas authentifié auprès du proxy.

    • Comment celui-ci est-il configuré (d'un point de vue authentification) ?
    • quel crédential utilises-tu, coté client ?


  • Merci de ton aide chris  ;)

    op voila conf dans pfsense

    http://img11.hostingpics.net/pics/617870pfsenseLDAP.png



  • Je suis trop vieux => je n'y vois rien  :-[ :-[ :-[



  • edit : mauvaise manip



  • merci pour la "loupe", maintenant j'y vois  ;D

    Je vois surtout que ta conf LDAP est bizarre.
    Je n'ai pas de AD sous la main mais je doute fort que uid soit le bon attribut.

    En vrac:

    • le RDN des comptes utilisateur chez Microsoft, c'est "cn" (je sais c'est stupide mais c'est leur choix et LDAP le permet)
    • l'quivalent de UID, chez Microsoft, c'est samaccountname
    • le label: "LDAP username DN attribute" n'a aucun sens !!!
    • on ne voit qu'un partie de ton filtre. ëtre membre du groupe "autorisé à interne" a du sens mais es-tu certain de la deuxième partie de ton filtre ?
    • idem le baseDN est totalement occulté. On va supposer qu'il est correct :-)


  • Je viens de faire la modif du samaccountname  et avec ou sans filtre aucune différence …



  • il FAUT un filtre dans la recherche LDAP.

    Ce que je te suggère, c'est de tester tes paramètre LDAP avec un vrai client LDAP (un ldapsearch sur une machine Linux ou une console LDAP java ou PHP, il en existe plusieurs)
    Tu peux aussi regarder dans les log du serveur Windows, même si ce n'est pas l'OS le plus sympa pour ce genre d'exercice.



  • j'ai suivi tes conseils et fait un ldapsearch

    ldapsearch -x -LLL -D 'CN=pfsense,CN=Users,DC=d####k,DC=####,DC=be' -W -H ldap://192.168.222.5:389 -b 'CN=Users,DC=d####k,DC=e######,DC=be' -s sub '(sAMAccountName=administrator)'
    
    

    cette commande renvoi bien les infos Monsieur administrator

    conf de mon squid :

    
    auth_param basic program /usr/lib/squid/basic_ldap_auth -b "DC=d####k,DC=#####,DC=be" -D "CN=pfsense,CN=Users,DC=d#####k,DC=#####,DC=be" -w motdepasse -f "(&(objectClass=person)(sAMAccountName=%s))" -u sAMAccountName -P 192.168.222.5:389
    
    


  • C'est une bonne chose si la partie LDAP est correcte.
    Dans la section anglaise du forum relative à Squid, il y a pas mal d'utilisateurs qui évokent des problèmes de fonctionnement avec la version 2.2.2

    Comme je n'utilise pas Squid sur pfSense, je ne peux pas t'en dire beaucoup plus, désolé. Si je trouve des infos qui peuvent être en rapport avec ton soucis, je reviens vers toi.



  • Je te remercie de ton aide chris, pour le moment je n'ai rien trouvé malheureusement



  • Compte tenu des problèmes que semblent rencontrer les utilisateurs de Squid sur la 2.2 (d'une manière générale et sans même regarder les aspects authentification), la bonne solution serait quand même de faire tourner un Squid sur un autre serveur.

    Si tu tiens absolument à garder Squid sur pfSense, une réinstallation en 2.1 me semble toute indiquée.

    Christian