Na drie jaar ontwikkeling is de stabiele release van de proxyserver Squid 5.1 gepresenteerd, klaar voor gebruik in productiesystemen (de versies 5.0.x hadden de status van bètaversies). Nu de 5.x-tak de status van stabiel heeft gekregen, zullen er alleen nog maar kwetsbaarheden en stabiliteitsproblemen worden gecorrigeerd. Ook zijn kleine optimalisaties toegestaan. De ontwikkeling van nieuwe mogelijkheden zal plaatsvinden in een nieuwe experimentele tak 6.0. Gebruikers van de vorige stabiele 4.x-tak wordt aangeraden de overstap naar de 5.x-tak te plannen.
Belangrijkste vernieuwingen Squid 5:
- In de implementatie van het ICAP-protocol (Internet Content Adaptation Protocol), dat gebruikt wordt voor integratie met externe inhoudscontrole systemen, is ondersteuning toegevoegd voor het mechanisme voor het toevoegen van gegevens (trailer), waarmee extra headers met metadata aan het antwoord kunnen worden gehecht, die na de body van het bericht worden geplaatst (bijvoorbeeld kan de checksum en informatie over de aangetroffen problemen worden doorgegeven).
- Bij het omleiden van aanvragen wordt het algoritme 'Happy Eyeballs' gebruikt, dat meteen het verkregen IP-adres gebruikt, zonder te wachten op het oplossen van alle potentiële beschikbare doeladressen IPv4 en IPv6. In plaats van de instelling 'dns_v4_first' te gebruiken om de volgorde van het gebruik van de adresfamilies IPv4 of IPv6 te bepalen, wordt nu de volgorde van het DNS-antwoord in aanmerking genomen: als het eerste een DNS AAAA-antwoord is, wordt het verkregen IPv6-adres gebruikt. Op deze manier wordt de voorkeur voor de adresfamilie nu ingesteld op het niveau van de firewall, DNS of het opstarten met de optie '--disable-ipv6'. De voorgestelde wijziging versnelt de opstellingstijd van TCP-verbindingen en vermindert de impact van vertragingen bij DNS-oplossingen op de prestaties. IP-adressen Voor gebruik in de richtlijn 'external_acl' is de handler 'ext_kerberos_sid_group_acl' toegevoegd voor authenticatie met groepscontrole in Active Directory via Kerberos. Voor het opvragen van de groepsnaam wordt de utility ldapsearch gebruikt, die wordt geleverd met het OpenLDAP-pakket.
- Voor gebruik in de directe ‘external_acl’ is de ‘ext_kerberos_sid_group_acl’-handler toegevoegd voor authenticatie met groepscontrole in Active Directory via Kerberos. Voor het opvragen van de groepsnaam wordt de ldapsearch-tool gebruikt, geleverd met het OpenLDAP-pakket.
- De ondersteuning voor het Berkeley DB-databaseformaat is om zogenoemde licentieproblemen verouderd verklaard. De Berkeley DB 5.x-tak wordt al enkele jaren niet meer onderhouden en vertoont onopgeloste kwetsbaarheden, terwijl een overstap naar nieuwere versies wordt belemmerd door de wijziging van de licentie naar AGPLv3, waarvan de voorwaarden ook van toepassing zijn op applicaties die BerkeleyDB in de vorm van een bibliotheek gebruiken — Squid wordt geleverd onder de GPLv2-licentie, en AGPL is niet compatibel met GPLv2. In plaats van Berkeley DB is het project overgestapt op het gebruik van de TrivialDB-database, die in tegenstelling tot Berkeley DB is geoptimaliseerd voor gelijktijdige parallelle toegang tot de database. De ondersteuning voor Berkeley DB blijft voorlopig bestaan, maar in de handlers 'ext_session_acl' en 'ext_time_quota_acl' wordt nu aanbevolen om het opslagtype 'libtdb' in plaats van 'libdb' te gebruiken.
- Ondersteuning voor de HTTP-header CDN-Loop is toegevoegd, zoals gedefinieerd in RFC 8586, en deze maakt het mogelijk om eindeloze lussen bij het gebruik van content delivery networks te detecteren (de header biedt bescherming tegen situaties waarin een verzoek tijdens het omleiden tussen CDN om een of andere reden terugkeert naar de oorspronkelijke CDN, wat een oneindige loop creëert).
- In het SSL-Bump-mechanisme, dat het mogelijk maakt om de inhoud van versleutelde HTTPS-sessies te onderscheppen, is ondersteuning toegevoegd voor het omleiden van vervalste (herversleutelde) HTTPS-verzoeken via andere proxyservers, zoals aangegeven in cache_peer, met behulp van een gewone tunnel op basis van de HTTP CONNECT-methode (verzending via HTTPS wordt niet ondersteund, aangezien Squid momenteel geen TLS binnen TLS kan verzenden). SSL-Bump maakt het mogelijk om bij het ontvangen van het eerste onderschepte HTTPS-verzoek een TLS-verbinding met de doelserver tot stand te brengen en het certificaat daarvan te verkrijgen. Vervolgens gebruikt Squid de hostnaam uit het daadwerkelijk ontvangen certificaat van de server en creëert een vals certificaat, waarmee de gevraagde server wordt nagebootst bij de interactie met de client, terwijl het tegelijkertijd de voor het verkrijgen van gegevens opgegroeide TLS-verbinding met de doelserver behoudt (om te voorkomen dat de vervalsing waarschuwingen in de browsers aan de cliëntzijde genereert, moet je het certificaat dat is gebruikt voor het genereren van de valse certificaten aan de rootcertificaatopslag toevoegen).
- De richtlijnen mark_client_connection en mark_client_pack zijn toegevoegd om Netfilter-labels (CONNMARK) aan client-TCP-verbindingen of afzonderlijke pakketten te koppelen.
In de directe nasleep zijn Squid 5.2 en Squid 4.17 uitgebracht, waarin kwetsbaarheden zijn verholpen:
- CVE-2021-28116 — informatielekkage bij het verwerken van speciaal opgemaakte WCCPv2-berichten. Deze kwetsbaarheid stelt een aanvaller in staat om de lijst met bekende WCCP-routers te beschadigen en het verkeer van klanten van de proxyserver naar zijn eigen host te omleiden. Het probleem doet zich alleen voor in configuraties met ingeschakelde WCCPv2-ondersteuning en bij de mogelijkheid tot IP-adres-spoofing van de router.
- CVE-2021-41611 — een fout bij de verificatie TLS-certificaten, waarmee toegang kan worden verkregen met behulp van niet-vertrouwde certificaten.
Bron: opennet.ru
