Squid + authentification RADIUS



  • Contexte : milieu pro, technicien d'exploitation

    Besoin : que les utilisateurs du domaine (authentifiés via RADIUS) puissent se connecter sur le web sans devoir renseigner leur credentials.

    Schéma :

    LAN : 1 interface

    Autres fonctions assignées au pfSense : SquidGuard

    Question : J'ai configurer l’authentification via RADIUS (qui fonctionne) mais je souhaiterais que les utilisateurs ne soient pas obligés de renseigner leur credentials à chaque fois qu'ils ouvriront leur navigateur web.

    Pistes imaginées

    Recherches : nombreux tutos disponibles sur le net ont été testés mais en vain.

    Je vous remercie d'avance pour l'aide que vous pourrez m'apporter.



  • C'est une bonne chose que d'utiliser le formulaire.
    Mais le formulaire n'est que la forme des informations que vous mettez pour que le lecteur comprenne le contexte, la situation, le besoin, …
    Il manque, cependant, beaucoup d'informations ...

    J'ai configurer l’authentification via RADIUS (qui fonctionne)

    Qu'est ce que cela veut dire ? Ce n'est pas clair !

    Peut-être que le lecteur va penser au portail captif ? Peut-être pas ! Cà c'est une information à indiquer …
    NB : L'authentification dans le portail n'a rien à voir avec l'authentification dans un proxy ! Pour info ...

    Besoin : que les utilisateurs du domaine (authentifiés via RADIUS) puissent se connecter sur le web sans devoir renseigner leur credentials.

    Expression brute du besoin … mais ce qu'il y a derrière est-il connu ou compris ?

    Peut-être le lecteur va penser à Squid (proxy) ? Peut-être pas ?

    Dans le couple Squid/SquidGuard, c'est Squid qui peut identifier. (SquidGuard peut filtrer en fonction de l'identification/authentification !)
    Donc la question est Squid sait-il identifier avec Radius ? (Et la réponse est non !)



  • Pour eclaircir le sujet :

    • dans Proxy Serveur / authentification : Méthode : RADIUS

    • je n'utilise pas de portail captif.

    • pour le besoin, je souhaite que les utilisateurs, lorsqu'ils souhaiteront naviguer sur le net, en ouvrant leur navigateur, n'aient pas à chaque fois une invit leur demandant de renseigner leur credentials :



  • Je n'ai peut-être pas été assez précis :

    • l'authentification pour un proxy passe par un échange entre le navigateur et le proxy.
    • un navigateur ne connait pas l'authentification Radius mais connait l'authentification 'windows' = celle du domaine,
    • et cette authentification peut s'échanger de façon 'non-visible' par l'utilisateur

    Il serait donc bien préférable de choisir une authentification windows (ntlm ?).
    De plus, il faut que Squid sache authentifier le couple id/mdp selon ce protocole, qu'il ait donc les librairies nécessaires.



  • @Nelsonovitch:

    Besoin : que les utilisateurs du domaine (authentifiés via RADIUS) puissent se connecter sur le web sans devoir renseigner leur credentials.

    Donc ce que tu veux faire c'est du SSO

    @jdh:

    • l'authentification pour un proxy passe par un échange entre le navigateur et le proxy.
    • un navigateur ne connait pas l'authentification Radius mais connait l'authentification 'windows' = celle du domaine,
    • et cette authentification peut s'échanger de façon 'non-visible' par l'utilisateur

    Il serait donc bien préférable de choisir une authentification windows (ntlm ?).
    De plus, il faut que Squid sache authentifier le couple id/mdp selon ce protocole, qu'il ait donc les librairies nécessaires.

    Oui effectivement mais NTLM, c'est le mode challenge-response supporté par Microsoft uniquement pour des raison de comptabilité.
    C'est le "pré-Windows 2000 authentication"  ;)
    Avec un domaine Windows, la méthode d’authentification standard, c'est Kerberos.

    Squid supporte les 2 solutions (bien que je ne sache pas ce qui est implémenté dans la version de Squid packagée avec pfSense  :-[)

    Si on pousse la réflexion un peu plus loin :

    • NTLM n'est pas très sécurisé
    • il va être plus facile de mettre en œuvre Kerberos au niveau d'un client "non-Windows" si nécessaire
    • seul Kerberos fourni un[i] vrai service SSO, c'est à dire une authentification unique de l'utilisateur (ticket de session) qui lui permet ensuite d'obtenir, sans nouvelle authentification des tickets de service (et donc ici Squid)

    Donc au cas où les 2 fonctionnent dans l'implémentation Squd de pfSense, si tu le peux, préfère Kerberos  8)



  • Soyons encore plus précis,

    Le wiki de Squid est (nécessairement) la référence à regarder : http://wiki.squid-cache.org/ConfigExamples/#Authentication
    La section 'Overview …' est indispensable !

    On trouve donc une authentification

    • par Radius
    • par Kerberos
    • par NTLM (protocole tradi du monde Windows, dépassé par Kerberos)
    • par LDAP (ActiveDire est un LDAP un peu spécifique)

    Il est très clair que cela suppose que Squid ait été compilé avec les bonnes options de librairies et que les dites librairies soient présentes. (Sans compter le niveau de Squid nécessaire ...)

    Dans le mode Windows, il me semble fréquent d'utiliser soit NTLM soit LDAP. (Mes souvenirs sont lointains ...). L'idéal devrait être Kerberos qui est aujourd'hui le protocole le plus sûr.
    Et il faut savoir que les librairies nécessaires viennent parfois d'autre logiciels : ex NTLM suppose des lib de Samba ...

    Bref Squid + une authentification sera bien plus possible ... hors de pfSense, car il n'y a aucune garantie que le (ou les) 'package' comportent et Squid et les librairies nécessaires.
    (Sans compter, ce que méprend pas mal de gens, la charge machine et mémoire inhérente à un gros trafic et grand nombre d'utilisateurs ...)

    Bref la question n'était pas tout à fait un besoin ni tout à fait une solution : 'authentification transparente' = besoin, 'authentification par Radius' = solution.


Log in to reply