ACL

TAG: acl

Этот тэг позволяет задавать ACL. Ниже представлены типы ACL и краткие описания к
каждому из них(на что нацелены).

acl aclname acltype string1 …
acl aclname acltype «file» …

Когда используется «file», то файл должен содержать не более одного правила на строку.

acltype — тип ACL

По умолчанию, регулярные выражения РЕГИСТРОЗАВИСИМЫ. Для того, чтобы сделать
регулярное выражение регистронезависимым используйте опцию -i .

acl aclname src      ip-address/netmask …

Проверяет IP адрес клиента.

acl aclname src      addr1-addr2/netmask …

Проверяет диапазон IP адресов клиента.

acl aclname dst      ip-address/netmask …

Проверяет IP адрес URL хоста.

acl aclname myip     ip-address/netmask …

Проверяет локальный IP адрес.

acl aclname arp      mac-address …

Проверяет xx:xx:xx:xx:xx:xx MAC адрес.

Примечание: Тип arp ACL доступен если Squid скомпилирован с опцией —enable-arp-acl
Кроме того, ACL типа arp поддерживают не все операционные системы.
Это работает на Linux, Solaris FreeBSD и некоторых других *BSD системах.

 

Примечание: Squid может определить MAC адреса клиентов из одной подсети. Если же
клиенты будут из разных подсетей, тогда Squid не сможет определить MAC
адрес клиента.

acl aclname srcdomain   .foo.com …

Проверяет имя хоста клиента.

acl aclname dstdomain   .foo.com …

Проверяет имя хоста сервера назначения.

acl aclname srcdom_regex [-i] xxx …

Регулярное выражение для хоста клиента

acl aclname dstdom_regex [-i] xxx …

Регулярное выражение для сервера назначения

Типы ACL dstdomain и dstdom_regex используют имена хостов. Если же URL адрес задан
через IP(например, 195.33.72.33), то будет автоматически произведена замена его на имя
хоста связанное с этим IP(например на yandex.ru), используя DNS. И к уже к найденному
имени хоста будет применен ACL.

acl aclname time     [day-abbrevs]  [h1:m1-h2:m2]

Аббревиатуры дней:
S — Воскресенье
M — Понедельник
T — Вторник
W — Среда
H — Четверг
F — Пятница
A — Суббота
h1:m1 должно быть меньше h2:m2

acl aclname url_regex [-i] ^http:// …

Регулярное выражение вбирающее в себя все URL адреса.

acl aclname urlpath_regex [-i] .gif$ …

Регулярное выражение проверяющее URL путь(все, что после имени хоста в URL)

acl aclname urllogin [-i] [^a-zA-Z0-9] …

Регулярное выражение проверяющее поле URL login.

acl aclname port     80 70 21 …

Проверяет порт назначения

acl aclname port     0-1024 …

Диапазон портов

acl aclname myport   3128 …

Локальный TCP порт

acl aclname proto    HTTP FTP …

Проверяет протокол

acl aclname method   GET POST …

Проверяет метод доступа

acl aclname browser  [-i] regexp …

Проверяет заголовок User-Agent (смотри также req_header)

acl aclname referer_regex  [-i] regexp …

Проверяет заголовок Referer. Referer очень ненадежен, поэтому используйте с
осторожностью

acl aclname ident    username …
acl aclname ident_regex [-i] pattern …

Проверяет выходные данные ident.
Используйте REQUIRED для принятия не пустых ident строк.

acl aclname src_as   number …
acl aclname dst_as   number …

# ======= осталось без перевода ================================
# Except for access control, AS numbers can be used for
# routing of requests to specific caches. Here’s an
# example for routing all requests for AS#1241 and only
# those to mycache.mydomain.net:
# acl asexample dst_as 1241
# cache_peer_access mycache.mydomain.net allow asexample
# cache_peer_access mycache_mydomain.net deny all
# ======= осталось без перевода ================================

acl aclname proxy_auth [-i] username …
acl aclname proxy_auth_regex [-i] pattern …

Список прокси пользователей.

Примечание: Когда заголовок Proxy-Authentication(Прокси аутентификации) отправлен, но
не используется в ACL, то такая запись вносится в access.log

Примечание: proxy_auth требует программу внешней(External) аутентификации для
проверки пары username/password(логин/пароль). Смотри директиву
auth_param.

Примечание: proxy_auth не работает при прозрачном проксировании. Браузер должен быть
настроен на использование прокси, чтобы аутентификация работала.

acl aclname snmp_community string …

этот тип ACL определяет включенных в SNMP community

Пример:

acl snmppublic snmp_community public

acl aclname maxconn number

Этот ACL проверяет количество HTTP сессий клиента. И не дает открыть
ему больше чем <number> подключений

acl aclname max_user_ip [-s] number

Этот ACL проверяет количество различных IP адресов, с которого пользователь может
пройти аутентификацию одновременно. Директива authenticate_ip_ttl определяет время
действия аутентификации пользователя с конкретного IP адреса. По истечению этого
времени, пользователь с этого IP должен будет пройти аутентификацию вновь.
Аргумент -s означает, что при достижении числа number, будет невозможно
подключится с любого другого IP адреса, пока ttl текущей аутентификации какого-
либо IP адреса не истечет.

Примечание: в режиме acceleration или при использовании нескольких child прокси,
клиенты могут приходить с множества IP адресов если они идут через 2-3
прокси сервера, тогда ограничение в 1 IP адрес на клиента, может вызвать
проблемы.

acl aclname req_mime_type mime-type1 …

Регулярное выражение проверяющее mime тип клиентского запроса. Может быть
использовано для определения отправки файлов или HTTP туннелирования.

Примечание: Этот ACL не проверяет ответ от сервера на запрос клиента.

acl aclname req_header header-name [-i] any.regex.here

Регулярное выражение проверяющее заголовки запросов. Например, может
использоватся для блокирования доступа некоторых браузеров.

acl aclname rep_mime_type mime-type1 …

Регулярное выражение проверяющее mime тип ответа от сервера. Может быть
использовано для определения скачивания файла или HTTP туннелирования.

Примечание: Этот ACL не действует в правилах для http_access. Этот ACL имеет эффект в
правилах, которые работают с ответами от сервера, такими как
http_reply_access.

acl aclname rep_header header-name [-i] any.regex.here

Регулярное выражение проверяющее заголовки ответов от сервера.

Пример:

acl many_spaces rep_header Content-Disposition -i [[:space:]]{3,}

acl acl_name external class_name [arguments…]

Внешние ACL используемые вспомогательными программами(скриптами) должны быть
перед использованием описаны директивой external_acl_type.

acl urlgroup group1 …

Проверяет urlgroup используемую редиректорами

acl aclname user_cert attribute values…

Проверяет атрибуты в пользовательском сертификате SSL. Атрибутом может быть один
из DN/C/O/CN/L/ST

acl aclname ca_cert attribute values…

Проверяет атрибуты выдавшего SSL сертификат. Атрибутом может быть один
из DN/C/O/CN/L/ST

acl aclname ext_user username …
acl aclname ext_user_regex [-i] pattern …

Проверяет имя пользователя, которое вернул внешний ACL скрипт.
Используйте REQUIRED, для принятия любого не пустого имени
пользователя.

Примеры:

acl macaddress arp 09:00:2b:23:45:67
acl myexample dst_as 1241
acl password proxy_auth REQUIRED
acl fileupload req_mime_type -i ^multipart/form-data$
acl javascript rep_mime_type -i ^application/x-javascript$

Рекомендуемый минимум:

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *