Forum Linux.général Filtrage SSL

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes : aucune
2
14
nov.
2014

Bonjour a tous

C'est mon premier poste linuxfr

Je travaille dans un établissement scolaire et nous avons installé le wifi partout.

D’après la loi je doit bloquer le porno et faire du log sur les connexions qui circule sur mon wifi.

Actuellement nous utilisons la technique du wpad proxy avec un squid/squidguard authentifiant.

Si la navigation par wpad n'est pas configuré cela les redirige vers une page qui leur expliques comment activer celle-ci.

Cette technique nous permet de filtrer le http/https en et de filtrer en fonction des groupes de notre samba4.


J'aimerais maintenant pouvoir connecter les smartphones ou tablettes au wifi.

Malheureusement le wpad n'est pris en charger ni sur ios ni sur android ni sur windows phone.

Certe je peut rentrer à la main le proxy dans les réglages wifi mais seul les IOS prennent en charge le proxy authentifiant. Android le permet mais uniquement avec l'application sandroproxy et windows phone je n'ai pas trouvé.

De plus je voudrais une solution qui ne nécessite aucune configuration sur les postes.


Je cherche donc une nouvelle solution.

J'ai donc essayé alcasar mais je recontre des soucis de charge au delà de 60 utilisateurs et le serveur plante (problème de charge cpu).


J'ai pensé abandonner le filtrage par groupe et faire un proxy transparent. Les utilisateurs seraient authentifiés grâce a un portail captif. (je pense notamment a packetfence)

Seulement, j'arrive a filtrer le http mais je ne parvient pas a trouver de solutions efficace pour filtrer le https.

je peux donc filtrer le ssl avec:

  • Squid-in-the-middle SSL Bump (je ne trouve pas que ce sois la bonne manière de filtrer le ssl, faudrait me convaincre)

  • dnsmasq avec des blacklist
    (facilement détournable avec un dns local dans le host par exemple)

  • bloquer les adresses ip des sites avec iptables
    (compliquer pour les hébergements mutualisés comme ovh, on peut bloquer toute une série de site pour un seul site bloqué )

Je suis donc un peu bloqué.
Avez vous des idées ?

Simon

  • # Un effort avec le participe passé STP et le français en général

    Posté par  . Évalué à -2.

  • # un petit mix...

    Posté par  . Évalué à 1. Dernière modification le 16 novembre 2014 à 02:10.

    Bonjour,

    concernant ton besoin de faire de l'analyse SSL j'avais posté il ya quelques temps des questions là dessus mais des "pseudos" puristes des libertés individuelles m'avaient immédiatement lapidé en place publique …

    Bon concernant les solutions:
    Squid + SSLBump -> déjà testé ça fonctionne pas très bien dans le sens ou ca merde au niveau de la charge (voir si cela s'est amélioré depuis…) d'autre part tes users auront des messages d'avertissement sur tous les sites et ça c'est juste horrible (pour outrepasser cela il faudrait diffuser un certificat trusted généré via un CAroot maison…) si tu as accès à touss les devices ça peut être une solution …

    La solution de l'analyse via DNS est pas mauvaise… si bien entendu tu filtres le port 53 tcp/udp vers Internet (exclusion de ton DNS local)…

    Tu pourrais aussi utiliser snort pour ton trafic ce qui aurait également pour avantage de bloquer du trafic pas propre (malware & co) au besoin. (il existe des règles pour des catégories web cf porn & co mais elles ne semblent pas très efficace)
    ```

    • [^] # Packetfence !

      Posté par  . Évalué à 2.

      Bonsoir,

      le plus simple est d'installer un PacketFence en 802.1x avec l'auth sur le samba4 en autoregistration. Dans ce cas le problème est résolu, car l'authentification se fait préalablement à toute connexion, et donc plus besoin de s'authentifier sur le proxy, les logs du proxy et de PF contiennent tout ce qu'il faut sur le plan légal pour tracer un utilisateur.

      Dans ce cas le squid n'a que l'ip source à disposition, il faut donc avec squidGuard soit interroger PF (radius ou sql) pour récupérer l'utilisateur et son rôle, ou alors juste l'utilisateur pour après interroger le samba4 pour connaître le groupe.

      Autre solution beaucoup plus simple, faire changer de vlan les utilisateurs en fonction des droits d'accès internet via des règles PF basées sur les groupes samba4. Dans ce cas il ne faut pas que tu aies des applis clients qui dépendent d'une ip fixe… Ou alors avoir une résolution DNS dynamique de la zone LAN (c'est le cas avec samba4 ?)

      Côté matos, il faut que les bornes supportent le 802.1x avec changement de vlan, et là c'est pas gagné… Prépare-toi à flasher de l'OpenWRT !

      • [^] # Re: Packetfence !

        Posté par  (site web personnel) . Évalué à 1.

        Salut denisb

        Je compte bien utiliser packetfence pour l'authentification.

        Le problème réside toujours du côté filtrage ssl.

        Pour ce qui est du matos, on a vu avec le dev packetfence au téléphone et aucun soucis, nos 40 bornes et le contrôleur sont pris en charge par packetfence.

        Dans ce cas le squid n'a que l'ip source à disposition, il faut donc avec squidGuard soit interroger >PF (radius ou sql) pour récupérer l'utilisateur et son rôle, ou alors juste l'utilisateur pour après >interroger le samba4 pour connaître le groupe.

        Déjà réfléchie mais squid et squidguard ne sont pas capable de filtrer du ssl en mode transparent, sauf avec squid ssl bump, mais cette solution est dangereuse je trouve, le ssl n'a pas été conçue pour ça.

        Je ne peut pas non plus renseigner le proxy ni en dur ni wpad car c'est leurs appareils perso.

        Dites moi si je me trompe ou si j'ai mal compris.

        Simon

        • [^] # Re: Packetfence !

          Posté par  . Évalué à 1.

          Le proxy transparent est généralement une mauvaise idée, qui au final crée plus de problèmes qu'il en résout. Le wpad pareil…

          Mais justement l'intérêt de passer par PF est de pouvoir utiliser le proxy en mode non transparent : pour Android, IOS les provisionneurs qui permettent de configurer l'accès via le SSID EAP vont aussi configurer le proxy. Pour les Linux et mac OS c'est facile d'avoir sur la page du portail captif un script de config aussi. Le problème c'est les Windows, la configuration du reseau sans fil est une horreur, et je n'ai pas connaissance d'un moyen reproductible d'y arriver…

          Mais peut-être qu'il faudrait voir cela avec les devs de PF, si cela se trouve ils ont cela dans les cartons pour Noël !

    • [^] # Re: un petit mix...

      Posté par  (site web personnel) . Évalué à 1. Dernière modification le 17 novembre 2014 à 01:07.

      Salut

      a ratw3:

      Pour ce qui est des libertés individuelles, je peu comprendre le discours. Mais bon, maintenant je travaille dans l’éducation… Lycée. Donc le contexte est différent.

      Pour Squid + SSLBump tu confirme mes pensées. je zap la solution.

      Le dns est la solution utilisée par alcasar pour le ssl il me semble. Mais j'ai un doute, si je rentre par exemple l'ip de facebook dans mon hosts, j'arrive a sortir sans être loguer ?

      Pour ce qui est de snort le dev packetfence que j'ai eu au téléphone m'en a parlé mais il me propose un changement de vlan avec ré-authentification a chaque site interdit. Je voudrais quelque chose de plus simple.

      Je reste quand même sur la solution packetfence pour l'authentification.

      Simon

      • [^] # Re: un petit mix...

        Posté par  . Évalué à 1. Dernière modification le 20 novembre 2014 à 01:38.

        heuuuu…
        je dirais que ton probleme a pas beaucoup de solutions…

        Pour filtrer un contenu SSL:
        1) tu utilise un MiTM like (cf Squid SSLBump + CARoot perso pour pas avoir de warning)
        Perso on utilise une solution commerciale qui marche au top… McAfee SWG.

        Mais tu dois surement pouvoir le faire avec Squid, voir meme un truc plus sexy:

        • authentification ntlm avec fallback basic sur squid (pour les tablettes & co)
        • url_rewrite_program qui check via un script bach/perl si le user est déja "validé" ou non (ca te permet de balancer des CGU à valider + un mini tuto pour importer le CA public de ton Lycée sur cette page dans le cs des devices/machines où tu ne peux pas déployer en GPO…)
        • SSLBump "propre avec CARoot" (avec le tuto précédent fini les avertissements pour les devices/clients que tu ne gères pas tablettes, android etc…)
        • Le tout bien tunné (optimisation de cache & co)
        • serveur doublé avec un haproxy pour faire du load balancing

        => ton problème est solutionné

        ou

        2) tu utilises snort qui travaillera "au dessus" et oui si tu mets dans ton host l ip de FB elle sera détectée par snort (si tu as mis une policy qui filtre FB)… POur ce qui est de basculer un user bloquer dans un vlan différent je trouve ça ignoble :) avec Snort tu peux envoyer des tcp/rst du coup la connection sera pétée c'est pas beau mais ça bloque :)

        pis de toute façon FB et les autres utilisent de multiples sous domaine pour les images, le chat etc… donc quand bien même il ya une entré dans un host local ca ressemblera pas à grand chose :)

        • [^] # Re: un petit mix...

          Posté par  (site web personnel) . Évalué à 1.

          Salut

          Pour le moment j'essaye de partir sur filtrage+log dns pour ssl (Comme ça le certificat ssl d'origine est conservé) + squid/squidguard sur le port 80.

          Cela m’embête de déchiffrer le ssl juste pour du filtrage.

          J'étais tombée sur cet article qui résume bien le truc:
          https://www.grmnprz.org/ssl-proxy-in-the-middle.html

          Chez blue coat il utilise effectivement cette solution. Mais avec un certificat valide, du coup ils n'ont rien a faire.

          Donc pour le moment filtrage dns pour ssl + squid pour 80

          A voir

          Merci beaucoup pour toute vos réponses

          Simon

          • [^] # Re: un petit mix...

            Posté par  (site web personnel) . Évalué à 1.

            Bon finalement ni le ssl bump n'est bon ni le filtrage dns.

            Pour le ssl bumping :
            Certaine application smartphone embarque les certificats racine dans l'application. Du coup on ne peut pas rajouter le notre.

            Pour le filtrage avec le dns ça m'embête car il faut laisser le port 443 ouvert. Cela m'embête.

            J'en reviens donc à ma solution initial, configurer un proxy.
            ```
            - Pour les pc: Facile, il faut utiliser le wpad et rediriger les non configuré vers une notice, ou page de script d’auto-configuration proxy. Finalement ce que je fait déjà actuellement.

              -  Pour les smartphones, faire une notice pour expliquer comment configurer le proxy sur son téléphone, ou faire des script d'auto-configuration en cliquant sur un lien.  MAIS problème !  Comme j'ai un portail captif avant, il faut qu'il soit capable d'intercepter les pc qui on déjà configurée le proxy.  A voir donc avec les dev packetfence. 
            

            ```Ou dans tous les cas:
            Utiliser le wifi comme ici :
            http://wiki.univ-nantes.fr/wifi:documentation:eduroam:iphone

            Bref je pense avoir fait le tour de toute les solutions.

            Merci beaucoup pour votre aide.

            Rien que personnellement j'ai appris beaucoup de chose.

            
            
            • [^] # Re: un petit mix...

              Posté par  (site web personnel) . Évalué à 1.

              Donc Packetfence me confirme qu'il est capable de d'intercepter du trafique proxy avec son portail captif.

              Donc Soit je fait une authentification avec le portail captif, ou authentification 802.1X, avec dans les deux cas packetfence derrière.

              Une fois connecter les utilisateurs seront redirigés vers une page leur indiquant comment configurer le proxy leurs appareils.

              Simon

        • [^] # Re: un petit mix...

          Posté par  . Évalué à 1.

          Salut ratw3,

          pour intro j'ai pas trouvé d'autres moyens de te contacter qu'en répondant à ce commentaire laissé en novembre, donc une fois lu ce commentaire pourra être supprimé car n'apporte rien au sujet en cours (bien que passionant).

          J'ai lu dans l'un de tes posts précédents (mai 2013 en réponse au topic "Un peu perdu. Que faire maintenant ? Changer de vie ?") que tu étais parti vivre en Suisse ta passion du développement et ça m'intéresse grandement puisque tout comme l'auteur plop-plop je suis également un développeur passionné mais qui ne trouve pas sa place dans le marché du développement logiciel français entre les SSII (ESN) dont les missions finissent souvent en dépression ou en burnout, les tâches de développement complètement inintéressantes, les décisions de managers qui ne connaissent rien au métier du développement, une expérience d'auto entrepreneur ou il faut savoir exercer 4 métiers différents en étant seul avec soi-même ect.. ect..

          D'après ton post on est mieux traité en Suisse. Es-tu toujours du même avis depuis la date de ton post? quelles différences/comparatifs tu fais avec la France (sur tous les plans culturels/financiers/cadre de vie/intérêts des postes de développeur ect…).

          merci et désolé de venir polluer ce topic inutilement.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.