Nach dreijähriger Entwicklungszeit wurde die neue stabile Version des Squid-Proxy-Servers, Version 5.1, veröffentlicht und ist nun für den Einsatz in Produktionssystemen bereit (die Versionen 5.0.x waren Betaversionen).
Sobald der 5.x-Zweig stabil ist, werden ab sofort nur noch Sicherheitslücken und Stabilitätsprobleme behoben sowie kleinere Optimierungen vorgenommen. Die Entwicklung neuer Funktionen erfolgt im neuen experimentellen 6.0-Zweig. Nutzern des bisherigen stabilen 4.x-Zweigs wird empfohlen, auf den 5.x-Zweig zu migrieren.
Squid 5.1 Die wichtigsten neuen Funktionen
In dieser neuen Version wurde die Kompatibilität mit dem Berkeley-DB-Format aufgrund von Lizenzproblemen eingestellt . Der Berkeley-DB-5.x-Zweig wird seit mehreren Jahren nicht mehr gepflegt und weist weiterhin ungepatchte Sicherheitslücken auf. Ein Upgrade auf neuere Versionen erlaubt keine Änderung der AGPLv3-Lizenz, deren Bestimmungen auch für Anwendungen gelten, die Berkeley DB als Bibliothek verwenden. Squid wird unter der GPLv2-Lizenz veröffentlicht, und die AGPL ist mit der GPLv2 inkompatibel.
Anstelle von Berkeley DB migrierte das Projekt zu TrivialDB, das im Gegensatz zu Berkeley DB für den simultanen parallelen Datenbankzugriff optimiert ist. Die Unterstützung für Berkeley DB wird vorerst beibehalten, es wird jedoch empfohlen, in den Handlern „ext_session_acl“ und „ext_time_quota_acl“ den Speichertyp „libtdb“ anstelle von „libdb“ zu verwenden.
Darüber hinaus wurde Unterstützung für den in RFC 8586 definierten HTTP-CDN-Loop-Header hinzugefügt, mit dem Schleifen bei der Verwendung von Content Delivery Networks erkannt werden können (der Header bietet Schutz vor Situationen, in denen eine Anfrage während der Umleitung zwischen CDNs aus irgendeinem Grund zurückkehrt zum ursprünglichen CDN, wodurch eine Endlosschleife entsteht).
Darüber hinaus wurde der SSL-Bump-Mechanismus, der das Abfangen des Inhalts verschlüsselter HTTPS-Sitzungen ermöglicht, um die Unterstützung für die Umleitung gefälschter HTTPS-Anfragen über andere in cache_peer angegebene Proxy-Server mittels eines regulären Tunnels auf Basis der HTTP CONNECT-Methode erweitert (die Übertragung über HTTPS wird nicht unterstützt, da Squid noch kein TLS innerhalb von TLS übertragen kann).
SSL-Bump baut nach dem Empfang der ersten abgefangenen HTTPS-Anfrage eine TLS-Verbindung zum Zielserver auf und ruft dessen Zertifikat ab. Squid verwendet anschließend den Hostnamen des erhaltenen Zertifikats, um ein gefälschtes Zertifikat zu erstellen. Dieses dient dazu, den angeforderten Server bei der Kommunikation mit dem Client zu imitieren , während die bestehende TLS-Verbindung zum Zielserver weiterhin zum Empfang von Daten genutzt wird.
Erwähnenswert ist auch, dass die Implementierung des ICAP (Internet Content Adaptation Protocol), das zur Integration mit externen Inhaltsverifizierungssystemen verwendet wird, die Unterstützung für den Datenanhangsmechanismus hinzugefügt hat , der es ermöglicht, zusätzliche Metadaten-Header an die Antwort anzuhängen, die nach dem Nachrichtentext platziert werden.
Anstatt die "dns_v4_first»Um die Verwendungsreihenfolge der IPv4- oder IPv6-Adressfamilie zu bestimmen, jetzt wird die Reihenfolge der Antwort im DNS berücksichtigt- Wenn die AAAA-Antwort von DNS zuerst erscheint, während auf die Auflösung einer IP-Adresse gewartet wird, wird die resultierende IPv6-Adresse verwendet. Daher erfolgt die Einstellung der bevorzugten Adressfamilie jetzt in der Firewall, im DNS oder beim Start mit der Option „–disable-ipv6“.
Die vorgeschlagene Änderung wird die Zeit zum Konfigurieren von TCP-Verbindungen verkürzen und die Auswirkungen von Verzögerungen bei der DNS-Auflösung auf die Leistung reduzieren.
Bei der Weiterleitung von Anfragen wird der "Happy Eyeballs"-Algorithmus verwendet, der sofort die empfangene IP-Adresse nutzt, ohne darauf zu warten, dass alle potenziell verfügbaren Ziel-IPv4- und IPv6-Adressen aufgelöst werden.
Zur Verwendung in der Direktive "external_acl" wurde der Treiber "ext_kerberos_sid_group_acl" zur Authentifizierung mit Verifizierungsgruppen in Active Directory mit Kerberos hinzugefügt. Das vom OpenLDAP-Paket bereitgestellte Dienstprogramm ldapsearch wird verwendet, um den Gruppennamen abzufragen.
Die Direktiven mark_client_connection und mark_client_pack wurden hinzugefügt, um Netfilter-Tags (CONNMARK) an einzelne Pakete oder Client-TCP-Verbindungen zu binden
Abschließend sei erwähnt, dass im Zuge der in den Versionen Squid 5.2 und Squid 4.17 veröffentlichten Schritte die folgenden Sicherheitslücken behoben wurden:
- CVE-2021-28116 - Informationsleck bei der Verarbeitung speziell gestalteter WCCPv2-Nachrichten. Die Sicherheitsanfälligkeit ermöglicht es einem Angreifer, die Liste bekannter WCCP-Router zu beschädigen und den Datenverkehr vom Proxy-Client an seinen Host umzuleiten. Das Problem tritt nur in Konfigurationen mit aktivierter WCCPv2-Unterstützung auf und wenn es möglich ist, die IP-Adresse des Routers zu fälschen.
- CVE-2021-41611: Fehler beim Validieren von TLS-Zertifikaten, die den Zugriff mit nicht vertrauenswürdigen Zertifikaten zulassen.
Wenn Sie schließlich mehr darüber erfahren möchten, können Sie die Details unter folgendem Link einsehen.