Стабильный релиз прокси-сервера Squid 5

После трёх лет разработки представлен стабильный релиз прокси-сервера Squid 5.1, готовый для использования в рабочих системах (выпуски 5.0.x имели статус бета-версий). После придания ветке 5.x статуса стабильной, в ней отныне будут производиться только исправления уязвимостей и проблем со стабильностью, также допускается внесение небольших оптимизаций. Разработка новых возможностей будет производиться в новой экспериментальной ветке 6.0. Пользователям прошлой стабильной ветки 4.x рекомендуется спланировать переход на ветку 5.x.

Основные новшества Squid 5:

  • В реализацию протокола ICAP (Internet Content Adaptation Protocol), используемого для интеграции с внешними системами проверки контента, добавлена поддержка механизма присоединения данных (trailer), позволяющего прикрепить к ответу дополнительные заголовки с метаданными, размещаемые после тела сообщения (например, можно передать контрольную сумму и детали о выявленных проблемах).

  • При перенаправлении запросов задействован алгоритм «Happy Eyeballs», который сразу использует полученный IP-адрес, не дожидаясь резолвинга всех потенциально доступных целевых адресов IPv4 и IPv6. Вместо учёта настройки «dns_v4_first» для определения порядка использования семейства адресов IPv4 или IPv6 теперь учитывается порядок ответа в DNS: если при ожидании резолвинга IP-адреса первым поступает ответ DNS AAAA, то будет использован полученный адрес IPv6. Таким образом, настройка предпочитаемого семейства адресов теперь выполняется на уровне межсетевого экрана, DNS или запуска с опцией »--disable-ipv6». Предложенное изменение позволяет ускорить время установки TCP-соединений и снизить влияние на производительность задержек при резолвинге в DNS.

  • Для использования в директиве «external_acl» добавлен обработчик «ext_kerberos_sid_group_acl» для аутентификации с проверкой групп в Active Directory при помощи Kerberos. Для запроса имени группы используется утилита ldapsearch, предоставляемая пакетом OpenLDAP.

  • Поддержка формата БД Berkeley DB объявлена устаревшей из-за лицензионных проблем. Ветка Berkeley DB 5.x уже несколько лет не сопровождается и остаётся с неисправленными уязвимостями, а перейти на более новые выпуски не позволяет изменение лицензии на AGPLv3, требования которой распространяются и на приложения, использующие BerkeleyDB в форме библиотеки — Squid поставляется под лицензией GPLv2, а AGPL несовместима с GPLv2. Вместо Berkeley DB проект переведён на использование СУБД TrivialDB, которая, в отличие от Berkeley DB, оптимизирована для одновременного параллельного доступа к БД. Поддержка Berkeley DB пока сохранена, но в обработчиках «ext_session_acl» и «ext_time_quota_acl» теперь рекомендуется использовать тип хранилища «libtdb» вместо «libdb».

  • Добавлена поддержка HTTP-заголовка CDN-Loop, определённого в RFC 8586 и позволяющего выявлять зацикливания при использовании сетей доставки контента (заголовок предоставляет защиту от ситуаций, когда запрос в процессе перенаправления между CDN по каким-то причинам возвращается обратно в исходную CDN, образуя бесконечное зацикливание).

  • В механизм SSL-Bump, позволяющем организовать перехват содержимого шифрованных HTTPS-сеансов, добавлена поддержка перенаправления подменённых (перезашифрованных) HTTPS-запросов через другие прокси-серверы, указанные в cache_peer, используя обычный туннель на базе метода HTTP CONNECT (передача через HTTPS не поддерживается, так как Squid пока не может передавать TLS внутри TLS). SSL-Bump позволяет при поступлении первого перехватываемого HTTPS-запроса установить TLS-соединение с целевым сервером и получить его сертификат. После этого Squid использует имя хоста из реального полученного от сервера сертификата и создаёт фиктивный сертификат, при помощи которого имитирует запрошенный сервер при взаимодействии с клиентом, продолжая при этом использовать для получения данных TLS-соединение, установленное с целевым сервером (чтобы подмена не приводила к выводу предупреждений в браузерах на стороне клиента требуется добавить в хранилище корневых сертификатов свой сертификат, использованный для генерации фиктивных сертификатов).

  • Добавлены директивы mark_client_connection и mark_client_pack для привязки меток Netfilter (CONNMARK) к клиентским TCP-соединениям или отдельным пакетам.

Следом по горячим следам опубликованы выпуски Squid 5.2 и Squid 4.17 в которых устранены уязвимости:

  • CVE-2021–28116 — утечка информации при обработке специально оформленных сообщений WCCPv2. Уязвимость позволяет атакующему повредить список известных маршрутизаторов WCCP и перенаправить трафик клиентов прокси-сервера на свой хост. Проблема проявляется только в конфигурациях с включённой поддержкой WCCPv2 и при возможности осуществления спуфинга IP-адреса маршрутизатора.
  • CVE-2021–41611 — ошибка при проверке TLS-сертификатов, позволяющая получить доступ с использованием сертификатов, не заслуживающих доверия.



Источник: http://www.opennet.ru/opennews/art.shtml? num=55929

© OpenNet