Po troch rokoch vývoja bol predstavený stabilný release proxy servera Squid 5.1, pripravený na použitie v pracovných systémoch (verzie 5.0.x mali status beta verzií). Po priznaní vetve 5.x statusu stabilnej, sa v nej odteraz budú vykonávať len opravy zraniteľností a problémov so stabilitou, tiež sú povolené malé optimalizácie. Vývoj nových funkcií bude prebiehať v novej experimentálnej vetve 6.0. Používateľom predchádzajúcej stabilnej vetvy 4.x sa odporúča naplánovať prechod na vetvu 5.x.
Hlavné novinky Squid 5:
- Do implementácie protokolu ICAP (Internet Content Adaptation Protocol), používaného na integráciu s externými systémami pre overenie obsahu, bola pridaná podpora mechanizmu pripájania dát (trailer), ktorý umožňuje pripojiť k odpovedi ďalšie hlavičky s metadátami umiestnené po tele správy (napríklad je možné preniesť kontrolný súčet a detaily o zistených problémoch).
- Pri presmerovaní požiadaviek je použitý algoritmus „Happy Eyeballs“, ktorý okamžite využíva získanú IP adresu, nečakajúc na rozlíšenie všetkých potenciálne dostupných cieľových adries IPv4 a IPv6. Namiesto zohľadnenia nastavenia „dns_v4_first“ pre určenie poradia používania rodiny adries IPv4 alebo IPv6 sa teraz berie do úvahy poradie odpovede v DNS: ak pri čakaní na rozlíšenie IP adresy prvým príde odpoveď DNS AAAA, bude použitá získaná adresa IPv6. Týmto spôsobom sa nastavenie preferovanej rodiny adries teraz vykonáva na úrovni firewalu, DNS alebo pri spustení s voľbou „—disable-ipv6“. Navrhnutá zmena umožňuje urýchliť čas na vytvorenie TCP spojení a znížiť vplyv na výkon oneskorení pri rozlíšení v DNS.
- Pre použitie v direktíve „external_acl“ bol pridaný spracovateľ „ext_kerberos_sid_group_acl“ na autentifikáciu s overovaním skupín v Active Directory pomocou Kerberosu. Na požiadanie názvu skupiny sa používa nástroj ldapsearch poskytovaný balíkom OpenLDAP.
- Podpora formátu databáze Berkeley DB byla vyhlášena za zastaralou kvůli licenčním problémům. Větev Berkeley DB 5.x již několik let není udržována a zůstává s neopravenými zranitelnostmi, a přejít na novější verze neumožňuje změna licence na AGPLv3, jejíž požadavky se vztahují i na aplikace, které používají BerkeleyDB ve formě knihovny – Squid je poskytován pod licencí GPLv2, a AGPL není kompatibilní s GPLv2. Místo Berkeley DB byl projekt převeden na používání SGBD TrivialDB, která, na rozdíl od Berkeley DB, je optimalizována pro současný paralelní přístup k databázi. Podpora Berkeley DB zatím zůstává zachována, ale v zpracovatelích „ext_session_acl“ a „ext_time_quota_acl“ se nyní doporučuje používání typu úložiště „libtdb“ místo „libdb“.
- Byla přidána podpora HTTP hlavičky CDN-Loop, definované v RFC 8586, která umožňuje identifikovat cykly při používání sítí pro doručování obsahu (hlavička chrání před situacemi, kdy se požadavek během přesměrování mezi CDN z nějakého důvodu vrací zpět k původní CDN, což vytváří nekonečné cyklení).
- Do mechanismu SSL-Bump, který umožňuje interceptaci obsahu šifrovaných HTTPS relací, byla přidána podpora přesměrování pozměněných (přešifrovaných) HTTPS požadavků přes jiné proxy servery uvedené v cache_peer, pomocí běžného tunelu založeného na metodě HTTP CONNECT (přenos přes HTTPS není podporován, protože Squid zatím nemůže přenášet TLS uvnitř TLS). SSL-Bump umožňuje při příjmu prvního zachyceného HTTPS požadavku nastavit TLS spojení s cílovým serverem a získat jeho certifikát. Poté Squid používá název hostitele z reálného certifikátu získaného od serveru a vytváří fiktivní certifikát, pomocí kterého imituje požadovaný server při interakci s klientem, přičemž dále využívá pro získání dat TLS spojení, které bylo navázáno s cílovým serverem (aby výměna nevedla k varováním v prohlížečích na straně klienta, je třeba přidat do úložiště kořenových certifikátů svůj certifikát, který byl použit pro generaci fiktivních certifikátů).
- Byly přidány direktivy mark_client_connection a mark_client_pack pro připojení štítků Netfilter (CONNMARK) k klientským TCP připojením nebo jednotlivým paketům.
Na pokračovanie sú zverejnené verzie Squid 5.2 a Squid 4.17, v ktorých boli odstránené zraniteľnosti:
- CVE-2021-28116 — únik informácií pri spracovaní špeciálne formátovaných správ WCCPv2. Zraniteľnosť umožňuje útočníkovi poškodiť zoznam známych smerovačov WCCP a presmerovať prenos klientov proxy servera na svoj hostiteľ. Problém sa prejavuje iba v konfiguráciách s povolenou podporou WCCPv2 a pri možnosti podvrhnúť IP adresu smerovača.
- CVE-2021-41611 — chyba pri overovaní TLS-certifikátov, umožňujúca prístup za použitia nedôveryhodných certifikátov.
Zdroj: opennet.ru
