После трёх лет разработки представлен стабильный релиз прокси-сервера 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-сертификатов, позволяющая получить доступ с использованием сертификатов, не заслуживающих доверия.
Release.
Ссылка here.