Après trois ans de développement, la nouvelle version stable du serveur proxy Squid, la 5.1, a été publiée et est prête à être utilisée dans les systèmes de production (les versions 5.0.x étaient des versions bêta).
Une fois la branche 5.x stabilisée, seules les corrections de vulnérabilités et de problèmes de stabilité seront désormais implémentées , ainsi que des optimisations mineures. Le développement de nouvelles fonctionnalités se fera dans la nouvelle branche expérimentale 6.0. Les utilisateurs de la branche stable précédente 4.x sont invités à migrer vers la branche 5.x.
Squid 5.1 Principales nouvelles fonctionnalités
Dans cette nouvelle version, la compatibilité avec le format Berkeley DB est abandonnée en raison de problèmes de licence . La branche Berkeley DB 5.x n'est plus maintenue depuis plusieurs années et présente toujours des vulnérabilités non corrigées. La mise à niveau vers des versions plus récentes n'autorise pas la modification de la licence AGPLv3, dont les exigences s'appliquent également aux applications utilisant Berkeley DB comme bibliothèque. Squid est distribué sous licence GPLv2, et l'AGPL est incompatible avec la GPLv2.
Au lieu de Berkeley DB, le projet utilise désormais TrivialDB, un SGBD qui, contrairement à Berkeley DB, est optimisé pour l'accès parallèle simultané à la base de données. La prise en charge de Berkeley DB est maintenue pour le moment, mais il est désormais recommandé d'utiliser le type de stockage « libtdb » au lieu de « libdb » dans les gestionnaires « ext_session_acl » et « ext_time_quota_acl ».
De plus, la prise en charge a été ajoutée pour l'en-tête HTTP CDN-Loop, défini dans la RFC 8586, qui permet de détecter les boucles lors de l'utilisation de réseaux de diffusion de contenu (l'en-tête fournit une protection contre les situations dans lesquelles une requête, lors de la redirection entre CDN pour une raison quelconque, renvoie au CDN d'origine, formant une boucle infinie).
De plus, le mécanisme SSL-Bump, qui permet d'intercepter le contenu des sessions HTTPS chiffrées, prend désormais en charge la redirection des requêtes HTTPS falsifiées via d'autres serveurs proxy spécifiés dans cache_peer à l'aide d'un tunnel classique basé sur la méthode HTTP CONNECT (la transmission via HTTPS n'est pas prise en charge, car Squid ne peut pas encore transmettre de TLS à l'intérieur de TLS).
Dès réception de la première requête HTTPS interceptée, SSL-Bump établit une connexion TLS avec le serveur cible et obtient son certificat. Squid utilise ensuite le nom d'hôte du certificat authentique reçu du serveur pour créer un faux certificat. Ce dernier lui permet d'usurper l'identité du serveur demandé lors des interactions avec le client , tout en continuant d'utiliser la connexion TLS établie avec le serveur cible pour recevoir les données.
Il convient également de noter que la mise en œuvre du protocole ICAP (Internet Content Adaptation Protocol), utilisé pour l'intégration avec des systèmes de vérification de contenu externes, a ajouté la prise en charge du mécanisme de pièce jointe de données qui permet d'ajouter des en-têtes de métadonnées supplémentaires à la réponse, placés après le corps du message.
Au lieu de prendre en compte le "dns_v4_first»Pour déterminer l'ordre d'utilisation de la famille d'adresses IPv4 ou IPv6, maintenant l'ordre de la réponse dans DNS est pris en compte- Si la réponse AAAA du DNS apparaît en premier en attendant la résolution d'une adresse IP, l'adresse IPv6 résultante sera utilisée. Par conséquent, le réglage de la famille d'adresses préférée est maintenant effectué dans le pare-feu, DNS ou au démarrage avec l'option "–disable-ipv6".
Le changement proposé accélérera le temps de configuration des connexions TCP et réduira l'impact sur les performances des retards de résolution DNS.
Lors de la redirection des requêtes, l'algorithme « Happy Eyeballs » est utilisé, qui utilise immédiatement l'adresse IP reçue, sans attendre que toutes les adresses IPv4 et IPv6 de destination potentiellement disponibles soient résolues.
Pour une utilisation dans la directive "external_acl", le pilote "ext_kerberos_sid_group_acl" a été ajouté pour l'authentification avec des groupes de vérification dans Active Directory à l'aide de Kerberos. L'utilitaire ldapsearch fourni par le package OpenLDAP est utilisé pour interroger le nom du groupe.
Ajout des directives mark_client_connection et mark_client_pack pour lier les balises Netfilter (CONNMARK) à des paquets individuels ou des connexions TCP client
Enfin, il est mentionné que, suivant les étapes des versions publiées de Squid 5.2 et Squid 4.17, les vulnérabilités suivantes ont été corrigées :
- CVE-2021-28116 - Fuite d'informations lors du traitement de messages WCCPv2 spécialement conçus. La vulnérabilité permet à un attaquant de corrompre la liste des routeurs WCCP connus et de rediriger le trafic du client proxy vers son hôte. Le problème ne se manifeste que dans les configurations avec la prise en charge WCCPv2 activée et lorsqu'il est possible d'usurper l'adresse IP du routeur.
- CVE-2021-41611 : erreur de validation des certificats TLS qui autorisent l'accès à l'aide de certificats non approuvés.
Enfin, si vous souhaitez en savoir plus, vous pouvez consulter les détails en suivant ce lien.