Portail captif et identification libre mais loguée



  • Bonjour à tous,

    Contexte : milieu professionnel, pfSense en proxy/firewall et portail captif sur la connexion internet réservée aux invités.

    Besoin : l'authentification au portail captif doit être en saisie libre, mais loguée quelque part. En gros, pas de base de données avec user/mdp, mais plutôt une case où l'invité entre ce qu'il souhaite (nom, prénom, toto etc…) et que ce qu'il entre soit logué et associé à sa session internet, peu importe ce qu'il saisit, il aura accès à internet.

    WAN : 1 routeur WAN

    LAN : 1 vlan avec DHCP et une borne wifi en point d'accès.

    Packages ajoutés : Squid, Lightsquid, Squidguard

    Question : Je ne trouve pas comment laisser un enregistrement libre aux utilisateurs sur le portail captif tout en loguant ce qu'ils saisissent?

    Recherches :

    • J'ai essayé le portail sans authentification, en formatant la page d'accueil de manière à avoir une case "Nom". Je peux effectivement entrer ce que je veux, j'ai bien accès à internet derrière, mais je ne retrouve jamais dans les informations de session ouverte ce que j'ai entré manuellement.

    • J'ai essayé l'authentification ldap/radius, mais il faut à chaque fois avoir une base existante avec id/mdp, ce que ne souhaite pas ma direction.

    Existe-t'il un moyen d'avoir cette fonctionnalité de saisie libre, sans base locale ni vérification, tout en gardant ce qui est saisi?  :-\

    Merci d'avance !



  • Et si vous stockiez l'information dans les logs de Squid ?



  • Je ne vois pas bien l'intérêt d'un tel design mais pourquoi pas…
    Si tu as déjà une solution qui fonctionne coté portail captif, il suffit de remplacer ta page de saisie par une petit application qui stocke l'information.
    Un petit truc en PHP par exemple  ;)



  • (Pour un premier post, vous utilisez, un peu sommairement, le formulaire : c'est bien).

    Pour modifier un tel système, il faut 2 choses :

    • comprendre comment il fonctionne,
    • avoir les compétences pour modifier les éléments qui interviennent.

    Le principe du portail captif est basé sur l'interception du premier flux http.
    Le portail renvoie alors un formulaire html (généré par un script en php).
    L'utilisateur via son navigateur remplit le formulaire.
    Le portail récupère les champs en réponse, et fait ce qu'il a à faire (toujours via un script php).

    La compétence nécessaire est de savoir traiter les réponses, sans interrompre le traitement normal du portail captif.
    C'est à dire qu'il faudra modifier et le script initial, et le script qui traite le retour.
    Se posera, bien évidemment, la façon de stocker l'info recueillie, ainsi que la restitution …
    C'est à dire qu'il faudra y avoir pensé, avant de modifier les scripts ...

    On est éloigné des préoccupations standards d'un admin pfSense, et les compétences requises sont assez pointues ...

    (Je suis désolé de ne pas être succinct ...)



  • @ccnet:

    Et si vous stockiez l'information dans les logs de Squid ?

    Oui ça serait l'idéal. Actuellement j'ai bien les logs avec squid, mais sans quelconque référence à la donnée saisie par l'invité, uniquement l'ip et les url.
    Il y a moyen d'intégrer cela avec Squid? Je n'ai pas trouvé ce type de configuration…

    @chris4916:

    Je ne vois pas bien l'intérêt d'un tel design mais pourquoi pas…
    Si tu as déjà une solution qui fonctionne coté portail captif, il suffit de remplacer ta page de saisie par une petit application qui stocke l'information.
    Un petit truc en PHP par exemple  ;)

    Je ne vois pas non plus l’intérêt, mais c'est le souhait de la Direction de ne pas rendre l'enregistrement fastidieux tout en gardant cette trace…
    Le module php effectivement peut être jouable ce qui rejoint sûrement l'idée de relier cela avec Squid évoquée par ccnet plus haut. Le souci c'est que je suis paumé dans ce domaine :(

    Merci en tout cas de vos réponses.



  • @jdh:

    (Pour un premier post, vous utilisez, un peu sommairement, le formulaire : c'est bien).

    Pour modifier un tel système, il faut 2 choses :

    • comprendre comment il fonctionne,
    • avoir les compétences pour modifier les éléments qui interviennent.

    Le principe du portail captif est basé sur l'interception du premier flux http.
    Le portail renvoie alors un formulaire html (généré par un script en php).
    L'utilisateur via son navigateur remplit le formulaire.
    Le portail récupère les champs en réponse, et fait ce qu'il a à faire (toujours via un script php).

    La compétence nécessaire est de savoir traiter les réponses, sans interrompre le traitement normal du portail captif.
    C'est à dire qu'il faudra modifier et le script initial, et le script qui traite le retour.
    Se posera, bien évidemment, la façon de stocker l'info recueillie, ainsi que la restitution …
    C'est à dire qu'il faudra y avoir pensé, avant de modifier les scripts ...

    On est éloigné des préoccupations standards d'un admin pfSense, et les compétences requises sont assez pointues …

    (Je suis désolé de ne pas être succinct …)

    Effectivement !
    L'idée était de savoir si une solution simple de contournement existait, mais il semblerait que les avis soient assez unanimes là-dessus!
    Cela confirme qu'il va falloir que je fasse appel à un expert dans ce domaine (scripts, php etc…)

    Merci pour votre aide !



  • Les compétences pour modifier (correctement) des scripts php sont rares … chez les admins réseaux.
    Mais c'est à la portée d'un programmeur web ... (étant entendu qu'il doit travailler avec l'admin !)
    Il(s) ne doi(vent)t pas y passer plus de 2 jours, avec les étapes habituelles (compréhension, préparation, codage, test/vérification).

    Ce n'est pas 'un truc', ce sont 2 scripts à modifier (+ un à créer pour visualiser).



  • Bonjour,

    Moi je passe par une page au milieu qui me permet d'injecter les informations dans les logs :

    $voucher = $_POST['auth_voucher'];
    $nom = $_POST['Nom'];
    $prenom = $_POST['Prenom'];
    $PORTAL_REDIRURL = $_POST['redirurl'];
    $PORTAL_ZONE = $_POST['zone'];
    $PORTAL_ACTION = $_POST['action'];
    
    log_error("$nom $prenom $voucher");
    
    ?>
    
    <center>
    
    Ca peut te convenir ?
    
    Dans le log_error tu peux y mettre ce que tu veux.</center>
    
    


  • Pas mal ça, même si je suis pas sûr de tout saisir !
    Du coup au final ça se retranscris comment dans ton portail ? Les données saisies sont incrémentées aux logs ?



  • Oui c'est ça tout ce que je récupère je l'envoi dans les logs ! Après un coup ca passe dans le log System un coup ca passe dans le log captive portal ! Je sais pas pourquoi…


Log in to reply