Portail captif : problème d'affichage du portail



  • Bonjour,
    Je vous soumets un problème que je rencontre et qui m'est assez pénible mais qui est très certainement dû à un problème de conf.
    J'utilise pfSense uniquement comme portail captif pour fournir à nos clients un accès à Internet lors de leur visite dans nos locaux.
    La situation n'est pas idéale : en fait le portail captif est connecté sur notre LAN et sort par notre sortie Internet. pfSense n'est pas dans une DMZ, ni dans un VLAN séparé, ni avec une ligne ADSL dédiée.

    Sur le serveur pfSense, il y a également squid et squidguard dont le but est de faire de l'enregistrement de logs et du filtrage.

    Le problème que je rencontre est lié à l'affichage du portail en lui même. Sur un terminal type iPhone, pas de soucis, la page d'authentification s'affiche. Par contre, sur Windows, il n'est pas rare que la page ne s'affiche pas. Si on tape l'adresse (192.168.1.1:8000), elle est bien là mais quand on tape google.fr (par ex), la page d'authentification n’apparaît pas et au bout de 30 sec, timeout du navigateur.

    Selon ce qu'on a pu m'expliquer, Squid pourrait être le coupable de cette défaillance puisqu'il est conseillé de placer un proxy après pfsense et dans une DMZ… mais bon, ce n'est pas le cas !

    Quelqu'un pourrait-il m'apporter un éclairage sur ce que je dois faire pour ne avoir ce type de problème.



  • Une des fonctions du portail captif est d'ouvrir des règles de FW une fois que l'utilisateur est passé par le portail et a exécuté une action (validation ou authentification par exemple).

    Comme il s'agit de règle de FW, il s'agit d'adresse IP  ;)

    Si l'utilisateur passe d'abord par un proxy (fusse t-il transparent) l'IP source qui va accéder au portail captif sera celle du proxy.
    Si en plus le proxy est sur la même machine que le portail captif (ici pfSense) l'IP qui va être autorisée par le portail captif si celui-ci change des règles du FW va probablement être 127.0.0.1

    C'est pour cela qu'il faut que ton portail intervienne avant le proxy (*).

    La difficulté avec le portail captif et le proxy sur pfSense, c'est que :

    • en mode proxy explicite, celui-ci est configuré au niveau du browser et donc le browser accède le proxy sur un port spécifique qui n'est normalement pas celui que le portail captif intercepte. Il faut dans tous les cas gérer une exception et forcer l'accès à une page intercepté par le portail.
    • en mode proxy transparent, il faut regarder dans quel ordre interviennent les règles d'interception. Portail captif et proxy transparent sont basés sur un mécanisme analogue (et donc potentiellement conflictuel) d'interception et de redirection. Dans l'absolu, il est possible que ça fonctionne si la première interception est celle du portail…

    Une solution plus "simple" :
    un portail captif suivi d'un proxy.

    proxy en mode transparent si cela correspond à ton besoin, et donc si tu notes bien que celui-ci :

    • n'intercepte que HTTP, pas HTTPS (sauf si SSL-Bump = MITM)
    • ne connaît que l'IP source, pas l'utilisateur

    proxy en mode explicite (configuré à la main ou via WPAD) :

    • il faut gérer une option "no proxy for..." (ou un DIRECT dans le proxy.pac) pour que l'accès au portail captif se fasse directement en non pas en tentant d'y accéder au travers du proxy.

    Je ne suis pas certain que pfSense soit la meilleure solution  si utilisé uniquement pour cet usage  ;)
    As-tu regardé des produits dédié au portal captif comme Chilispot, wifidog etc ?

    (*)  Squid (je ne sais pas ce qu'il en est du package Squid de pfSense) permet de faire des choses un peu plus fines que ce que je décris au dessus qui correspond au fonctionnement "basique". pas exemple avec des redirecteurs et/ou des splash pages.