Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
squid.doc
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
1.45 Mб
Скачать

9.25 Что значит поле ignored в 'cache server list' ?

Это касается ICP-ответов, которые Squid проигнорировал по одной из следующих причин:

  • Ответный URL вообще не удалось найти в кеше.

  • URL, указанный в ответе уже был получен. Возможно этот ICP-ответ пришел слишком поздно.

  • The URL in the reply did not have a MemObject associated with it. Either the request is already finished, or the user aborted before the ICP arrived.

  • The reply came from a multicast-responder, but the cache_peer_access configuration does not allow us to forward this request to that neighbor.

  • Source-Echo replies from known neighbors are ignored.

  • ICP_OP_DENIED replies are ignored after the first 100.

10. Контроль доступа

10.1 Введение

Схема контроля доступа в Squid достаточно развита и тяжела для понимания некоторым людям. Она состоит из двух различных компонентов: элементов ACL и списков доступа. Список доступа состоит из директивы allow или deny и указанных вслед за ней элементов ACL.

элементы ACL

Замечание: Информация, представленная здесь верна для версии 2.4.

Squid-у известны следующие типы элементов ACL:

  • src: IP-адрес источника (клиент)

  • dst: IP-адрес назначения (сервер)

  • myip: локальный IP-адрес клиентского соединения

  • srcdomain: имя домена источника (клиент)

  • dstdomain: имя домена назначения (сервер)

  • srcdom_regex: шаблон регулярного выражения источника (клиент)

  • dstdom_regex: шаблон регулярного выражения назначения (сервер)

  • time: время дня и день недели

  • url_regex: шаблон регулярного выражения для URL

  • urlpath_regex: шаблон регулярного выражения для части URL, исключая протокол и имя хоста

  • port: номер порта назначения (сервер)

  • myport: номер локального порта, куда подключается клиент

  • proto: тип протокола передачи (http, ftp, etc)

  • method: метод HTTP-запроса (get, post, etc)

  • browser: шаблон регулярного выражения, совпадающего с заголовком user-agent из запроса

  • ident: строка совпадения с именем пользователя

  • ident_regex: шаблон регулярного выражения имени пользователя

  • src_as: номер Автономной Системы источника (клиент)

  • dst_as: номер Автономной Системы назначения (сервер)

  • proxy_auth: аутентификация пользователя через внешний процесс

  • proxy_auth_regex: регулярное выражение аутентификации пользователя через внешний процесс

  • snmp_community: строка SNMP-сообщества

  • maxconn: ограничение максимального кол-ва соединений с одного клиентского IP-адреса

  • req_mime_type: шаблон регулярного выражения для заголовка content-type запроса

  • arp: Ethernet (MAC)-адрес

Заметьте:

Не все элементы ACL могут быть использованы со всеми видами списков доступа (описаны ниже). К примеру, snmp_community предназначено для использования только совместно сsnmp_access. Типы src_as и dst_as используются только в списках доступа cache_peer_access.

Тип arp элемента ACL требует специально опции --enable-arp-acl. Кроме того, код ARP ACL портируется не на все операционные системы. Это работает на Linux, Solaris, и некоторых *BSD системах.

Элемент ACL SNMP и список доступа требуют конфигурационной опции --enable-snmp .

Некоторые элементы ACL могут вносить задержки в работу кеша. Например, использование src_domain и srcdom_regex требует обратного преобразования клиентского IP. Это преобразование вносит некоторую задержку в обработку запроса.

Каждый элемент ACL обозначается уникальным именем. Имя элемента ACL содержит список значений. Когда проверяется совпадения для нескольких значений, используется логическое "ИЛИ". Другими словами, элемент ACL совпал, когда совпало одно из значений.

Вы не можете указывать одинаковое имя для двух различных типов элементов ACL. Это вызовет синтаксическую ошибку.

Вы можете присваивать различные значения одному и тому же ACL в различных строках. Squid объединит их в один список.

Списки доступа

Существуют следующие типы списков доступа:

  • http_access: разрешает доступ HTTP-клиентам (броузерам) к порту HTTP. Это основной тип списка контроля доступа.

  • icp_access: разрешает братским кешам опрашивать ваш кеш по ICP.

  • miss_access: разрешает определенным клиентам передавать cache misses через ваш кеш.

  • no_cache: объявляет ответы, которые не должны кешироваться.

  • redirector_access: контролирует, какие запросы должны пройти через процесс редиректора.

  • ident_lookup_access: контролирует, какие запросы требуют Ident lookup.

  • always_direct: контролирует, какие запросы всегда должны посылаться напрямую к серверу назначения.

  • never_direct: контролирует, какие запросы никогда не должны посылаться напрямую к серверу назначения.

  • snmp_access: контролирует доступ клиентов к кешу по SNMP.

  • broken_posts: определяет запросы, для которых squid добавляет дополнительный CRLF после тел сообщений POST как того требуют некоторые неверно работающие сервера.

  • cache_peer_access: контролирует, какие запросы должны быть переданы соседскому кешу (peer).

Замечание:

Правило списка доступа состоит из слова allow или deny, с последующим указанием списка имен элементов ACL.

Список доступа состоит из одного или более правил списков доступа.

Правила списков доступа проверяются в порядке их объявления. Поиск по списку прекращается, как только одно из правил совпадает.

Если правило содержит несколько элементов ACL, используется логическое И. Другими словами, все элементы ACL, указанные в этом правиле должны совпасть, чтобы правило сработало. Это значит, что есть возможность написать правило, которое никогда не сработает. К примеру, номер порта никогда не может быть равен 80 И 8000 одновременно.

Если ни одно из правил не сработало, по умолчанию будет произведено действие обратное указанному в последнем правиле списка. Поэтому хорошей идеей будет явно указать действие по умолчанию. Наилучший выбор для этого - ACL all. Например:

acl all src 0/0

http_access deny all

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]