После трёх лет разработки представлен стабильный релиз прокси-сервера 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: если при ожидании резолвинга adresy 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-сертификатов, позволяющая получить доступ с использованием сертификатов, не заслуживающих доверия.
Źródło: opennet.ru
