После года разработки представлена новая стабильная ветка прокси-сервера Squid 3.5, которая по заявлению разработчиков достигла состояния готовности для промышленного использования. После придания ветке 3.5.x статуса стабильной, в ней отныне будут производиться только исправления уязвимостей и проблем со стабильностью, также допускается внесение небольших оптимизаций. Поддержка прошлой стабильной ветки 3.4.x прекращена, пользователям рекомендуется спланировать переход на ветку 3.5.x.

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

  • Реализован полноценный релей для протокола FTP, позволяющий манипулировать FTP-трафиком, проверять на вирусы при помощи ICAP/eCAP и применять ACL для каналов связи между FTP-клиентом и FTP-сервером. Кэширование передаваемых через FTP данных пока не реализовано, но будет доступно в будущих выпусках. Команды/ответы FTP транслируются в формат HTTP-запросов/ответов, поэтому к ним применимы те же операции, что и для HTTP.
  • Поддержка именованных сервисов, позволяющих упростить запуск в одной системе нескольких экземпляров Squid, которые не пересекаются между собой. При запуске можно связать сервер с определённым именем, которое задаётся через опцию "-n" (по умолчанию привязывается имя "squid"), и в дальнейшем использовать данное имя для остановки или перезапуска избранного сервера. Для унификации конфигурации в файле squid.conf можно использовать макрос ${service_name}.
  • Возможность отправки в хелпер аутентификации дополнительных деталей, помимо минимально необходимых для HTTP-аутенитфикации данных. Например, можно передавать такие параметры, как подсеть клиента, номер порта, запрошенный домен или любые другие данные, которые могут фигурировать в logformat. На основании дополнительных данных в хелпере может быть осуществлёно переключение между базами аутентификации. Для управления передачей дополнительных данных в директиву auth_param добавлен новый параметр key_extras.
  • Поддержка параллелизма каналов для хелперов, позволяющая ускорить связь между squid и хелперами за счёт параллельного выполнения транзакций вместо последовательной обработки запросов (следующий запрос теперь может быть отправлен до того как выдан ответ по предыдущему запросу, в то время как раньше новый запрос отправлялся только после ответа на предыдущий). Параллельные каналы доступны для хелперов Digest authentication, Store-ID и URL-rewrite. Разделение каналов производится на основании содержимого поля channel-ID.
  • Возвращена поддержка опции collapsed_forwarding, которая была доступна в ветке Squid-2, но не попала в релиз Squid 3.0. Опция позволяет включить оптимизацию проброса трафика при наличии большого числа параллельных запросов к одному URL. Оптимизация производится за счёт объединения нескольких запросов к кэшу, в которых фигурирует один URL, до того как Squid узнает о том, должен ли быть прокэширован ответ.
  • Поддержка eCAP 1.0. Использование новой библиотеки libecap позволяет улучшить процесс согласования версий библиотеки eCAP и загруженного адаптера eCAP, используемого для взаимодействия с антивирусным пакетом.
  • Переработана организация перехвата шифрованных HTTPS-сеансов (ssl_bump), вместо режимов перехвата ("modes") введены в обиход действия ("actions"), которые в том числе можно использовать в ACL. Режим "server-first", при котором вначале осуществляется соединение с целевым сервером, а потом создаётся защищённое соединение между клиентом и прокси, теперь доступен как действие "bump". Режим "none", при котором создаётся TCP-туннель без дешифровки трафика, теперь доступен как действие "splice". Для обеспечения обратной совместимости добавлено действие "peek-and-splice", при котором решение о типе создаваемого вначале соединения (клиент-прокси или прокси-сервер) принимается на основе SSL hello-сообщений. Добавлены действия "peek" и "stare" для получения клиентского или серверного сертификата с сохранением возможности дальнейшего применения режимов "splice" и "bump" для соединений. Добавлено действие "terminate" для закрытия соединений к клиенту или серверу.
  • В хранилище Rock и в разделяемой памяти обеспечена возможность кэширования больших объектов (более 32Кб).
  • Поддержка расширенного управления принятием решения о выдаче данных из кэша (HIT/MISS). Добавлены новые директивы: "send_hit" для включения отправки прокэшированного контента на основе выбора ACL, в котором могут учитываться параметры запроса или детали ответа; "store_miss" для включения кэшировния MISS-ответов на основе ACL.
  • Обновлена утилита squidclient, в которую помимо протокола HTTP добавлена поддержка отправки запросов по HTTPS ("--https"), добавлена команда "--ping" для периодического повтора отправки сообщений, реализованы уровни отладочного вывода.
  • Начальная поддержка протокола PROXY, позволяющего передавать информацию о соединении (например, оригинальный IP-адрес клиента) по всей цепочке проксирования или туннелирования соединения без необходимости модификации и разбора протокола внутри соединения. В настоящее время протокол PROXY может использоваться в Squid для получения HTTP-трафика от прокси на стороне клиента.
  • Удалена поддержка хранилища COSS, вместо которого следует использовать хранилище Rock. Удалены хелпер dnsserver и DNS helper API, на смену которым пришёл встроенный клиент DNS.



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