Impossible d'accéder à Internet avec Squid



  • Bonjour à tous !

    Je suis un jeune alternant dans une boîte informatique.
    Récemment, mon chef m'a demandé de mettre en place un système de filtrage en https et d'authentification par un portail captif sur pfsense.

    Nous avons un pfsense faisant office que de pare-feu.

    J'ai décidé de le faire sur une VM en test dans un réseau interne. Tout à fonctionner correctement. (authentification captif portal, filtrage https, certificat ...)

    J'ai donc décidé de mettre en place ma solution sur une machine physique pour remplacer l'ancien pfsense.

    Mais là, les problèmes apparaissent. Mon filtrage https ne fonctionne pas (créant un time out de la page) et ne me donnant pas les accès internet, plus de logs sur squid.
    Si je décoche Enable SSL filtering (https), l'accès refonctionne avec le certificat de google et non celui de mon Pfsense.

    J'ai décidé de supprimer le pfsense physique et voir du côté de ma VM, et là même erreur.
    Plus d'accès internet et time out. Si je décoche Enable SSL filtring, même chose, cela refonctionne.

    Au final, quand j'ai remis l'ancienne config du pfsense physique (juste firewall), la vm refonctionne correctement, avec mon certificat crée dans pfsense, un filtrage https, et des logs.

    Bref, je me retrouve perdu, n'arrivant pas à identifier le problème, j'ai l'impression qu'on a besoin d'un pfsense basique (juste firewall) et d'un pfsense complet (https, captif portal ...) pour que tout fonctionne correctement, ce qui n'est pas normal.

    Si quelqu'un a déjà été confronté à ce problème, je serai ravi de débattre.

    Merci d'avance ! Je peux aussi mettre des captures d'écrans pour documenter si ce problème est insolite.



  • Le problème est d'autant plus insolite que les tests que vous avez mené préalablement sont concluants. A priori une différence de configuration doit exister quelque part. Peut être aussi un problème de routage ? mais comme je ne sais pas comment est l'architecture, il y a des dizaines d'hypothèses.

    l'accès refonctionne avec le certificat de google et non celui de mon Pfsense

    Je ne suis pas certain de comprendre. Le certificat de base de Pfsense est autosigné donc non vérifiable. Le résultat (l'erreur) semble normal.



  • A ta place, je commencerais par challenger fortement le besoin ou au moins vérifier que tu l'as bien compris. S'ait-il vraiment de filtrer du contenu HTTPS ?
    Si oui, alors effectivement il faut faire du SSL Bump et c'est compliqué dans les aspects légaux mais dans le cas contraire, tu n'as pas besoin de certificat spécifique.



  • Bonjour @ccnet !
    Oui, le problème est insolite et vraiment incompréhensible sur certains aspects. Actuellement, pour faire fonctionner mon PFsense (avec https, authentification ...), je dois faire une compilation des 2. En outre, j'ai 2 sous réseaux, celui de mon pfsense primaire et le secondaire (ils font tous les 2 offices de dhcp). Le primaire donne l'ip au Pfsense secondaire. Chose que je voulais faire seulement en test. Mais seul, le pfsense secondaire et son sous-réseaux fonctionne correctement pour le filtrage et autres ... Je sais pas si c'est un problème de conflits, de non-gérance de l'outil ... Sur le primaire, Squid ne veut pas fonctionner.

    Je peux vous passer les configurations pour vous aider à la compréhension de mon infrastructure qui n'a rien de compliqué.

    Sinon non, j'ai recommencé un grand nombre de fois, pensant à une erreur d'écriture de pfsense ou un plantage, mais toujours le même problème... Et je n'ai pas remarqué de différence de configuration.

    Pour le certificat, je parlais de l'autorité que j'ai crée. Celui de Google prend la place de mon autorité.

    Bref, je vais créer un word afin d'expliquer la situation car je me retrouve vraiment comme un "con" sur cette obstacle. Pourriez vous me demander les choses que vous aimerez voir pour comprendre ?



  • @chris4916 Salut !
    Oui, oui, le besoin a été demandé car, c'est avant tout un test, pour savoir si nous pouvons le refaire dans l'avenir.

    Mais actuellement, c'est surtout parvenir à un obstacle personnel, car ce problème est incompréhensible et j'aimerai le résoudre :)



  • @green_kraken said in Impossible d'accéder à Internet avec Squid:

    Si je décoche Enable SSL filtering (https), l'accès refonctionne avec le certificat de google et non celui de mon Pfsense

    Je ne comprends pas cette phrase ☹

    Déjà, j'ai l'impression que pour tester le "fonctionnement" de pfSense, tu te focalises sur le fonctionnement du proxy HTTP. A mon avis, tu gagnerais à dissocier, dans les investigations, les fonctionnalités.
    Ensuite, je ne vois pas ce qu'est "le certificat de Google" ni ce que ça vient faire ici.



  • @chris4916 L'autorité Google Trust Services, je voulais dire.
    C'est l'autorité de Google qui vérifie et non mon autorité crée.
    Oui, je me focalise dessus car c'est ça qui bloque mon objectif.



  • Et, j'ai fait cette étape.
    Le pfsense primaire possède une config "simple" et tout fonctionne. Mais dès l'installation de Squid, aucune log ressort du realtime. Ensuite, l'activation du https ne fonctionne pas (time out sur le navigateur) et même chose pour l'authentification.

    Par contre, le pfsense secondaire (lorsque le primaire est en config "simple") fonctionne normalement (https, squid, realtime, filtrage https ...). Toutes ces fonctionnalités marchent normalement.
    J'ai réinstallé Pfsensee un grand nombre de fois, en dissociant chaque étape, pour comprendre le problème.

    C'est surtout ce cas de figure que je n'arrive pas à comprendre.
    Je voudrais savoir si le pare-feu ne peut faire dns - dhcp et filtrage https sur la même machine (ce qui crée des erreurs, conflits ...) ? Et surtout si mon cas de figure est récurrent ou insolite.



  • Bonjour à tous.
    Bon, j'ai pu résoudre mon problème. Je ne l'avais pas fait sur le pfsense de ma VM, mais je suis obligé de le faire sur mon Pfsense primaire , j'ai référencé l'ip du Pfsense dans la configuration proxy des machines clients. Bref, on va dire que c'est dommage qu'il ne le fasse pas automatiquement la découverte comme sur ma VM mais bon.

    Mais j'ai un dernier obstacle avant d'y arriver. Lors de la configuration du proxy manuel sur la machine client, je ne peux pas m'authentifier au portail captif, je n'ai pas la pop-up qui me le demande.
    Par contre, si je désactive le proxy manuel, hop j'ai l'authentification mais dès que je m'authentifie, pas d'internet. Bon je me dis normal, j'ai désactivé le proxy manuel.
    Je l'active et finalement accès à internet, certificats, logs de squid...

    C'est merveilleux ça fonctionne. Malheureusement, j'aimerai bien résoudre ce problème d'alternance entre la désactivation et l'activation de la configuration manuel du proxy du client pour m'authentifier.

    Donc voilà, mon dernier obstacle, y'a t'il un option à cocher pour accéder à l'authentification avec le proxy manuel ? Ou mettre en place WPAD ?



  • Quelle que soit la manière dont tu déploies pfSense, VM ou pas (je ne vois d'ailleurs pas le rapport), il n'y a pas de découverte automatique du proxy, autant que je sache.
    Donc si tu veux que les flux sortant HTTP de pfSense s'appuient sur un proxy, il faut lui dire...
    Et si tu configures un proxy, l'impact sur l'utilisation du portail captif est assez important, selon où se situe le portail par rapport au proxy.
    Pour faire simple, si tu utilises un proxy en mode explicite, que tu passes par celui-ci pour accéder au portail captif, à ton avis quelle IP va voir le portail ?



  • Bonjour @chris4916,
    il possédera l'IP de mon pfsense, je sais bien et je le vois bien. Mais pourquoi alors, il a tant de difficultés de me l'afficher ?
    Et où dois je l'indiquer ?
    Après oui il devrait pas y avoir de différence entre ma VM et en physique , mais les preuves du contraire sont juste devant, donc c'est embêtant....
    En gros actuellement, ce n'est pas le portail captif qui est prioritaire mais le proxy donc, je dois désactiver le proxy manuel sur windows pour m'authentifier et le réactiver pour avoir accès à internet.



  • @green_kraken said in Impossible d'accéder à Internet avec Squid:

    Et je voulais dire plus haut, quand je désactive le proxy manuel, l'authentification apparaît mais je n'accède pas internet mais quand je réactive le proxy, ça marche.

    Va voir ici : https://www.netgate.com/docs/pfsense/captiveportal/captive-portal-troubleshooting.html
    Plus précisément:

    ipfw table all list
    

    et

    ipfw list
    

    Un portail captive n'est rien d'autre que un liste de règles parafeu.
    pfSense utilise pour le portail captif le parafeu de FreeBSD : ipfw, qui travaille aussi avec les adresses MAC en dehors des adresses IP.
    A savoir : ceci ne sont pas les règles parafeu qui trouve dans le GUI de pfSense.

    Il existe qu'un différence entre un "PC qui passe" et un "PC qui ne passe passe".
    C'est hyper simple à trouver :
    Exécute un "ipfw table all list" avant que logge auprès ton portail captif, puis un autre "ipfw table all list" après avoir loggé son PC.
    T'auras vite vu que le MAC et IP de ton PC seront intégrés dans les tables " myzone_auth_down" et
    "myzone_auth_up".

    Les autres règles ipfw existe pour faire passer le DHCP entre autre - car sinon plus rien fonctionnera.

    Mais : proxy, ou pas, rien pourrait passer.
    Suivant
    fwd 127.0.0.1,8002 tcp from any to any dst-port 80 in
    => le requête avec une "porte destination 80" (autrement dit : le requête d'un navigateur web qui dé"sire se connecter sur un serveur quelconque sur le net) sera rédigé vers "127.0.0.1:8002" qui n'est rien d'autre que le serveur web qui host le page de login de notre portail captif.

    Tout ça pour te dire : si t'as paramétré un proxy sur un PC, il va balancer tout le trafic sur la porte du proxy (== pfSense ?) .... qui n'est pas la porte "80" : donc tu tape dans la porte du portail - et il est fermé. Impossible de "joindre" le serveur web de pfSense -portail-captif qui t’affiche la page de login.
    T'es bloqué.
    Dès que tu enlève le paramétrage sur ton PC du proxy, authentification marche (== le portal captif avec l'aide de ton navigateur). Après authentification, tu réactive le proxy manuellement et par magique tout fonctionne.
    Si tout va bien, t'as maintenant compris que il n'y rien de magique.

    Sache que je ne suis pas un expert de proxy, je me demande même de quoi il s'agit - son utilité - je ne l'utilise pas, mais j'ai vu que c'est possible d'utiliser pfSense avec un portail captif et un proxy "transparent"



  • Bonjour @Gertjan ,
    Voilà c'est exactement le problème actuel. Merci d'avoir pris le temps de m'expliquer, j'y vois plus clair, mais je n'arrive pas à trouver une solution :/
    Je dois faire cette manipulation afin d'avoir accès à mon portail captif et avoir l'accès internet (proxy manuel).
    On ne peut pas privilégier ou permettre l'accès à l'authentification avec le proxy ? Car faire la manipulation à chaque connexion, ça devient vite embêtant.
    Edit : Après une réactivation du squid, maintenant mon portail captif ne fonctionne plus même avec ma manipulation. Je pense vous faire une vidéo pour que vous visualiser la chose.
    Et je voulais savoir si la création d'un WPAD permettrait de résoudre mon problème ?



  • Bien sûr, on ne parle pas ici de proxy en mode transparent parce que dans ce cas, c'est trivial mais le mode transparent du proxy présente de gros inconvénients.

    La réponse n'est pas dans WPAD mais éventuellement dans la gestion des exceptions:

    • WPAD n'est que le moyen d'automatiser la découverte du proxy
    • si ton proxy est "avant" le portail captif, tu as compris que ça ne marche pas car le premier qui accède à un site va faire déclencher la règle qui va autoriser le proxy à traverser le FW... pour tous les utilisateurs du proxy.
    • si ton proxy est "après" ton portail captif, alors ça ne marche pas car tu n'atteindras pas le proxy tant que le portail captif n'aura pas autorisé le flux... sauf si tu définis, manuellement au niveau du browser ou du proxy.pac une exception qui dit au browser que pour accéder à certaines pages, il faut y aller sans passer par le proxy.
      Mais ça impose bien sûr à l'utilisateur d'accéder "manuellement" à cette page avant de naviguer sur internet via le proxy une fois les flux autorisés.
      A partir de là, en en accédant à cette page "autorisée" tu vas y aller en direct, être intercepté par le portail captif qui va autoriser ensuite les flux venant de ton IP, y compris vers le proxy.

    Ce n'est pas aussi sexy qu'un mode "tout automatique" et transparent.
    Mais quel est l'usage de ce portail captif ? D'informer les utilisateurs de manière obligatoire ou bien de les authentifier ?