Stabilne wydanie serwera proxy Squid 5

Po trzech latach rozwoju zaprezentowano stabilną wersję serwera proxy Squid 5.1, gotową do użycia w systemach produkcyjnych (wydania 5.0.x miały status wersji beta). Po nadaniu gałęzi 5.x statusu stabilnej, będą w niej realizowane tylko poprawki luk i problemów ze stabilnością, a także dopuszczalne będą niewielkie optymalizacje. Rozwój nowych funkcji będzie prowadzone w nowej, eksperymentalnej gałęzi 6.0. Użytkownikom poprzedniej stabilnej gałęzi 4.x zaleca się zaplanowanie przejścia na gałąź 5.x.

Główne nowości Squid 5:

  • W realizacji protokołu ICAP (Internet Content Adaptation Protocol), używanego do integracji z zewnętrznymi systemami weryfikacji treści, dodano wsparcie dla mechanizmu dołączania danych (trailer), który pozwala na dołączenie do odpowiedzi dodatkowych nagłówków z metadanymi, umieszczanych po ciele wiadomości (na przykład, można przesłać sumę kontrolną oraz szczegóły dotyczące wykrytych problemów).
  • Podczas przekierowywania zapytań wykorzystano algorytm „Happy Eyeballs”, który natychmiast używa uzyskanego adresu IP, nie czekając na rozwiązanie wszystkich potencjalnie dostępnych adresów docelowych IPv4 i IPv6. Zamiast uwzględniać ustawienie „dns_v4_first” do określenia kolejności użycia rodziny adresów IPv4 lub IPv6, obecnie brane jest pod uwagę kolejność odpowiedzi w DNS: jeśli odpowiedź DNS AAAA przychodzi jako pierwsza, zostanie użyty uzyskany adres IPv6. W ten sposób ustawienie preferowanej rodziny adresów jest teraz realizowane na poziomie zapory, DNS lub uruchamiania z opcją „—disable-ipv6”. Proponowana zmiana pozwala na przyspieszenie czasu ustanawiania połączeń TCP i zmniejszenie wpływu opóźnień przy rozwiązywaniu adresów w DNS. adresy IP Aby wykorzystać w dyrektywie „external_acl”, dodano obsługę „ext_kerberos_sid_group_acl” do uwierzytelniania z kontrolą grup w Active Directory z wykorzystaniem Kerberos. Do zapytania o nazwę grupy używana jest utilita ldapsearch, dostarczana przez pakiet OpenLDAP.
  • W celu użycia w dyrektywie „external_acl” dodano przetwornik „ext_kerberos_sid_group_acl” do uwierzytelniania z kontrolą grup w Active Directory wykorzystując Kerberos. Do zapytania o nazwę grupy używana jest utilita ldapsearch, dostarczana przez pakiet OpenLDAP.
  • Wsparcie dla formatu bazy danych Berkeley DB zostało uznane za przestarzałe z powodu problemów licencyjnych. Gałąź Berkeley DB 5.x nie jest już wspierana od kilku lat i pozostaje z nieusuniętymi lukami bezpieczeństwa, a przejście na nowsze wersje uniemożliwia zmiana licencji na AGPLv3, której wymagania dotyczą również aplikacji wykorzystujących BerkeleyDB w formie biblioteki — Squid jest dostarczany na licencji GPLv2, a AGPL jest niewłaściwa w połączeniu z GPLv2. Zamiast Berkeley DB projekt przeszedł na korzystanie z bazy danych TrivialDB, która, w przeciwieństwie do Berkeley DB, jest zoptymalizowana do jednoczesnego dostępu równoległego do bazy danych. Wsparcie dla Berkeley DB pozostaje na razie, ale w obsłudze „ext_session_acl” i „ext_time_quota_acl” teraz zaleca się używać typu przechowywania „libtdb” zamiast „libdb”.
  • Dodano wsparcie dla nagłówka HTTP CDN-Loop, określonego w RFC 8586, który pozwala na wykrywanie cykli podczas korzystania z sieci dostarczania treści (nagłówek ten chroni przed sytuacjami, kiedy żądanie w trakcie przekierowania pomiędzy CDN z jakiegoś powodu wraca do pierwotnego CDN, tworząc nieskończony cykl).
  • Do mechanizmu SSL-Bump, który umożliwia przechwytywanie treści szyfrowanych sesji HTTPS, dodano wsparcie dla przekierowywania nadpisanych (ponownie zaszyfrowanych) żądań HTTPS przez inne serwery proxy wskazane w cache_peer, wykorzystując standardowy tunel oparty na metodzie HTTP CONNECT (przesyłanie przez HTTPS nie jest obsługiwane, ponieważ Squid wciąż nie może przesyłać TLS w ramach TLS). SSL-Bump pozwala na nawiązanie połączenia TLS z docelowym serwerem przy pierwszym przechwyconym żądaniu HTTPS i uzyskanie jego certyfikatu. Następnie Squid wykorzystuje nazwę hosta z prawdziwego certyfikatu uzyskanego od serwera i tworzy fikcyjny certyfikat, którym imituje żądany serwer podczas interakcji z klientem, jednocześnie korzystając z połączenia TLS nawiązanym z docelowym serwerem w celu uzyskania danych (aby zamiana nie prowadziła do wyświetlania ostrzeżeń w przeglądarkach po stronie klienta, należy dodać do magazynu certyfikatów root swój certyfikat użyty do generowania fikcyjnych certyfikatów).
  • Dodano dyrektywy mark_client_connection i mark_client_pack do przypisywania znaczników Netfilter (CONNMARK) do klientowskich połączeń TCP lub pojedynczych pakietów.

Następnie wydano wersje Squid 5.2 i Squid 4.17, w których usunięto luki bezpieczeństwa:

  • CVE-2021-28116 – wyciek informacji podczas przetwarzania specjalnie sformatowanych wiadomości WCCPv2. Luka ta pozwala atakującemu na uszkodzenie listy znanych routerów WCCP i przekierowanie ruchu klientów serwera proxy na własny host. Problem występuje tylko w konfiguracjach z włączoną obsługą WCCPv2 oraz możliwością podszywania się pod adres IP routera.
  • CVE-2021-41611 – błąd podczas weryfikacji certyfikatów TLS, co pozwala na dostęp przy użyciu nieufnych certyfikatów.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster