Projet

Général

Profil

Bug #3465

horizon-squid-default-settings : gestion du proxy filtrant SSL

Ajouté par Eric il y a plus de 5 ans. Mis à jour il y a 4 mois.

Statut:
Assigned - En cours
Priorité:
Haute
Assigné à:
Version cible:
-
Début:
27/03/2014
Echéance:
% réalisé:

80%


Description

À ajouter pour éviter que https://google.fr ne soit trop utilisé pour aller regarder des images p*rn*

Ça fait quelques mois que je creuse la question en arrière plan, là c'est l'étape mise en prod de la solution, tout se concentre dans ce paquet horizon-squid-default-settings qui sera accompagné dans son déploiement de
  • squid3 version 3.3 minimum
  • squidguard version 1.4 minimum

La doc produite au long cours est disponible ici https://secure.ryxeo.com/doku.php/workinprogress/ssl-bump -> http://redmine.abuledu.org/projects/horizon-default-settings/wiki/Squid_33_pour_SSL-Bump

Historique

#1 Mis à jour par Eric il y a plus de 5 ans

  • % réalisé changé de 0 à 80

Bon,
ça passe bien pour moi, reste à valider dans une école réelle & a faire la documentation ...

En attendant que les paquets soient validés:

dpkg -i horizon-squid-default-settings_11.08.8_all.deb squid_3.3.1-1lucid1~ryxeo5_amd64.deb squid3_3.3.1-1lucid1~ryxeo5_amd64.deb squid3-common_3.3.1-1lucid1~ryxeo5_all.deb squidclient_3.3.1-1lucid1~ryxeo5_amd64.deb squid-common_3.3.1-1lucid1~ryxeo5_all.deb squidguard_1.4-2ryxeo2_amd64.deb

#2 Mis à jour par Eric il y a plus de 5 ans

Bon,
le script HST qui ajoute les certificats dans les trousseaux des utilisateurs, c'est gentil mais ça ne permet pas de gérer les futurs utilisateurs :

  • création d'un compte
  • lancement de firefox -> création du répertoire de stockage du profil et du porte clé
  • lancement des HST pour ajouter le certificat

ça n'est pas satisfaisant, il faut donc trouver le moyen d'ajouter le certificat racine sur le poste / le navigateur / l'OS ... bref, "au dessus" des comptes utilisateurs !

#3 Mis à jour par Eric il y a plus de 5 ans

Une piste,

mkdir /usr/share/ca-certificates/local/
cp /etc/squid3/keys/serveur.pem /usr/share/ca-certificates/local/serveur.crt
update-ca-certificates --fresh

à faire sur tous les postes clients ... à mon avis c'est la même chose que d'ajouter le certificat dans la racine de sécurité windows.

#4 Mis à jour par Eric il y a plus de 5 ans

Après avoir cherché des solutions hyper compliquées ...

Voilà ou j'en suis:

<VirtualHost *:443>
ServerAdmin webmaster@chezmoi
DocumentRoot /home/webs/chezmoi/htdocs
ServerName fake
ErrorLog /tmp/error.log
CustomLog /tmp/access.log combined
SSLEngine on
SSLCertificateFile /tmp/fake.crt
SSLCertificateKeyFile /tmp/fake.key
</VirtualHost>

Mon problème c'est que fake.crt n'est pas modifié et donc si mon
utilisateur essaye d'aller sur https://banque1.fr/ ou sur
https://banque2.fr/ il ne faut pas que mon apache se présente en tant
que fake ... mais en tant que banque1.fr ou banque2.fr

pour celà il faudrait que j'ai

<VirtualHost *:443>
ServerAdmin webmaster@chezmoi
DocumentRoot /home/webs/chezmoi/htdocs
ServerName banque1.fr
ErrorLog /tmp/error.log
CustomLog /tmp/access.log combined
SSLEngine on
SSLCertificateFile /tmp/fake-banque1.crt
SSLCertificateKeyFile /tmp/fake-banque1.key
</VirtualHost>

et

<VirtualHost *:443>
ServerAdmin webmaster@chezmoi
DocumentRoot /home/webs/chezmoi/htdocs
ServerName banque2.fr
ErrorLog /tmp/error.log
CustomLog /tmp/access.log combined
SSLEngine on
SSLCertificateFile /tmp/fake-banque2.crt
SSLCertificateKeyFile /tmp/fake-banque2.key
</VirtualHost>

mais je te laisse imaginer si je veux pouvoir capter "la terre entière"
ça n'est pas possible, donc en fait je cherche un micro serveur web qui
pourrait écouter sur le port 443, capter dans les 1eres échanges (SNI
mon amour bonjour) le hostname demandé et zoup il charge le
faux-certificat qui correspond à ce que je client lui demande et ensuite
il lui pousse la page web adaptée

Finalement la solution est vraiment simple, il suffit d'avoir des redirect 302 dans squidGuard.conf:

dest porn {
  domainlist porn/domains
  urllist    porn/urls
  redirect   302:http://servecole.abuledu/proxy/stop.php?clientaddr=%a&clientnam
e=%n&clientuser=%i&clientgroup=%s&url=%u
  log squidGuard.log
}

#5 Mis à jour par Eric il y a presque 5 ans

Bon, c'était une fausse joie, on ne peut pas faire un redirect d'un https vers un http, c'est une faille du protocole et tous les navigateurs qui se respectent interdisent ça.

Il faut donc reprendre la R&D vers un serveur web qui ferait du fake ssl via SNI.

À mon avis on trouvera ça dans la malette du parfait pirate qui fait du ManInTheMiddle ... donc à chercher du côté sombre du web international.

#6 Mis à jour par Eric il y a 4 mois

  • Description mis à jour (diff)

Formats disponibles : Atom PDF

Redmine Appliance - Powered by TurnKey Linux