Ceci est une ancienne révision du document !
Installation et paramétrage d'un serveur mandataire HTTP/HTTPS avec Squid sur Debian 12 (bookworm).
Sous Debian, attention de bien installer le paquet squid-openssl : c'est cette version de Squid qui supporte le bumping-ssl capable d'analyser le trafic HTTPS.
apt install -y squid-openssl
Pour supporter le bumping-SSL (ou interception TLS) Squid doit être compilé avec les options --with-openssl et --enable-ssl-crtd
La commande ci-dessous met en couleur les options de compilation lorsqu'elles sont trouvées :
squid -v | grep --color -E '(--with-openssl|--enable-ssl-crtd)'
Pour que la magie puisse opérer, Squid doit agir comme autorité de certification racine (Root CA) et les clients devront l'accepter comme autorité de certification racine de confiance.
cd /etc/squid mkdir ssl_cert chown root:proxy ssl_cert chmod ug+rx,o-rwx ssl_cert cd ssl_certs # Génère le certificat CA valable 10 ans et la clé openssl req -new -newkey rsa:4096 -sha256 -days 3650 -nodes -x509 \ -extensions v3_ca -keyout Tethys_Proxy_CA.pem -out Tethys_Proxy_CA.pem
On peut maintenant créer les différentes versions du certificat racine à déployer sur les clients :
# Format DER (bianire) pour les machines Windows openssl x509 -in Tethys_Proxy_CA.pem -outform DER -out /tmp/Tethys_Proxy_CA.der # Format PEM (texte) pour les clients Linux openssl x509 -in Tethys_Proxy_CA.pem -outform PEM -out /tmp/Tethys_Proxy_CA.crt chmod ugo+r-wx /tmp/Tethys_Proxy_CA.crt /tmp/Tethys_Proxy_CA.der
On configure le service via le fichier /etc/squid/squid.conf. Ce fichier commente largement les options actives par défaut (plus de 9000 lignes).
Pour obtenir une vue synthétique des directives actives de ce fichier :
cd /etc/squid/ grep --invert-match -e '^$' -e '^#' squid.conf
squid -k parse
Vérifier l'état du service et si nécessaire activer le service au démarrage :
systemclt status squid.service systemctl enable squid.service --now
Si le pare-feu firewalld est actif, penser à autoriser le trafic entrant sur le port 3128
# Si le port par défaut n'est pas modifié firewall-cmd --info-service=squid firewall-cmd --permanent --zone=internal --add-service=squid firewall-cmd --reload