9.4.1. Список контроля доступа

We use cookies. Read the Privacy and Cookie Policy

9.4.1. Список контроля доступа

Первое, с чем нам предстоит познакомиться, — это ACL (Access Control List, список контроля доступа), который предоставляет большие возможности для дальнейшей настройки прав доступа к сайтам. С помощью списка имен вы как бы группируете действия или пользователей. Используйте для этого следующую команду:

acl имя тип параметр

У данной директивы три параметра:

? имя — задается любым, и лучше всего, если оно будет описывать выполняемые действия;

? параметр — это шаблон или строка, смысл которой зависит от типа записи (второй аргумент);

? тип — можно указывать следующие значения: src, dst, srcdomain, dstdomain, url_pattern, urlpath_pattern, time, port, proto, proxy_auth, method, browser, user. Рассмотрим основные типы, которые вам пригодятся при формировании последнего параметра (шаблона):

 • src — задаются IP-адреса пользователей;

 • dst — указываются адреса серверов;

 • port — определяется номер порта;

 • proto — описывается список протоколов (через пробел);

 • method — указывается используемый метод, например POST, GET и т.д.;

 • proxy_auth — определяется список имен пользователей, значения разделяются пробелами. В качестве имени можно использовать REQUIRED, чтобы принимались любые авторизованные записи (acl password proxy_auth REQUIRED);

 • url_regex — устанавливается URL или регулярное выражение для URL;

 • time — задается время в формате дни h1:m1-h2:m2. С помощью такой записи можно ограничить доступ только определенными днями недели и обусловленным временем. В качестве дней недели можно указывать: S — Sunday, M — Monday, T — Tuesday, W — Wednesday, H — Thursday, F — Friday, A — Saturday.

В файле конфигурации уже описано несколько правил, которые готовы к использованию и в большинстве случаев не требуют вмешательства. Их вы можете увидеть в листинге 9.1.

Листинг 9.1. Список acl-правил, описанных по умолчанию в конфигурационном файле /etc/squid/squid.conf

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 SSL_ports port 443 563

acl Safe_ports port 80         # http

acl Safe_ports port 21         # ftp

acl Safe_ports port 443 563    # https, snews

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

Это список прав доступа, необходимых для минимальной работы прокси-сервера.

Рассмотрим первую строку. Здесь задается acl с именем all. Так как используется тип шаблона src, то этому списку принадлежат юзеры, у которых IP-адрес соответствует 0.0.0.0/0.0.0.0, т.е. все пользователи.

Следующая строка создает ACL-запись с именем manager. Она определяет доступ к протоколу, потому что тип записи proto, а последний параметр задает протокол — cache_object. И так далее.

Давайте попробуем задать свою ACL-запись. Допустим, что в вашей сети есть 10 компьютеров с адресами от 192.168.8.1 до 192.168.8.10 (маска подсети 255.255.255.0), которым разрешен доступ к Интернету. Всем остальным нужно запретить.

Уже при создании списка вы должны отталкиваться от идеи, что изначально доступ запрещен всем, и позволять только тем, кому это действительно нужно. Итак, строка для всех у нас уже есть, и ее имя all. Для списка из 10 компьютеров создадим запись с именем AllowUsers, и ее описание будет следующим:

acl AllowUsers src 192.168.8.1-192.168.8.10/255.255.255.0

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

Данный текст является ознакомительным фрагментом.