Projet

Général

Profil

Squid 33 pour SSL-Bump

Squid 3.3

Choix de configuration de squid 3.3:

cache_log /var/log/squid/cache.log
access_log daemon:/var/log/squid/access.log squid

cache_mem 128 MB
maximum_object_size 25 MB
cache_dir ufs /var/spool/squid3 128 16 256
strip_query_terms off
visible_hostname servecole.abuledu
http_port 3128 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cafile=/etc/squid3/keys/CA.pem cert=/etc/squid3/keys/serveur.pem key=/e\
tc/squid3/keys/serveur.key

always_direct allow all
ssl_bump server-first all
sslproxy_cert_error allow all
sslproxy_cert_adapt setCommonName ssl::certDomainMismatch

sslproxy_flags DONT_VERIFY_PEER
sslcrtd_program /usr/lib/squid3/ssl_crtd -s /var/lib/ssl_db -M 4MB
sslcrtd_children 5
redirect_program /usr/bin/squidGuard -c /etc/squid3/squidGuard.conf
Un peu trop de magie noire à blanchir un de ces 4:
  • sslproxy_cert_error allow all :
  • sslproxy_cert_adapt setCommonName ssl::certDomainMismatch

Windows Updates

Comme indiqué sur la doc suivante: http://wiki.squid-cache.org/SquidFaq/WindowsUpdate ie peut avoir une config proxy correcte mais pas forcément windows updates ... aussi on passe par la commande proxycfg

C:\> proxycfg
# gives information about the current connection type. Note: 'Direct Connection' does not force WU to bypass proxy

C:\> proxycfg -d
# Set Direct Connection

C:\> proxycfg -p wu-proxy.lan:8080
# Set Proxy to use with Windows Update to wu-proxy.lan, port 8080

c:\> proxycfg -u
# Set proxy to Internet Explorer settings.

Sites pas compatible autodetection SSL

La clause "sslproxy_version 1" passe squid en mode autodetect du type de certificat du serveur distant, le hic c'est que ça ne marche pas toujours, par exemple https://www.cerise-prim.fr déconne, il faudrait donc forcer le passage en sslv3 ... mais pour ne pas se casser la tête j'ai plutôt mis en place cette solution:

acl broken_sites dstdomain "/var/lib/squidguard/db/perso/ssl_broken_sites" 
acl broken_sites dstdomain "/var/lib/squidguard/db/perso/ssl_broken_sites.local" 
ssl_bump none localhost
ssl_bump none broken_sites

Il suffit donc de tenir à jour la liste des sites pas compatibles et de l'ajouter dans le fichier ssl_broken_sites (ryxéo upstream pour les sites connus du genre banque ou laposte) et le .local pour les spécificités locales ...

Exemple de contenu de fichier ssl_broken_sites.local

Ce fichier est disponible ici : /var/lib/squidguard/db/perso/

.cerise-prim.fr
intra.ac-bordeaux.fr

Pensez à relancer squid une fois le fichier modifié : service squid3 restart

Valider les modifications

Voilà ce que je fais avant / après pour vérifier/valider les modifications:

export https_proxy=http://servecole:3128/
lynx https://www.free.fr (ou adresse du site qui est sensé ne pas marcher)

Nouveau problème : Public Key Pinning

https://wiki.mozilla.org/SecurityEngineering/Public_Key_Pinning

Redmine Appliance - Powered by TurnKey Linux