Stabilna wersja serwera proxy Squid 5

Po trzech latach prac zaprezentowano stabilną wersję serwera proxy Squid 5.1, gotową do użycia na systemach produkcyjnych (wersje 5.0.x miały status wersji beta). Po nadaniu gałęzi 5.x statusu stabilnego, od teraz będą w niej wprowadzane jedynie poprawki luk i problemów ze stabilnością, dozwolone są także drobne optymalizacje. Rozwój nowych funkcji będzie realizowany w nowej gałęzi eksperymentalnej 6.0. Użytkownikom poprzedniej stabilnej gałęzi 4.x zaleca się zaplanowanie migracji do gałęzi 5.x.

Kluczowe innowacje w Squid 5:

  • Implementacja protokołu ICAP (Internet Content Adaptation Protocol), służącego do integracji z zewnętrznymi systemami weryfikacji treści, dodała obsługę mechanizmu dołączania danych (trailer), który pozwala na dołączenie do odpowiedzi dodatkowych nagłówków z metadanymi, umieszczanych po wiadomości body (możesz na przykład wysłać sumę kontrolną i szczegółowe informacje o zidentyfikowanych problemach).
  • Podczas przekierowywania żądań wykorzystywany jest algorytm „Happy Eyeballs”, który natychmiast wykorzystuje otrzymany adres IP, nie czekając na rozpoznanie wszystkich potencjalnie dostępnych adresów docelowych IPv4 i IPv6. Zamiast używać ustawienia „dns_v4_first” do określenia, czy używana jest rodzina adresów IPv4 czy IPv6, brana jest teraz pod uwagę kolejność odpowiedzi DNS: jeśli odpowiedź DNS AAAA nadejdzie jako pierwsza podczas oczekiwania na rozpoznanie adresu IP, wówczas wynikowy adres IPv6 zostanie użyty. Dlatego ustawienie preferowanej rodziny adresów odbywa się teraz na poziomie zapory ogniowej, DNS lub na poziomie uruchamiania za pomocą opcji „--disable-ipv6”. Proponowana zmiana pozwala nam przyspieszyć czas konfiguracji połączeń TCP i zmniejszyć wpływ opóźnień na wydajność podczas rozpoznawania DNS.
  • Do użytku w dyrektywie „external_acl” dodano procedurę obsługi „ext_kerberos_sid_group_acl” do uwierzytelniania przy sprawdzaniu grupowym w Active Directory przy użyciu protokołu Kerberos. Aby sprawdzić nazwę grupy, użyj narzędzia ldapsearch dostarczonego w pakiecie OpenLDAP.
  • Obsługa formatu Berkeley DB została wycofana z powodu problemów licencyjnych. Oddział Berkeley DB 5.x nie jest utrzymywany od kilku lat i pozostaje z niezałatanymi podatnościami, a przejście na nowsze wydania uniemożliwia zmiana licencji na AGPLv3, której wymagania dotyczą również aplikacji korzystających z BerkeleyDB w postaci biblioteka - Squid jest dostarczany na licencji GPLv2, a AGPL nie jest kompatybilny z GPLv2. Zamiast Berkeley DB projekt został przeniesiony na wykorzystanie TrivialDB DBMS, który w odróżnieniu od Berkeley DB jest zoptymalizowany pod kątem jednoczesnego, równoległego dostępu do bazy danych. Na razie obsługa Berkeley DB została zachowana, ale procedury obsługi „ext_session_acl” i „ext_time_quota_acl” zalecają teraz używanie typu pamięci „libtdb” zamiast „libdb”.
  • Dodano obsługę nagłówka HTTP CDN-Loop zdefiniowanego w RFC 8586, który umożliwia wykrywanie pętli podczas korzystania z sieci dostarczania treści (nagłówek zapewnia ochronę przed sytuacjami, gdy żądanie w procesie przekierowania pomiędzy CDN z jakiegoś powodu wraca do oryginalny CDN, tworzący nieskończoną pętlę).
  • Mechanizm SSL-Bump, który umożliwia przechwytywanie zawartości zaszyfrowanych sesji HTTPS, dodał obsługę przekierowywania sfałszowanych (ponownie zaszyfrowanych) żądań HTTPS przez inne serwery proxy określone w cache_peer, przy użyciu zwykłego tunelu opartego na metodzie HTTP CONNECT ( transmisja przez HTTPS nie jest obsługiwana, ponieważ Squid nie może jeszcze transportować TLS w ramach TLS). SSL-Bump umożliwia nawiązanie połączenia TLS z serwerem docelowym po otrzymaniu pierwszego przechwyconego żądania HTTPS i uzyskaniu jego certyfikatu. Następnie Squid używa nazwy hosta z prawdziwego certyfikatu otrzymanego z serwera i tworzy fałszywy certyfikat, za pomocą którego imituje żądany serwer podczas interakcji z klientem, nadal korzystając z połączenia TLS nawiązanego z serwerem docelowym w celu odbierania danych ( aby podstawienie nie doprowadziło do ostrzeżeń wyjściowych w przeglądarkach po stronie klienta, musisz dodać swój certyfikat używany do generowania fikcyjnych certyfikatów do głównego magazynu certyfikatów).
  • Dodano dyrektywy mark_client_connection i mark_client_pack, aby powiązać znaczniki Netfilter (CONNMARK) z połączeniami TCP klienta lub pojedynczymi pakietami.

depcząc im po piętach, ukazały się wydania Squid 5.2 i Squid 4.17, w których naprawiono luki:

  • CVE-2021-28116 — Wyciek informacji podczas przetwarzania specjalnie spreparowanych wiadomości WCCPv2. Luka umożliwia atakującemu uszkodzenie listy znanych routerów WCCP i przekierowanie ruchu od klientów serwerów proxy do ich hostów. Problem pojawia się tylko w konfiguracjach z włączoną obsługą WCCPv2 i gdy istnieje możliwość sfałszowania adresu IP routera.
  • CVE-2021-41611 — Problem z weryfikacją certyfikatu TLS umożliwia dostęp przy użyciu niezaufanych certyfikatów.

Źródło: opennet.ru

Dodaj komentarz