Forum Linux.général SQUID/SQUIDGUARD HTTP Strict Transport Security (HSTS)

Posté par  . Licence CC By‑SA.
Étiquettes :
0
13
fév.
2018

Bonjour à tous,

Je rédiges ce post parce qu'après de multiples recherches sur le sujet je n'ai pas trouvé de réponse.
On m'a donné pour projet de mettre en place du filtrage web au sein de l'entreprise, et pour cela je me suis tourné sur la solution squid(V3.4)ainsi que squidguard.
Mon proxy squid est en mode explicite et non transparent et je n'ai simplement qu'une seule interface. Mon proxy fonctionne normalement ainsi que le filtrage mais dès que j'essaye d'accéder à un page web filtrer en https j'ai l'erreur suivante qui apparaît :
"
La connexion n’est pas sécurisée

Les propriétaires de fr-fr.facebook.com ont mal configuré leur site web. Pour éviter que vos données ne soient dérobées, Firefox ne s’est pas connecté à ce site web.

Ce site a recours à HTTP Strict Transport Security (HSTS) pour indiquer à Firefox de n’établir qu’une connexion sécurisée. Ainsi il n’est pas possible d’ajouter d’exception pour ce certificat. "

J'ai bien créé un certificat auto-signé donc je ne comprends pas cette erreur.
Peut être un oublie sur mon fichier de config squid…
Voici mon squid.conf :

visible_hostname proxy

acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl lan src 192.168.1.0/24

acl CONNECT method CONNECT

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow lan
http_access deny all

http_port 3128 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid3/ssl_cert/squid.crt key=/etc/squid3/ssl_cert/squid.key

always_direct allow all
ssl_bump client-first all

url_rewrite_program /usr/bin/squidGuard -c /etc/squidguard/squidGuard.conf
url_rewrite_children 20

cache_access_log /var/log/squid3/access.log
cache_log /var/log/squid3/cache.log
cache_store_log /var/log/squid3/store.log

cache_effective_user proxy
cache_effective_group proxy

cache_peer proxy parent 3128 3130 proxy-only default allow-miss
cache_dir ufs /var/spool/squid3 580 15 255

Si vous avez eu le même problème et que vous l'avez résolu je suis preneur de la solution.
Merci d'avance !

  • # regardes ton certificat

    Posté par  . Évalué à 2.

    le cas normal

    firefox <=> facebook HSTS

    ton cas à toi doit ressembler à celui là
    firefox <=> https sur ton proxy <=> facebook hsts

    du coup ton client recoit le certificat du proxy alors que le site demandé est facebook.com
    il rale alors pour te dire que le certificat n'est pas le bon

    • [^] # Re: regardes ton certificat

      Posté par  (site web personnel, Mastodon) . Évalué à 2.

      Il me semble que si un site donne l'indication hsts, alors le navigateur doit vérifier la chaine de certificat complète avec son magasin de certificats racines.

      Du coup, quand un site avec hsts actif se retrouve avec un certificat auto signé (ou sur le mauvais domaine), alors l'utilisateur doit voir son accès refusé et il ne peut pas faire d'exception manuelle.

      Je ne suis pas sûr que ce comportement est obligatoire, mais c'est bien ce que j'ai vu avec Firefox.

    • [^] # Re: regardes ton certificat

      Posté par  . Évalué à 1.

      Pour créer le certificat j'ai utilisé les commandes suivante :

      openssl req -nodes -newkey rsa:2048 -keyout /etc/squid3/ssl_cert/squid.key -out /etc/squid3/ssl_cert/squid.csr

      openssl x509 -req -in /etc/squid3/ssl_cert/squid.csr -signkey /etc/squid3/ssl_cert/squid.key -out /etc/squid3/ssl_cert/squid.crt -days 999

      J'ai suivi de nombreux tuto et ce sont ces commandes la qui sont utilisées. D'après toi c'est pas la bonne marche à suivre ?

      • [^] # Re: regardes ton certificat

        Posté par  . Évalué à 2.

        tu as créé un certificat SSL pour TON serveur proxy/serveur web
        pas pour signé le dialogue avec facebook.com qui arrive avec SON certificat SSL.

        de plus comme il est autosigné, ton navigateur ne reconnait pas l'autorité, et donc pas le certificat, d'ou le message.

  • # En même temps

    Posté par  . Évalué à 1.

    Le principe est justement d'éviter aussi les attaques MITM….
    Finalement firefox fait bien son taff.

    A mon humble avis tu dois en premier, installer ton certificat sur le navigateur client.

    • [^] # Re: En même temps

      Posté par  . Évalué à 1.

      Oui tout à fait tu as raison.

      J'ai pas compris, installer le certificat d'abord sur le client ? Parce que sur le serveur proxy je ne fais que le créer et ensuite je l'installe sur le client, je ne comprends pas ce que tu veux dire.

      • [^] # Re: En même temps

        Posté par  . Évalué à 2.

        Il faut que Firefox accepte le certificat que tu lui proposes pour Facebook. Cela suppose de l'ajouter à Firefox.

        ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

        • [^] # Re: En même temps

          Posté par  . Évalué à 1.

          C'est que je fais mais ça ne marche pas. Après j'ai essayé sur d'autres navigateur comme Chrome et avec lui aucune page https ne passent. J'ai bien compris que mon certificat n'était pas bon mais je ne vois pas comment le rendre valide… Je fais des recherches pour résoudre ce problème mais je trouve toujours les mêmes commandes à exécuter pour créer le certificat…

  • # résolu ?

    Posté par  . Évalué à 1.

    Salut,

    Je sais pas si tu as de nouveau mais au cas ou ….
    J'ai vu ça blog-microlinux et ça semble être ton besoin.

    @+

Suivre le flux des commentaires

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