Директивы(TAG) Squid. external_acl_type

TAG: external_acl_type

Этот тэг позволяет определить внешние ACL. Внешние ACL это такие ACL, которые не входят в набор стандартных типов ACL. Например, это могут быть самописные(или откуда-нибудь взятые) скрипты(вспомогательные программы), которые используя переменные Squid осуществляют некоторое действие. Такие скрипты запускаются вместе со Squid отдельным процессом.

external_acl_type name [options] FORMAT.. /path/to/helper [helper arguments..]

============ Опции(Options) ============================

ttl=n

TTL(Time-To-Live, время жизни) в секундах для хранения результатов отработки внешнего ACL.(По умолчанию установлено в 3600 т.е. 1 час).

negative_ttl=n

TTL в секундах для хранения отрицательных результатов отработки внешнего ACL. (По умолчанию, установлено значение такое же как ttl)

children=n

Количество процессов, которое может быть задействовано под внешние ACL(под скрипты, т.е.). (По умолчанию 5).

concurrency=n

Уровень параллельности для процесса. Используется, только со скриптами, которые умеют обрабатывать более одного запроса одновременно.

Примечание: Читайте ниже о совместимости

cache=n

Размер кэша результатов. 0(цифра ноль) - неограничено (По умолчанию, неограничено)

grace=

Процент, от TTL. То есть это значение нужно устанавливать как процент от значения TTL. Но без знака процента. Например, grace=90. Эта опция означает количество времени, по истечению которого, произойдет обновление кэшированных записей. Это так называемое время отсрочки.(По умолчанию установлено 0, для отсутствия отсрочки)

protocol=2.5

Режим совместимости для внешних ACL со Squid-2.5

Формат, т.е. переменные которые можно использовать в своей вспомогательной программе(FORMAT). Слева, название переменной, справа - то, что в ней находится.

%LOGIN Логин аутентифицированного пользователя

%EXT_USER Имя пользователя из внешнего acl

%IDENT Ident имя пользователя

%SRC IP-адрес клиента

%SRCPORT Порт клиента

%DST Запрошенный хост

%PROTO Протокол по которому сделан запрос

%PORT Запрошенный порт

%METHOD Метод, которым осуществлен запрос

%MYADDR IP адрес прокси сервера Squid

%MYPORT Порт прокси сервера Squid

%PATH URL путь(все символы после имени хоста) в запросе

%USER_CERT SSL пользовательский сертификат в формате PEM

%USER_CERTCHAIN SSL пользовательский сертификат сети в формате PEM

%USER_CERT_xx Имя SSL пользовательского сертификата xx

%USER_CA_xx Кем выдан SSL пользовательский сертификат xx


%{Header} Полностью HTTP заголовок запроса

%{Hdr:member} HTTP заголовок запроса содержащий list member

%{Hdr:;member} HTTP заголовок запроса содержащий list member разделяя знаком ";" элементы списка. Разделителем можт быть любой символ псевдографики.


%ACL Имя ACL

%DATA Аргументы ACL. Если не использовать эту переменную, то все аргументы автоматически добавляются в конец строки.

В дополнение к вышесказанному - каждая строка определяющая ACL, должна быть включена в строку запроса вспомогательной программы(скрипта) (смотри директиву acl тип external).

Скрипт получает строки с данными согласно формата(FORMAT) и возвращается строки содержащие OK или ERR, определящие пройдена аутентификация или нет соответственно. Опционально строка может содержать дополнительные ключевые слова(keywords).

Синтаксис ответной строки скрипта:

OK/ERR keyword=value ...

Доступные ключевые слова(keywords):

user= Пользовательские имена (логины также можно вводить)

password= Пароли пользователей (для PROXYPASS login= cache_peer)

message= Сообщение об ошибке. Оно запишется в переменную %o

log= Строка которая будет записана в access.log. Доступна специкация %ea формата журналов.

Если установлено protocol=3.0 (по умолчанию), тогда URL будет использоватся для передачи значений и для запросов и для ответов.

Если установлено protocol=2.5, тогда все значения должны быть оформлены в кавычки, если они содержат пробелы. Кроме того, кавычки или знак \, которые находятся в содержимом ключевого слова, должны предварятся знаком \. То есть если имя пользователя joe "blade" smith, то запись такого имени в ключевом слове user должна выглядеть так - user = "joe \"blade\" smith".

Примечание: Опция children= названа concurrency= в версии Squid-2.5.STABLE3 и более ранних. В Squid-3 опция concurrency= более не работает. Используйте children=.

По умолчанию:

none



Ссылки:

К содержанию
Squid на практике
Работа с Squid через Webmin
Анализатор логов Squid

© Copyright 2004-2017 - CMS Made Simple
Сайт работает на CMS Made Simple version 1.4.1

© Все печеньки Break-people.ru принадлежат авторам проекта.

Яндекс цитирования Рейтинг@Mail.ru Яндекс.Метрика