Portail captif + Squid + SquidGuard



  • Bonjour,

    J'ai un petit souci pour un setup pfsense (une première pfsense pour moi)
    Je préfère m'excuser d'avance si la solution coule de source, mais après moult recherches, je viens demander votre aide.

    Contexte : Professionel (école publique)

    Besoin : Projet de mise en place d'un serveur proxy (squid) de filtrage (squiguard) avec identifiants (portail captif).
    Le principe étant de pouvoir loguer les accès avec l'identifiant utilisateur)
    Le but étant de pouvoir répondre aux exigence d'identification des personnes en cas de souci.

    Schéma :

    Une box internet est reliée sur une interface (WAN) du pfsense.
    L'autre interface (LAN) du pfsense est reliée au switch principal du batiment.

    Packages installés : Squid, Squid3, SquidGuard.
    Le portail captif est sur l'interface LAN.

    Question : La mise en place du proxy et du filtrage est bonne (en transparent et non transparent)
    Voici les étapes suivies pour mettre en place le portail captif :

    • Passage de Squid en non-transparent (pas possible en transparent apparemment, ce qui parait logique)
    • Activation du portail
    • Création d'une instance de portail
    • Déclaration du portail dans l'authentification de Squid
    • reboot

    Dès que j'active le portail captif, Squid tombe avec une erreur de "check_cp helpers are crashing too rapidly"

    Pistes imaginées

    Recherches : le check_cp amène beaucoup à des débat sur la transparence du proxy, mais je l'ai passé en non-transparent.

    Logs et tests : cf question : "check_cp helpers are crashing too rapidly"



  • Salut salut

    Merci pour avoir suivi là procédure d'entre aide.

    Avant toutes choses, dans votre cadre, vous avez deux éléments à prendre en considération.

    • Le suivi des log du public d'encadrement (enseignants, personnels administratifs… le personnel de manière générale)
    • Le suivi des log du public d'apprenant (les stagiaires et ou élèves suivant le type d'établissement)

    Dans les deux cas vous avez des restrictions d'ordre juridique à respecter en fonction de la situations nommé juste au dessus.

    Dans un cadre d'un établissement académique français vous avec un guichet unique de mémoire qui peut vous apporter un appui sur ces points.
    Toujours dans ce cadre là, suivant les dotations vous avez la possibilité de mettre en place leur systèmes à deux pare-feu (slice/amont) s'il est encore dans les possibilité de le déployer.
    Sans dénigré pfsense loin delà, cette solution (slice/amont) est géré part eux (le guichet unique et le services informatique de votre région) de mémoire.

    Dans le cas d'un centre de formation non éducation nationale, vous pouvez très bien mettre en place pfsense, vous avez pléthore de tutoriels à disposition sur le web.
    Comme dans le cadre académique, je ne serais que trop vous conseiller de rajouter une carte réseau en plus pour segmenter physiquement le réseau en deux parties, une pour les apprenant et l'autre pour les encadrant (voir le faire en mode vlan suivant votre réseau actuel, je ne peux que supposer).

    Ceci étant dit, nous avons trois concepts qu'il vous faut appréhender,  qui sont :

    • le filtrage par proxy (qui va où, qui passe par où)
    • le portail captif (bonjours c'est moi la porte d'entrée, qui dois je annoncé pour passer ?)
    • l'authentification ( qui es tu ? je te connais tu peux faire çà, toi je ne te connais pas tu n'as pas le droit de faire quoi que soit ici, demande à mon chef,mais pour cela il faut que je te connaisse)

    Sur l'aspect technique hors mis le faite pour les "pro sécrurité" qui à juste titre sont contre intégration d'un proxy sur un router/pare-feu, car cela fragilise la fonction de base et que le tout en un est le pire ennemie de la sécurité de manière générale. Entre le tout en un et le juste un par fonction, il y a une multitude de possibilité mais qui demande au minimum deux autres machines (physiques ou virtuelles selon le cas)

    • une qui peut cumuler une partie des fonction comme le proxy et la remonter des log.
    • l'autre avec l'annuaire des utilisateurs et la gestion de l'authentification.

    Le pfsense ?  me direz vous , tout simplement son role premier de router/pare-feu avec l'interface du portail captif
    Les connexions passent par lui et sont redirigé au passage de l'interface captif vers le services d'authentification qui lui va demander a l’annuaire il connait le zozo qui frappe à la porte en fonction de ca réponse laissera passer vers l'extérieur via le proxy qui lui va loger qui va où par où et comment.

    Dans les grandes lignes cela doit ressembler à cela.

    La protection est accru car si l''un des organes est touché le reste est entier (sur le principe de l'adage on ne met pas tous ces oeufs dans le même panier).
    vous pouvez par un système de sauvegarde , stocker les log et les configurations sur un support car la aussi vous avez des obligations légales à conservés un certain temps avant effacement si j en m'abuse.

    Je n'ai certes pas totalement répondu à votre poste mais plus fait un réajustement qui à mon sens s'imposait, au vu de ces points il est important de les prendre en considération pour le futur de votre réseau d'enseignement.

    Mes camarades "gouroux" qui sont plus calés que moi sur d'autres points techniques seront plus à même de vous répondre.

    Cordialement.



  • @Morphy:

    Besoin : Projet de mise en place d'un serveur proxy (squid) de filtrage (squiguard) avec identifiants (portail captif).
    Le principe étant de pouvoir loguer les accès avec l'identifiant utilisateur)
    Le but étant de pouvoir répondre aux exigence d'identification des personnes en cas de souci.

    Je ne comprends pas pourquoi, avec uniquement ce type de besoin (filtrage du flux HTTP avec authentification), tu introduits un portail captif dans le paysage.

    Squid est tout à fait à même de demander l'authentification (par renvoi d'un code HTTP 407 prévu à cet effet) et de gérer des ACL en conséquence, voire de passer à SuiqdGuard des informations sur l'utilisateur pour mettre en place du filtre personnalisé.

    Quel est l'apport du portail ? Ce n'est pas clair pour moi ?

    (si ce n'est que je comprends bien que le mode d’authentification n'est pas le même puisque dans le cas du portail ,c'est une application qui le gère, mais dans ce cas, je ne vis pas comment ces information sur l’identifiant est passée à Squid)



  • Tout d'abord, merci pour vos réponses.

    @Tatave : Je connais à peu près le fonctionnement de tout ça, mais je n'ai pas d'argent à dispo et une seule machine avec 2 cartes réseau.

    @chris4916 : Le but du portail est de pouvoir garder un fonctionnement transparent au proxy (ne pas avoir à passer sur chaque poste pour le configurer). Le portail est sensé envoyer ces infos de connexion au proxy pour s'authentifier dessus.
    Si je me suis trompé de direction, voici ce que je veux(doit) faire :

    • Loguer toutes les sorties vers internet via le proxy
    • savoir QUI (identifiant) est aller OU (log de connexion rapproché à l'utilisateur) ?

    Merci d'avance pour votre temps.



  • @Morphy:

    Le but du portail est de pouvoir garder un fonctionnement transparent au proxy (ne pas avoir à passer sur chaque poste pour le configurer). Le portail est sensé envoyer ces infos de connexion au proxy pour s'authentifier dessus.
    Si je me suis trompé de direction, voici ce que je veux(doit) faire :

    • Loguer toutes les sorties vers internet via le proxy
    • savoir QUI (identifiant) est aller OU (log de connexion rapproché à l'utilisateur) ?

    La réponse technique "naturelle" pour éviter de devoir configurer chaque navigateur sur chaque poste individuellement s'appelle WPAD  ;)

    Dans ce que tu cherches à faire, dans ma compréhension, le proxy est en mode transparent (vis à vis du poste utilisateur) et il ne peut donc pas lui renvoyer un code HTTP 407 nécessaire au déclenchement de l’authentification.



  • J'avais bien vu cette méthode également, mais le souci reste le même : il faut passer sur les postes clients pour configurer en auto…
    Dans mon idée, et d'après les menus de configuration, je pensais qu'il était possible de mettre le proxy en non-transparent avec authentification en portail captif (ce qui est proposé). -> Services - Proxy server - Authentication - Authentication method : Captive portal <-

    Et dans le portail captif, j'ai mis l'authentification sur : Local manager.

    Seul truc bizarre : On peut créer plusieurs portails captifs, mais on ne peut pas dire à squid l'intitulé du portail à utiliser...



  • @Morphy:

    J'avais bien vu cette méthode également, mais le souci reste le même : il faut passer sur les postes clients pour configurer en auto…

    le mode auto est très généralement celui par défaut pour les navigateurs.

    Dans mon idée, et d'après les menus de configuration, je pensais qu'il était possible de mettre le proxy en non-transparent avec authentification en portail captif (ce qui est proposé). -> Services - Proxy server - Authentication - Authentication method : Captive portal <-

    Ce que tu décris, dans ce que j'en comprends  :-\  décrit que l'authentificaiton au proxy s'appuie sur celle faite au préalable sur le portail. Mais si le proxy est en mode explicite (c'est à dire non transparent), il FAUT qu'il soit connu du navigateur.
    Le seul cas où tu pourrais te passer d'informer le navigateur de la présence du proxy serait, mais je n'en voit pas l'intérêt, si le portail se comportait comme un reverse proxy, et donc client du proxy Squid. Mais dans ce cas, le proxy n'a q'un seul client, le reverse  ::)

    Je vais regarder ce truc de plus près car c'est intéressant  ;)



  • Merci pour ton aide (et ta curiosité).
    En effet, je trouve bizarre que tout soit proposé, et que ça ne soit pas disponible.
    Le seul résultat obtenu pour l'instant est un crash de squid dès que je le relie au portail.



  • Seul truc bizarre : On peut créer plusieurs portails captifs, mais on ne peut pas dire à squid l'intitulé du portail à utiliser…

    Non ce n'est pas bizarre … si on connait/comprend les 2 notions :

    • un portail captif : c'est un 'interrupteur' de trafic : il autorise le trafic (=la traversée du firewall) si on s'identifie
    • un proxy (http) (ici Squid) : c'est un intermédiaire entre le client et le serveur, pour le seul protocole prévu (http, https, ftp), avec contrôles possibles : authentification, date/heure, sites autorisés ou non, ...

    Il y a authentification, certes oui, ... mais pas sur le même référentiel ! D'où non bizarre !