wifi/internet/proxy – Les Fourmis Du Web https://blog.lesfourmisduweb.org Blog d'actualité informatique Fri, 26 Jun 2020 22:23:51 +0000 fr-FR hourly 1 https://wordpress.org/?v=6.2.2 La généralisation du filtrage mitm … https://blog.lesfourmisduweb.org/la-generalisation-du-filtrage-mitm/ Fri, 26 Jun 2020 22:23:51 +0000 http://blog.lesfourmisduweb.org/?p=693

Je constate lors de mes divers et nombreux déplacement que le filtrage mitm par les firewall est quelque chose de plus en plus répandu en entreprise et collectivité. J’ai donc décidé d’en parler !

Historique

Revenons a la base, pourquoi l’https a été inventé ?
Dans les entreprise, la nécessité de chiffrer le flux pour éviter qu’un pirate ne puisse récupérer des information sensible devient une nécessité, notamment pour les banques. Les sites de vente en ligne …

Principe de fonctionnement : Le navigateur est capable de vérifier qu’il discute avec le bon serveur grâce au certificat du site web. La connexion est chiffrée et donc illisible par un attaquent positionner sur un routeur par exemple.   Un petite révolution ! On peu maintenant être certain de discuter avec le bon serveur de manière chiffré !

C’est quoi le filtrage mitm ?

Souvent, c’est le firewall de votre entreprise qui va se comporter comme un pirate et analyser tous le trafic pour bloquer ou autoriser la connexion.

Comment ça marche ?

Le principe de fonctionnement est du coup assez simple pour analyser le contenu https. On installe le certificat du fwall dans les différent bundle de certificat des clients (store windows, firefox, logiciel…)
Ensuite lors du surf, le fwall va chiffrer la connexion avec sa clé et va ainsi pouvoir analyser tous le trafic … (mot de passe, mail, image tous y passe)

Que doit on en penser ?

Je ne blâme pas le principe…  En revanche il faut être clair avec ses utilisateurs en leurs indiquant la pratique !

En pratiquant le mitm il faut donc être rigoureux… l’appareil qui fait le filtrage est souvent le fwall, et l’ironie veut que c’est l’appareil qui est directement en frontale sur internet …

Vous vous devez donc (plus particulièrement que d’habitude) de vérifier que votre appareil est à jours, la moindre faille de sécu est critique car le pirate peut déchiffrer le flux https.

De la même manière, si vous remplacez l’appareil et que vous jetez l’ancien. Vous devez vous assurer que la clé privé a bien été supprimé de l’ancien appareil. (cela parait évident mais bon …)

Je constate dans trop de cas que l’option est activée sans vraiment que l’administrateur prenne conscience qu’il est en train de prendre une responsabilité vis à vis de ses utilisateurs.

De la même manière, vous ne devez pas demander a vos utilisateurs d’installer le certificat sur leur poste personnel (pour du wifi invité par exemple)…

Cela m’est déjà arrivé que l’ont me demande d’installer ce genre de certificat dans mon navigateur lors de déplacement. L’admin réseau semblant alors étonné que cela soit un non catégorique de ma part…

Conclusion

Le but n’est pas de blâmer mais plus d’ouvrir un débat sur cette pratique qui se généralise … Si vous êtes utilisateurs je vous invite a en discuter a votre adminsys…

 

]]>
Solution de parfeu simple et efficace https://blog.lesfourmisduweb.org/solution-de-parfeu-simple-efficace/ https://blog.lesfourmisduweb.org/solution-de-parfeu-simple-efficace/#respond Mon, 20 Mar 2017 21:44:49 +0000 http://blog.lesfourmisduweb.org/?p=563  

Petit article vite fait pour vous faire découvrir une solution simple et efficace.
On est en règle général tous d’accord pour dire qu’iptables est une solution fiable et efficace mais dont la syntaxe est imbuvable.

J’ai découvert Shorewall a mon nouveau boulot chez tranquilit
Shorewall est une surcouche a iptables ,  permettant de simplifier celui-ci.

J’aime de plus en plus les solutions sans fioriture, pas d’interface web, le tous se résume en quelques fichiers de conf qui deviennent simple a « backuper ».

Le problème avec les solutions tout empaqueter comme pfsense (je ne crache pas sur pfsense non plus) c’est qu’on ne sait pas trop ce qui se passe derrière. J’aime pas trop ça pour débugger c’est pas le top.

L’autre avantage de prendre une solution baser sur linux c’est que vous n’êtes pas lier a un matériel comme sonicwall ou cisco par exemple, et pas de licence …

Bref je vous laisser tester ! Je trouve que ça vaut le coup !

]]>
https://blog.lesfourmisduweb.org/solution-de-parfeu-simple-efficace/feed/ 0
Wifi – FreeRadius 802.1x – Squid/SquidGuard https://blog.lesfourmisduweb.org/wifi-freeradius-802-1x-squid-squidguard/ https://blog.lesfourmisduweb.org/wifi-freeradius-802-1x-squid-squidguard/#respond Sat, 26 Mar 2016 23:06:32 +0000 http://blog.lesfourmisduweb.org/?p=452

Il y a un moment maintenant déjà, j’avais fait un article « Pourquoi il ne faut pas utiliser Squid en mode transparent ? ». J’avais là ma solution de filtrage. Mais pas  forcément la solution d’authentification.

J’avais pensée utiliser packetfence, mais c’est plus une solution de NAC. Pfsense est intéressant également, mais ne convenait pas trop à mon projet. Packetfence est d’ailleurs trop gourmand en ressource.

Je suis donc partie sur le principe me faire ma solution faite main, voici une petite vidéo de présentation de ma solution :

https://www.youtube.com/watch?v=9ItnHyWaWMo

Principe de la solution :

Une borne wifi, avec une authentification wifi « wpa2 entreprise », cette borne est connectée a un freeradius, lui-même connecté a mon active directory (authentification ntlm). Le certificat choisi est un let’s encrypt. Avoir un certificat signé par un ca root déjà installée sur l’ordinateur est utile, en effet, lors de l’utilisation d’un certificat auto signée, il faut installer le ca root correspondent sur l’ordinateur client, ce qui du coup n’est pas pratique.

Une fois connectée sur le wifi. La configuration de proxy automatique fait son boulot pour les navigateurs configurée en « détection automatique de proxy ». Si ce n’est pas le cas (sur tous les smartphones), les utilisateurs sont redirigés vers une page qui leur indique comment activer la détection automatique ou le proxy manuel.

Du côté serveur, mon squid log les adresses MAC qui surf en http et https. Le Freeradius lui log les connexions wifi avec les noms d’utilisateur et les adresses mac associées. (voir vidéo)

Cette solution est intéressante, mais ne résout pas tous les problèmes.

Lors d’un changement de mot de passe, la connexion échoue.
Ce qui est plutôt bon signe. Ce qui est moins cool par contre, c’est qu’il faut supprimer la connexion entrer a nouveau le mot de passe. C’est bien dommage. Aussi, les vieux appareils ne fonctionnent pas avec le 802.1x Dommage

Un des avantages de cette solution (ou désavantage) tout dépend de votre point de vue, c’est qu’une ré-authentification régulière n’est pas nécessaire. Du coup pour un smartphone qui va et vient, c’est super. Mais pour un pc qui appartient à plusieurs personnes ,ce n’est pas top …

Également, cette méthode ne permet pas de faire apparaître des conditions d’utilisation comme pour un portail captif. Je considère qu’un papier doit être signé lors de la distribution de l’identifiant et du mot de passe ou alors qu’un article doit apparaître dans la charte informatique.

Pour faire claire, je n’ai pas trouvé de solution parfaite, mais celle-ci me parait un bon compromis pour mon réseau.

Et l’avantage, c’est que cela consomme très peu de mémoire. Je peux faire tourner ceci sur un raspberry ^^

Aujourd’hui, je trouve qu’il n’y a pas de solution pour les hotspot wifi. Les portails captifs habituent les utilisateurs à outrepasser les avertissements de sécurité ssl et de plus cela ne fonctionne pas avec les technologies hsts (typiquement pour google qui est très souvent la page de démarrage de nombreux navigateurs) . Le 802.1x ne permet pas de faire accepter des conditions d’utilisation ou de faire une inscription sms avec une page web par exemple… Le 802.1x ne permet pas de faire accepter des conditions d’utilisation ou de faire une inscription sms avec une page web par exemple. Dans un monde où nous trouvons de plus en plus de « free wifi », il serait temps de trouver de vraies solutions pour protéger les utilisateurs ET le fournisseur d’accès internet.

141106073506427079

 Je vais faire un petit tuto sur mon wiki lorsque j’aurai un peu de temps

Edit 10/04/2016:
Le documentation est ici

]]>
https://blog.lesfourmisduweb.org/wifi-freeradius-802-1x-squid-squidguard/feed/ 0
Wpad Chrome Firefox et isInNet(myIpAddress() https://blog.lesfourmisduweb.org/wpad-chrome-firefox/ https://blog.lesfourmisduweb.org/wpad-chrome-firefox/#respond Mon, 09 Nov 2015 11:36:56 +0000 http://blog.lesfourmisduweb.org/?p=373 Petite article car j’ai été confronté a un soucis tout bête avec le wpad Chrome, Firefox et ie.

Je souhaitais utiliser un truc du genre :

if(isInNet(myIpAddress(), « 172.29.0.0 », « 255.255.0.0 »)) { return proxy_no; }
return proxy_yes;

En gros, si tu est dans le vlan 172.29.0.0 tu n’applique pas le proxy. Mais pour tout le reste oui

Cela fonctionne parfaitement avec ie et firefox mais pas avec chrome 🙁

J’ai donc contacté google pour savoir pourquoi cela ne fonctionnait pas avec eux. Il s’agit en faite d’un bug:  https://code.google.com/p/chromium/issues/detail?id=267101

L’issue est ouverte depuis longtemps mais n’est pas réparée.

Google m’a quand même donnée une solution, utiliser isInNetEx :

if(isInNetEx(myIpAddress(), « 172.29.0.0 », « 255.255.0.0 »)) { return proxy_no; }
return proxy_yes;

Super ! Maintenant ça fonctionne ! Bon par contre plus du tout avec Firefox …

ob_06116c_220-f-43166878-pf3admr4fspxhl3mi4x7fu7tkjooikqx

La seul solution que j’ai trouvé est d’empêcher que Firefox entre dans la boucle if(isInNetEx(myIpAddress() pour ne pas le faire planter et donc déclarer tous les cas possibles.

if(isInNet(myIpAddress(), « 172.28.0.0 », « 255.255.0.0 »)) { return proxy_yes; }
if(isInNet(myIpAddress(), « 172.29.0.0 », « 255.255.0.0 »)) { return proxy_no; }
if(isInNetEx(myIpAddress(), « 172.28.0.0 », « 255.255.0.0 »)) { return proxy_yes; }
if(isInNetEx(myIpAddress(), « 172.29.0.0 », « 255.255.0.0 »)) { return proxy_no; }

En gros il faut absolument que if(isInNet(myIpAddress() soit déclaré pour tous vos VLAN comme ceci, firefox s’arrêtera toujours a la première correspondance.

]]>
https://blog.lesfourmisduweb.org/wpad-chrome-firefox/feed/ 0
Pourquoi il ne faut pas utiliser Squid en mode transparent ? https://blog.lesfourmisduweb.org/pourquoi-il-ne-faut-pas-utiliser-squid-en-mode-transparent/ https://blog.lesfourmisduweb.org/pourquoi-il-ne-faut-pas-utiliser-squid-en-mode-transparent/#comments Wed, 15 Apr 2015 17:13:59 +0000 http://blog.lesfourmisduweb.org/?p=152 c81f772e265991de09ad69a5a6dfb071

Il faut tout d’abord expliquer la différence entre un surf via un proxy déclaré et un surf sans Proxy.

Lors d’un surf sans Proxy, l’ordinateur contacte directement le serveur qui héberge la page web demandée. Il demande l’IP au DNS puis contacte directement le serveur web en passant par la passerelle.

Dans le cas d’un Proxy déclaré dans le navigateur, la démarche est différente. Lors d’un surf, l’ordinateur ne contacte pas directement le serveur web qui héberge la page que l’on souhaite. Voilà ce qui se passe dans ce cas : Le navigateur constate qu’un Proxy et renseigné lors de la demande de toto.fr le navigateur de l’ordinateur dit :
– Hey serveur Proxy 172.21.254.254:3128, peut-tu surfer pour moi et me donner la page web toto.fr ?

Le serveur Proxy répond :
– Ok, voici la page que tu m’as demandé

Il est au milieu dans le schéma :

280px-Proxy_concept_en.svg

Squid a donc une option de proxy transparent, cette option permet de se mettre à la place de la passerelle, ainsi l’ordinateur pense qu’il discute directement avec le serveur web. Ceci fonctionne très bien avec un surf HTTP, mais ne fonctionne pas du tout avec le protocole HTTPS

Pourquoi ?

Le protocole HTTPS sécurise et chiffre la connexion sur tous les sites les plus connus, il peut également vérifier que la connexion n’a pas été usurpée par un pirate. (vérification du nom de domaine, des certificats et validation par un certificat root). Bref ce protocole a été créé dans le but de protéger une connexion.

header_icon

Squid est capable d’intercepter du surf SSL en mode transparent mais cela nécessite l’installation préalable d’un ca-root. Cette méthode n’est pas du tout appréciée par les sites web, car elle consiste a décrypter la connexion HTTPS en cours. De plus, certains sites web n’utilisent pas le SSL mais le SNI.

Cette méthode est considérée comme une attaque man in the middle :

sslmim

Des solutions comme ALCASAR existent, mais je ne suis pas fan.
Elles loguent et bloquent avec les demandes DNS (Dnsmasq) combinée avec les demandes IP avec iptables, Squid et DansGuardian pour les connexions HTTP.

Les solutions de filtrage transparent proposées par SonicWALL fonctionnent également sur ce type de fonctionnement.

La solution que j’utilise :

La solution la plus propre que j’ai trouvé pour le moment est de déclarer le Proxy. Lorsque l’utilisateur n’a pas le proxy déclaré, il est redirigé vers une page qui lui indique comment configurer son navigateur ou son téléphone pour surfer sur cette connexion.

Suite dans un prochain article… Pour présenter une solution plus fiable !

]]>
https://blog.lesfourmisduweb.org/pourquoi-il-ne-faut-pas-utiliser-squid-en-mode-transparent/feed/ 2