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
- utilisation du daemon pour le access_log -> c'était un facteur de dégradation des performances de squid 2 http://www.squid-cache.org/Doc/config/logfile_daemon/
- strip_query_terms pour ne pas logguer les paramètres des url http://www.squid-cache.org/Doc/config/strip_query_terms/
- http_port avec le ssl-bump, c'est la partie magique du filtrage ssl http://www.squid-cache.org/Doc/config/ssl_bump/
- always_direct permet de ne pas passer par les proxy parents ... http://www.squid-cache.org/Doc/config/always_direct/
- ssl_bump server-first all : c'est le serveur qui initie la connexion SSL avec le site distant, permet de faire du filtrage de contenu
- sslproxy_flags DONT_VERIFY_PEER : http://www.squid-cache.org/Doc/config/sslproxy_flags/
- sslcrtd_program : process qui gère la génération des certificats ssl à la demande et le lieu de stockage
- 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